I'm working on adding support for the recently-announced Cintiq 24HD. It's pretty straightforward, but there are two interesting bits that I'd like some guidance on.
Firstly, the 24HD has three "hardware control buttons" along the top edge which are physically implemented as a touch strip. While it could in theory be used *as* a touch strip, the fact that it is one is completely non-obvious. The manual refers to them as buttons, they have painted-on icons like buttons, and each are in a fingertip-sized indentation like a button (I only found out it was a touchstrip by watching evdev). Leaving them as a touch strip isn't likely to cause problems, but I feel there is also merit to the concept of translating them into buttons. Thoughts? Opinions? Secondly, the 24HD adds a second touchring to the mix, which means trying to figure out the best way to get its data out of the kernel and X driver: For the kernel driver, there are a few different axes we could put the data into. There are benefits and drawbacks to each, and input on the balance each option achieves would be appreciated. * ABS_WHEEL: Using this axis means the second ring will work with current X11 drivers. However, since both rings are stored in the same axis, it will be impossible to seperate out the data at a later time. Additionally, simultaneous use of the two rings may have unexpected effects as the axis value jumps around. * ABS_Z: Using this axis means the second ring will work with current X11 drivers (ds->abswheel stores ABZ_Z and ABS_WHEEL alike). New drivers could add a new field to the devicestate to keep the two rings seperate, allowing independent use. However, since ABS_Z is *already* being used to store stylus barrel rotation, clients other than our own X11 driver may break in unexpected ways when the second ring is used. * ABS_RZ: Using this axis will cause the second ring to not work at all in current X11 drivers (ds->rotation, where ABS_RZ is stored, is ignored for the pad device). Additionally, since ABS_RZ is already in use for 4D mouse rotation, clients other than our own X11 driver may break in unexpected ways when the second ring is used. That said, if possible breakage for this one axis on this one tool is acceptable, it may be a more logical solution. ABS_RX and ABS_RY already contain touch strip data, and 4D mouse rotation arguably belongs in ABS_Z anyway (it has both the same semantics and possible range of values). * ABS_RUDDER: Using this (or another similar) axis will cause the second ring to not work at all in current X11 drivers. However, since this axis is not currently emitted by our kernel driver, the chance of breaking clients other than our own driver is minimal. Additionally, by having the ring on an axis to itself it is possible to advertise the correct range of values to clients (which would also be the case if 4D mouse rotation is moved off the ABS_RZ axis). This may not be that important though -- ABS_WHEEL already violates this by sharing the left touch ring (range 0..71) and airbrush fingerwheel (range 0..1023). For the X driver, we run into a backwards-compatibility problem (...unless we go the lame route with ABS_WHEEL). While XI2 provides up to 36 valuators, I believe there was a limit of 6 valuators at some point in the past. With the pad device having 3 axes reserved for X/Y/P, and 2 axes reserved for touch strips, there's just not enough room for both touch rings. We can break apps that were written with the 6 valuator limit in mind or break apps that assume the first 5 axes are X/Y/P/TSl/TSr. I'm not sure what kind of fall-out to expect from either option, so any insight would be appreciated :) Jason --- Day xee-nee-svsh duu-'ushtlh-ts'it; nuu-wee-ya' duu-xan' 'vm-nvshtlh-ts'it. Huu-chan xuu naa~-gha. ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel