Due to the limitation of number of valators we can use, Airbrush wheel and Art Pen rotation share the same fifth valuator. But they do not have the same range of values. So, we normalize the airbrush wheel (0, 1023) to the Art Pen rotation (-900, 899).
Signed-off-by: Ping Cheng <[email protected]> --- src/wcmCommon.c | 16 ++++++++++++++-- src/wcmUSB.c | 9 ++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/wcmCommon.c b/src/wcmCommon.c index 8050600..a006a9a 100644 --- a/src/wcmCommon.c +++ b/src/wcmCommon.c @@ -629,7 +629,7 @@ void wcmSendEvents(InputInfoPtr pInfo, const WacomDeviceState* ds) if (ds->proximity) wcmRotateAndScaleCoordinates(pInfo, &x, &y); - if (IsCursor(priv)) + if (IsCursor(priv)) { v3 = ds->rotation; v4 = ds->throttle; @@ -639,8 +639,20 @@ void wcmSendEvents(InputInfoPtr pInfo, const WacomDeviceState* ds) v3 = tx; v4 = ty; } - v5 = ds->abswheel; + if (IsStylus(priv)) + { + /* Normalize abswheel airbrush data to Art Pen rotation range. + * The test below is for Art Pen. We do not normalize them + * since they are already at the range. + */ + if (ds->device_id != 0x885 && ds->device_id != 0x804) + v5 = ds->abswheel * MAX_ROTATION_RANGE/ + (double)MAX_ABS_WHEEL + MIN_ROTATION; + } + else + v5 = ds->abswheel; + DBG(6, priv, "%s prox=%d\tx=%d" "\ty=%d\tz=%d\tv3=%d\tv4=%d\tv5=%d\tid=%d" "\tserial=%u\tbutton=%s\tbuttons=%d\n", diff --git a/src/wcmUSB.c b/src/wcmUSB.c index 90e8cf6..01b34f1 100644 --- a/src/wcmUSB.c +++ b/src/wcmUSB.c @@ -816,13 +816,8 @@ static int usbParseAbsEvent(WacomCommonPtr common, ds->distance = event->value; break; case ABS_WHEEL: - { - double norm = event->value * - MAX_ROTATION_RANGE / - (double)MAX_ABS_WHEEL; - ds->abswheel = (int)norm + MIN_ROTATION; - break; - } + ds->abswheel = event->value; + break; case ABS_Z: ds->abswheel = event->value; break; -- 1.7.2.3 ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
