On Sat, Jul 17, 2010 at 09:31:06PM -0700, Ping Cheng wrote: > So they can share the sixth valuator. > > Signed-off-by: Ping Cheng <[email protected]> > --- > src/wcmUSB.c | 7 +++++-- > src/xf86Wacom.c | 22 ++++++++-------------- > src/xf86WacomDefs.h | 3 +++ > 3 files changed, 16 insertions(+), 16 deletions(-) > > diff --git a/src/wcmUSB.c b/src/wcmUSB.c > index 1f4bc6e..169ad26 100644 > --- a/src/wcmUSB.c > +++ b/src/wcmUSB.c > @@ -975,8 +975,11 @@ static void usbParseChannel(LocalDevicePtr local, int > channel) > ds->pressure = event->value; > } else if (event->code == ABS_DISTANCE) > ds->distance = event->value; > - else if (event->code == ABS_WHEEL || > - event->code == ABS_Z) > + else if (event->code == ABS_WHEEL) { > + double norm = event->value * MAX_ROTATION_RANGE > / > + (double)MAX_ABS_WHEEL; > + ds->abswheel = (int)norm + MIN_ROTATION; > + } else if (event->code == ABS_Z) > ds->abswheel = event->value; > else if (event->code == ABS_THROTTLE) > ds->throttle = event->value; > diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c > index 28042ed..0b872da 100644 > --- a/src/xf86Wacom.c > +++ b/src/xf86Wacom.c > @@ -720,29 +720,23 @@ static int wcmRegisterX11Devices (LocalDevicePtr local) > -64, 63, 1, 1, 1); > } > > - if ((TabletHasFeature(common, WCM_ROTATION)) && IsStylus(priv)) > - /* Art Marker Pen rotation */ > + if (IsStylus(priv)) > + { > + int maxRotation = MAX_ROTATION_RANGE + MIN_ROTATION - 1; > + /* Art Marker Pen rotation or Airbrush absolute Wheel */ > InitValuatorAxisStruct(local->dev, 5, > #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 > - 0, /* XXX what is this axis?*/ > + XIGetKnownProperty(AXIS_LABEL_PROP_ABS_WHEEL), > #endif > - -900, 899, 1, 1, 1); > + MIN_ROTATION, maxRotation, 1, 1, 1); > + } > else if ((TabletHasFeature(common, WCM_RING)) && IsPad(priv)) > /* Touch ring */ > InitValuatorAxisStruct(local->dev, 5, > #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 > - 0, /* XXX what is this axis?*/ > -#endif > - 0, 71, 1, 1, 1); > - else > - { > - /* absolute wheel */ > - InitValuatorAxisStruct(local->dev, 5, > -#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 > XIGetKnownProperty(AXIS_LABEL_PROP_ABS_WHEEL), > #endif > - 0, 1023, 1, 1, 1); > - } > + 0, 71, 1, 1, 1); > > if (IsTouch(priv)) > { > diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h > index b700431..44538ac 100644 > --- a/src/xf86WacomDefs.h > +++ b/src/xf86WacomDefs.h > @@ -35,6 +35,9 @@ > #define MAX_SUPPRESS 100 /* max value of suppress */ > #define BUFFER_SIZE 256 /* size of reception buffer */ > #define MAXTRY 3 /* max number of try to receive magic number > */ > +#define MIN_ROTATION -900 /* the minimum value of the marker pen > rotation */ > +#define MAX_ROTATION_RANGE 1800 /* the maximum range of the marker pen > rotation */ > +#define MAX_ABS_WHEEL 1023 /* the maximum value of absolute wheel */ > > /* Default max distance to the tablet at which a proximity-out event is > generated for > * cursor device (e.g. mouse). > -- > 1.7.1.1
merged, thanks. Cheers, Peter ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
