Add recently-referenced functions to fake-symbols

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Add support for Cintiq 24HD touch

Adds support for the EMR and touch digitizers on the Cintiq 24HD
touch. The digitizers are on separate USB devices, which can lead to
the cursor jumping back and forth between the stylus and finger.
Performing arbitration between the two (disabling finger while pen is in
proximity) is expected to be handled by the kernel driver.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Restore pad button functionality

Commit b0083492 broke pad buttons by no longer setting the wcmBTNChannel.
With this variable left uninitialized, pad button data would be stored
in another channel (e.g. 0) without any other data like proximity set.

This commit sets wcmBTNChannel to point to the channel used for
storing pad data whenever a pad packet is detected.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Have getWheelButton deal with array indices instead of pointers

This patch modifies the function signature of getWheelButton so that it
accepts and returns array indices rather than pointers. This is in
preparation of the next commit, which would be needlessly unreadable
otherwise.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Correct number of actions reported by sendWheelStripEvent to sendAction

Commit 477a261e has sendWheelStripEvent use the ARRAY_SIZE macro on a
pointer. This will not return a proper value, causing the wrong array
length to be provided to sendAction. This can lead to only the first few
actions assigned to a wheel or strip actually being performed.

This patch changes the signature of sendWheelStripEvent to accept an
explicit length.

https://sourceforge.net/tracker/?func=detail&aid=3577713&group_id=69596&atid=52$

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Limit use of touch class to touch devices only

Applying the touch class to all devices shouldn't really affect
anything, but just to be sure we surround it in a IsTouch() check.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
wacom 0.17.99.1

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
If _source is NULL, don't auto-pick the type.

An xorg.conf InputDevice section that does not have Option Type set is
invalid. Skip the type assignment and return, triggering an error about an
invalid type lateron.

Fixes crash triggered as of xf86-input-wacom-0.17.0-8-g0debde6 by having an
InputDevice section like this:

Section "InputDevice"
    Identifier "--device--"
    Driver "wacom"
    Option "CorePointer" "on"
EndSection

This would lead to the device being assigned a type and assumed to be for
hotplugging. Later, when the device attributes are duplicated during
QueueHotplug, asprintf() tries to duplicate attr->product, which is always
NULL for xorg.conf devices.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jason Gerecke <killertofu@gmail.com>
Have direct-touch devices move into and out of GESTURE_DRAG_MODE

Direct-touch devices (e.g. tablet PC, 24HD touch) are currently left in
GESTURE_NONE_MODE while performing drags. This can lead to potential
"stuck button" issues, since as soon as a second finger comes in
contact, the driver will switch to GESTURE_LAG_MODE. This prevents the
wcmSingleFingerPress function from being called, leaving button 1 in a
pressed state. While any subsuquent gesture will release button 1, if
the pen is brought into proximity before one occurs, the fingers will be
sent out of proximity without a chance to release button 1. This causes
the button to remain "stuck" in the pressed state until the next touch
occurs.

There are a few different ways this issue could be addressed. In the
interest of symmetry with indirect-touch devices, this patch has
direct-touch devices enter and exit GESTURE_DRAG_MODE as well. This
delays the mode swith to GESTURE_LAG_MODE by one event, allowing
wcmSingleFingerPress to be called to release button 1.

https://bugs.freedesktop.org/show_bug.cgi?id=56308

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Reviewed-by: Ping Cheng <pinglinux@gmail.com>
Add three MT ISDv4 devices (E5, 100, 101)

Signed-off-by: <pinglinux@gmail.com>
wacom 0.18.0

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Don't declare touch_mask on older servers

Missed necessary preprocessor guard in 0d164e66.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>