Thanks. For those interested, the touch part of Bamboo Pen and Touches should be working fine now in xf86-input-wacom. Thats without gesture support though.
There are reports of pen having some issues linuxwacom-discuss so I might switch over and debug that while Ping works on 0.8.5-11. Chris On Thu, Mar 4, 2010 at 8:33 PM, Peter Hutterer <peter.hutte...@who-t.net> wrote: > On Thu, Mar 04, 2010 at 07:41:57PM -0600, ch...@cnpbagwell.com wrote: >> From: Chris Bagwell <ch...@cnpbagwell.com> >> >> For Bamboo P&T devices, both a touch and pad type are >> shared for single input device and can be called in any >> order based on xorg.conf. And normal HAL order is to >> invoke usbGetRanges() from pad first. >> >> This meant all logic related to IsTouch() was not >> correctly running. Updated to treat pad type as >> touch in special case of Bamboo P&T. >> >> This is applies to devices that have both BTN_TOOL_FINGER >> and BTN_TOOL_DOUBLETAP which currently is limitted to >> Bamboo touch devices. >> >> Signed-off-by: Chris Bagwell <ch...@cnpbagwell> >> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> >> Reviewed-by: Ping Cheng <pingli...@gmail.com> >> --- > > oops, sorry, that patch got dropped somehow. merged and pushed. > Thanks for resending. > > Cheers, > Peter > >> src/wcmUSB.c | 21 ++++++++++++++++----- >> 1 files changed, 16 insertions(+), 5 deletions(-) >> >> diff --git a/src/wcmUSB.c b/src/wcmUSB.c >> index ed53897..466ffae 100644 >> --- a/src/wcmUSB.c >> +++ b/src/wcmUSB.c >> @@ -613,6 +613,17 @@ int usbWcmGetRanges(LocalDevicePtr local) >> unsigned long abs[NBITS(ABS_MAX)] = {0}; >> WacomDevicePtr priv = (WacomDevicePtr)local->private; >> WacomCommonPtr common = priv->common; >> + int is_touch; >> + >> + is_touch = IsTouch(priv); >> + /* Bamboo P&T have both Touch and Pad types on same >> + * device. Its normal for this to be called for pad >> + * case and logic requires it to act same as Touch >> + * case. >> + */ >> + if (IsPad(priv) && >> + common->tablet_id >= 0xd0 && common->tablet_id <= 0xd3) >> + is_touch = 1; >> >> if (ioctl(local->fd, EVIOCGBIT(0 /*EV*/, sizeof(ev)), ev) < 0) >> { >> @@ -647,7 +658,7 @@ int usbWcmGetRanges(LocalDevicePtr local) >> xf86Msg(X_ERROR, "%s: xmax value is wrong.\n", local->name); >> return !Success; >> } >> - if (!IsTouch(priv)) >> + if (!is_touch) >> common->wcmMaxX = absinfo.maximum; >> else >> common->wcmMaxTouchX = absinfo.maximum; >> @@ -664,7 +675,7 @@ int usbWcmGetRanges(LocalDevicePtr local) >> xf86Msg(X_ERROR, "%s: ymax value is wrong.\n", local->name); >> return !Success; >> } >> - if (!IsTouch(priv)) >> + if (!is_touch) >> common->wcmMaxY = absinfo.maximum; >> else >> common->wcmMaxTouchY = absinfo.maximum; >> @@ -673,7 +684,7 @@ int usbWcmGetRanges(LocalDevicePtr local) >> * or touch physical X for TabletPCs with touch */ >> if (ioctl(local->fd, EVIOCGABS(ABS_RX), &absinfo) == 0) >> { >> - if (IsTouch(priv)) >> + if (is_touch) >> common->wcmTouchResolX = absinfo.maximum; >> else >> common->wcmMaxStripX = absinfo.maximum; >> @@ -683,13 +694,13 @@ int usbWcmGetRanges(LocalDevicePtr local) >> * or touch physical Y for TabletPCs with touch */ >> if (ioctl(local->fd, EVIOCGABS(ABS_RY), &absinfo) == 0) >> { >> - if (IsTouch(priv)) >> + if (is_touch) >> common->wcmTouchResolY = absinfo.maximum; >> else >> common->wcmMaxStripY = absinfo.maximum; >> } >> >> - if (IsTouch(priv) && common->wcmTouchResolX && common->wcmMaxTouchX) >> + if (is_touch && common->wcmTouchResolX && common->wcmMaxTouchX) >> { >> common->wcmTouchResolX = (int)(((double)common->wcmTouchResolX) >> / ((double)common->wcmMaxTouchX) + 0.5); >> -- >> 1.6.6.1 > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel