On Wed, Aug 31, 2011 at 09:59:14AM -0500, Chris Bagwell wrote: > On Wed, Aug 31, 2011 at 1:09 AM, Peter Hutterer > <peter.hutte...@who-t.net> wrote: > > On Sat, Aug 27, 2011 at 12:03:19PM -0500, ch...@cnpbagwell.com wrote: > >> common->wcmGestureParameters.wcmScrollDirection = 0; > >> - common->wcmGestureParameters.wcmScrollDistance = 20; > >> - common->wcmGestureParameters.wcmScrollDistanceDefault = 20; > >> + common->wcmGestureParameters.wcmScrollDistance = -1; > >> + common->wcmGestureParameters.wcmScrollDistanceDefault = -1; > >> + common->wcmGestureParameters.wcmInlineDistance = -1; > >> common->wcmGestureParameters.wcmTapTime = 250; > >> common->wcmGestureParameters.wcmTapTimeDefault = 250; > >> common->wcmRotate = ROTATE_NONE; /* default tablet rotation to off > >> */ > >> diff --git a/src/wcmTouchFilter.c b/src/wcmTouchFilter.c > >> index 1600705..0e1e258 100644 > >> --- a/src/wcmTouchFilter.c > >> +++ b/src/wcmTouchFilter.c > >> @@ -24,7 +24,6 @@ > >> #include <math.h> > >> > >> /* Defines for 2FC Gesture */ > >> -#define WACOM_INLINE_DISTANCE 40 > >> #define WACOM_HORIZ_ALLOWED 1 > >> #define WACOM_VERT_ALLOWED 2 > >> #define WACOM_GESTURE_LAG_TIME 10 > >> @@ -43,6 +42,20 @@ > >> static void wcmFingerScroll(WacomDevicePtr priv); > >> static void wcmFingerZoom(WacomDevicePtr priv); > >> > >> +void wcmInitGestureSizes(InputInfoPtr pInfo) > >> +{ > >> + WacomDevicePtr priv = (WacomDevicePtr) pInfo->private; > >> + WacomCommonPtr common = priv->common; > >> + WacomGesturesParameters *gp = &common->wcmGestureParameters; > >> + > >> + if (gp->wcmZoomDistance == -1) > >> + gp->wcmZoomDistance = priv->maxX * (1600.0 / 14720); > >> + if (gp->wcmScrollDistance == -1) > >> + gp->wcmScrollDistance = priv->maxX * (640.0 / 14720); > >> + if (gp->wcmInlineDistance == -1) > >> + gp->wcmInlineDistance = priv->maxX * (1280.0 / 14720); > > > > where do these numbers come from again? > > Good question. :-) They come from the original wcm*Distance values > used in init function that was deleted but scaling them up with "<< 5" > to match how kernel driver is also scaling up reported values by "<< > 5". The maximum value of 14720 also comes from latest Bamboo reported > maximums. > > I'm not sure they are ideal values yet but work reasonably well. > > > shouldn't they have defines? > > Dunno. Your call. xf86-input-synaptics didn't do it for similar > values. Original code in init didn't either. So I didn't bother. > > I can see some value in #define MAX_BAMBOO_X 14720 to let reader know > where that came from. MAX synaptics X value is a little more defacto > value so not as confusing.
I prefer to use defines wherever we use a number more than once and the 14720 is such a case. plus, that way we can comment the defines where they are and make the code independent of the actual value and easier to understand. whenever magic numbers are used, comments should be there anyway to explain that they're just that. Having a look at this code again I wonder: can we move the default calculation into wcmParseOptions? no need to set it to -1, use that as a default and then set it to 1600.0/14720 later. We could just add this magic number to the xf86SetIntOption call. > >> diff --git a/src/xf86Wacom.h b/src/xf86Wacom.h > >> index 60353dc..72d06bb 100644 > >> --- a/src/xf86Wacom.h > >> +++ b/src/xf86Wacom.h > >> @@ -128,6 +128,8 @@ Bool wcmAreaListOverlap(WacomToolAreaPtr area, > >> WacomToolAreaPtr list); > >> > >> /* calculate the proper tablet to screen mapping factor */ > >> void wcmMappingFactor(InputInfoPtr pInfo); > >> +/* calculate gesture sizes based on tablet sizes */ > >> +void wcmInitGestureSizes(InputInfoPtr pInfo); > >> > >> /* validation */ > >> extern Bool wcmIsAValidType(InputInfoPtr pInfo, const char* type); > >> diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h > >> index 94eee2e..65b7088 100644 > >> --- a/src/xf86WacomDefs.h > >> +++ b/src/xf86WacomDefs.h > >> @@ -414,6 +414,7 @@ typedef struct { > >> int wcmZoomDistanceDefault; /* default minimum distance for a > >> zoom touch gesture */ > >> int wcmScrollDistance; /* minimum motion before sending a > >> scroll gesture */ > >> int wcmScrollDirection; /* store the vertical or horizontal > >> bit in use */ > >> + int wcmInlineDistance; /* maximum distance between fingers > >> for scroll gesture */ > > > > this should probably be named something like maxScrollDistance to be more > > explanatory. > > Makes sense. I'll update. Maybe wcmMaxScrollWidth is even better? > Distance makes me think about fingers traveling. MaxScrollFingerGap or -Span comes to mind too. Width is a bit ambiguous since we use that in synaptics for finger width. Cheers, Peter ------------------------------------------------------------------------------ Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free "Love Thy Logs" t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel