On Thu, Feb 2, 2012 at 11:27 AM, Bastien Nocera <[email protected]> wrote:
> On Thu, 2012-02-02 at 11:16 -0800, Jason Gerecke wrote:
>> On Thu, Feb 2, 2012 at 7:56 AM, Bastien Nocera <[email protected]> wrote:
>> > Jason Gerecke <killertofu@...> writes:
>> >> Thankfully, not too terribly long. I've got representatives of most of
>> >> the tablets handy, though some with different button layouts (e.g.
>> >> Intuos4 Small) were guesses.
>> >
>> > I've updated 2 of the definitions you provided, which claimed to have both 
>> > a
>> > builtin device and
>> > one that was reversible. That's not possible, for those devices the tablet
>> > rotation follows the
>> > screen rotation, so you'd just change the screen's rotation instead.
>> >
>> It was a little unclear under what circumstances "reversible" should
>> be set, but that makes sense.
>>
>> > I've also noticed problems with the "Ring" value. At least the Cintiq 
>> > 21UX2 has
>> > touch rings on
>> > each side of the device, but the definition says "Ring=false".
>> >
>> > I've also noticed that those rings weren't explicitely mentioned in the
>> > schemas.
>> The 21UX2 has two touch strips (on the back side of the tablet -- you
>> won't usually see them in photos), but no touch rings. Looking at the
>> metadata again, it all seems correct.
>
> What are the circular buttons between the groups of buttons here?
> http://www.wacom.com/en/Products/Cintiq/~/media/Images/Products/DTK-2100-1.ashx
>
Those are just circular buttons. On Windows and Mac they have a
hard-coded function (see the section about LEDs below), but on Linux
they act like any other tablet button.

>> > Finally, those
>> > schemas have the button numbering wrong. For example, the Intuos4 6x9 that 
>> > I
>> > have in front of
>> > me. In the definition, you have:
>> > # Button Map:
>> > # (A=1, B=2, C=3, ...)
>> > #
>> > #    *-----------------------*
>> > #    |                       |
>> > #  B |                       |
>> > #  C |                       |
>> > #  D |                       |
>> > #  E |                       |
>> > #  A |        TABLET         |
>> > #  F |                       |
>> > #  G |                       |
>> > #  H |                       |
>> > #  I |                       |
>> > #    |                       |
>> > #    *-----------------------*
>> >
>> > When in reality it should be:
>> > # Button Map:
>> > # (A=1, B=2, C=3, ...)
>> > #
>> > #      *-----------------------*
>> > #      |                       |
>> > #   B  |                       |
>> > #   C  |                       |
>> > #   H  |                       |
>> > #   I  |                       |
>> > #  (A) |        TABLET         |
>> > #   J  |                       |
>> > #   K  |                       |
>> > #   L  |                       |
>> > #   M  |                       |
>> > #      |                       |
>> > #      *-----------------------*
>> > # (A) is a touch ring, middle-click 1, 4/5 through the scroll wheel
>> >
>> > Would it be possible for you to update the schematics to reflect that?
>> >
>> Those button maps are in terms of the physical reality of the tablet,
>> which I think will be a better representation in the end.
>
> OK.
>
>>  How
>> xf86-input-wacom transforms the data for use by X applications is
>> subject to change (indeed, we've discussed removing the artificial
>> "gap" every tablet has from D-G) but the hardware isn't. Rather than
>> hard-coding the effect of our driver's transformations in the .tablet
>> definitions, it'd make more sense to put that knowledge into libwacom
>> itself.
>
> I'm fine with doing that, but how do we get from the reality/that
> definition to knowing that the bottom-left button is "mouse button 13"
> so we can reassign it?
>
>> > I will probably also change the Ring property to a number of rings, rather 
>> > than
>> > a simple
>> > boolean.
>> >
>> Strips should follow the same convention as well. "HStrip" and
>> "VStrip" always seemed poor labels anyway (especially since "HStrip"
>> is often just another vertical strip!)
>
> I'm not familiar with strips. What should I change there?
>
Strips act identically to wheels (from the standpoint of 99% of X
applications). As you move your finger up and down, scroll up and down
events are synthesized in the driver. The number of strips you'll find
on a tablet is either zero, one, or two (and there's no reason we
couldn't add more ;)). There's no difference between the strips, and I
imagine "H" and "V" are just references to our (ab)use of "X" and "Y"
in the kernel driver and carry no other meaning.

> Could you also mention to me which of the tablets have 2 rings, if any?
>
At the moment only the Cintiq 24HD has two touch rings.

>> >> > I'll need to transform that data into something usable programmatically
>> > soon to
>> >> > get the button mapping on its way.
>> >
>> > This is going to get slightly complicated.
>> >
>> > In the definitions, we will need to:
>> > - name all the buttons (that'll need to be translated)
>> > - which mouse button they correspond to
>> > - and possibly include some metadata for LED setting if necessary (which I 
>> > have
>> > no idea what
>> > this should look like)
>> >
>> > Does that sound appropriate?
>> >
>> It sounds like you're trying to define the default mouse button that
>> is associated with each physical button. That's actually trivial --
>> xf86-input-wacom uses: (mouse_button = physical_button < 4 ?
>> physical_button : physical_button + 4).
>
> I'm guessing that answers my above question.
> So it would be:
> - name all the buttons (that'll need to be translated)
> - and which physical button it corresponds to
>
That seems right to me.

> I think we're getting confused over the LEDs. I'm talking about the LEDs
> next to the square buttons, with the pictograms in them:
> http://www.wacom.com/en/Products/Intuos/~/media/Images/Products/ptk840-2.ashx
>
I see -- we refer to those as OLEDs to maintain the distinction. I
hadn't even considered the OLEDs -- we'll definitely want to know if a
tablet supports OLEDs or not. As for their location, it might be safe
to link them to a physical button (since OLEDs are associated with a
button on all our current products), but I don't know what the future
holds.

> I see now that there are LEDs next to the touchring on that device. What
> are they used for? Is this something we will need to support too?
>
The Windows and Mac drivers are hard-coded to have the circular button
(which is inside the touch ring on an Intuos4; merely centrally
located on a 21UX2) change the current function of the touch
ring/strip on that side of the tablet. Pressing the button cycles
through a list of four possible functions. The four LEDs are used to
indicate which function is currently active. Only one LED may be lit
at a time, and on Linux can be controlled by poking at sysfs.

The Cintiq 24HD is a little different. It also has LEDs, but they're
embedded *inside* buttons. On Windows and Mac, pressing these buttons
directly chooses the function (instead of having to cycle through a
list) and lights the corresponding LED. Furthermore, despite only
having 3 LEDs on each side ("bank" in my maps), the 24HD will accept
LED4 as valid and (since only one logical LED can be lit) turn off all
three physical LEDs...

>>  My maps were more intended to
>> define the location of the physical buttons on the tablet, since it
>> can at times be non-obvious how the hardware is actually wired up.
>> Same for LEDs -- the correspondence between physical location and
>> logical number isn't always clear.
>
> OK, thanks.
>

Jason

---
Day xee-nee-svsh duu-'ushtlh-ts'it;
nuu-wee-ya' duu-xan' 'vm-nvshtlh-ts'it.
Huu-chan xuu naa~-gha.

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to