On Sat, Jun 25, 2011 at 01:05:49PM -0500, ch...@cnpbagwell.com wrote:
> From: Chris Bagwell <ch...@cnpbagwell.com>
> 
> The feature never fully worked and bits have slowing been removed.
> Remove remaining in one swoop.
> 
> As apart of removing logic, now store ABS_PRESSURE values in the more
> appropriate "pressure" location so that it can eventually be exposed in
> the Pressure axis that touch devices create but do not currently send.

I do wonder how this works for ISDV4 devices where the capacity still comes
in through capacity, not pressure. We don't have separate devices here
(unlike the bamboos). Any comments?

Otherwise, +1 for merging the two into a "pressure" setting, having Capacity
exposed is not necessary.

> Additional changes beyond this patch are required to get Pressure Axis
> working on touch devices.
> 
> Signed-off-by: Chris Bagwell <ch...@cnpbagwell.com>
> ---
>  man/wacom.man           |    5 -----
>  src/wcmCommon.c         |   10 ++--------
>  src/wcmISDV4.c          |    1 -
>  src/wcmUSB.c            |   20 ++++----------------
>  src/wcmValidateDevice.c |   11 +----------
>  src/wcmXCommand.c       |   19 -------------------
>  src/xf86WacomDefs.h     |    6 ------
>  7 files changed, 7 insertions(+), 65 deletions(-)
> 
> diff --git a/man/wacom.man b/man/wacom.man
> index 7d1de36..2388e15 100644
> --- a/man/wacom.man
> +++ b/man/wacom.man
> @@ -162,11 +162,6 @@ enables the touch event for Tablet PC that supports 
> touch feature,  i.e.,
>  system cursor moves when user touches the tablet.  Default to "on" for 
>  Tablet PCs with touch feature; "off" for all other models.
>  .TP 4
> -.B Option \fI"Capacity"\fP \fI"number"\fP
> -sets touch sensitivity level for capacitive touch device, where number 
> -can be an integer from -1 to 5.  Default is 3 for capacitive tools and 
> --1 for non-capacitive tools.
> -.TP 4
>  .B Option \fI"Rotate"\fP \fI"CW"|"CCW"|"HALF"|"NONE"\fP
>  rotates the tablet orientation counterclockwise (CCW) or clockwise (CW) or 
> 180 degrees (HALF). 
>  If you have specific tablet mappings, i.e. TopX/Y or BottomX/Y were set, the 
> mapping will be 
> diff --git a/src/wcmCommon.c b/src/wcmCommon.c
> index bd47c51..b974071 100644
> --- a/src/wcmCommon.c
> +++ b/src/wcmCommon.c
> @@ -515,7 +515,6 @@ static void wcmUpdateOldState(const InputInfoPtr pInfo,
>       priv->oldX = priv->currentX;
>       priv->oldY = priv->currentY;
>       priv->oldZ = ds->pressure;
> -     priv->oldCapacity = ds->capacity;
>       priv->oldTiltX = tx;
>       priv->oldTiltY = ty;
>       priv->oldStripX = ds->stripx;
> @@ -759,7 +758,6 @@ void wcmSendEvents(InputInfoPtr pInfo, const 
> WacomDeviceState* ds)
>               priv->oldX = 0;
>               priv->oldY = 0;
>               priv->oldZ = 0;
> -             priv->oldCapacity = ds->capacity;
>               priv->oldTiltX = 0;
>               priv->oldTiltY = 0;
>               priv->oldStripX = 0;
> @@ -807,12 +805,11 @@ wcmCheckSuppress(WacomCommonPtr common,
>       if (dsOrig->stripy != dsNew->stripy) goto out;
>  
>       /* FIXME: we should have different suppress values for different
> -      * axes. The resolution for x/y is vastly higher than for capacity
> -      * for example. */
> +      * axes with vastly different ranges.
> +      */
>       if (abs(dsOrig->tiltx - dsNew->tiltx) > suppress) goto out;
>       if (abs(dsOrig->tilty - dsNew->tilty) > suppress) goto out;
>       if (abs(dsOrig->pressure - dsNew->pressure) > suppress) goto out;
> -     if (abs(dsOrig->capacity - dsNew->capacity) > suppress) goto out;
>       if (abs(dsOrig->throttle - dsNew->throttle) > suppress) goto out;
>       if (abs(dsOrig->rotation - dsNew->rotation) > suppress &&
>           (1800 - abs(dsOrig->rotation - dsNew->rotation)) >  suppress) goto 
> out;
> @@ -1393,9 +1390,6 @@ WacomCommonPtr wcmNewCommon(void)
>       common->wcmFlags = 0;               /* various flags */
>       common->wcmProtocolLevel = WCM_PROTOCOL_4; /* protocol level */
>       common->wcmTPCButton = 0;          /* set Tablet PC button on/off */
> -     common->wcmCapacity = -1;          /* Capacity is disabled */
> -     common->wcmCapacityDefault = -1;    /* default to -1 when capacity 
> isn't supported */
> -                                        /* 3 when capacity is supported */
>       common->wcmGestureParameters.wcmZoomDistance = 50;
>       common->wcmGestureParameters.wcmZoomDistanceDefault = 50;
>       common->wcmGestureParameters.wcmScrollDirection = 0;
> diff --git a/src/wcmISDV4.c b/src/wcmISDV4.c
> index e199521..82c709d 100644
> --- a/src/wcmISDV4.c
> +++ b/src/wcmISDV4.c
> @@ -660,7 +660,6 @@ static int isdv4Parse(InputInfoPtr pInfo, const unsigned 
> char* data, int len)
>  
>               ds->x = touchdata.x;
>               ds->y = touchdata.y;
> -             ds->capacity = touchdata.capacity;
>               ds->buttons = ds->proximity = touchdata.status;
>               ds->device_type = TOUCH_ID;
>               ds->device_id = TOUCH_DEVICE_ID;
> diff --git a/src/wcmUSB.c b/src/wcmUSB.c
> index 0ea7737..04bd897 100644
> --- a/src/wcmUSB.c
> +++ b/src/wcmUSB.c
> @@ -1028,10 +1028,7 @@ static int usbParseAbsEvent(WacomCommonPtr common,
>                       ds->tilty = event->value - common->wcmMaxtiltY/2;
>                       break;
>               case ABS_PRESSURE:
> -                     if (ds->device_type == TOUCH_ID)
> -                             ds->capacity = event->value;
> -                     else
> -                             ds->pressure = event->value;
> +                     ds->pressure = event->value;
>                       break;
>               case ABS_DISTANCE:
>                       ds->distance = event->value;
> @@ -1129,7 +1126,7 @@ static int usbParseAbsMTEvent(WacomCommonPtr common, 
> struct input_event *event)
>                       break;
>  
>               case ABS_MT_PRESSURE:
> -                     ds->capacity = event->value;
> +                     ds->pressure = event->value;
>                       break;
>  
>               default:
> @@ -1253,17 +1250,8 @@ static int usbParseKeyEvent(WacomCommonPtr common,
>                       if ((ds->proximity && !dslast->proximity) ||
>                           (!ds->proximity && dslast->proximity))
>                               ds->sample = (int)GetTimeInMillis();
> -                     /* left button is always pressed for
> -                      * touchscreen without capacity
> -                      * when the first finger touch event received.
> -                      * For touchscreen with capacity, left button
> -                      * event will be decided
> -                      * in wcmCommon.c by capacity threshold.
> -                      * Touchpads should not have button
> -                      * press.
> -                      */
> -                     if (common->wcmCapacityDefault < 0 &&
> -                         (TabletHasFeature(common, WCM_LCD)))
> +                     /* left button is always pressed for touchscreen */
> +                     if (TabletHasFeature(common, WCM_LCD))
>                               ds->buttons = mod_buttons(ds->buttons, 0, 
> event->value);
>                       break;
>  
> diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c
> index 409a42f..12a0c2e 100644
> --- a/src/wcmValidateDevice.c
> +++ b/src/wcmValidateDevice.c
> @@ -851,7 +851,7 @@ Bool wcmParseOptions(InputInfoPtr pInfo, Bool is_primary, 
> Bool is_dependent)
>       if (TabletHasFeature(common, WCM_1FGT) ||
>           TabletHasFeature(common, WCM_2FGT))
>       {
> -             int touch_is_on, capacity_is_on;
> +             int touch_is_on;
>  
>               /* TouchDefault was off for all devices
>                * except when touch is supported */
> @@ -865,15 +865,6 @@ Bool wcmParseOptions(InputInfoPtr pInfo, Bool 
> is_primary, Bool is_dependent)
>               else if (touch_is_on != common->wcmTouch)
>                       xf86Msg(X_WARNING, "%s: Touch option can only be set "
>                               "by a touch tool.\n", pInfo->name);
> -
> -             capacity_is_on = xf86SetBoolOption(pInfo->options, "Capacity",
> -                                                common->wcmCapacityDefault);
> -
> -             if (is_primary || IsTouch(priv))
> -                     common->wcmCapacity = capacity_is_on;
> -             else if (capacity_is_on != common->wcmCapacity)
> -                     xf86Msg(X_WARNING, "%s: Touch Capacity option can only 
> be"
> -                             "set by a touch tool.\n", pInfo->name);
>       }
>  
>       /* 2FG touch device */
> diff --git a/src/wcmXCommand.c b/src/wcmXCommand.c
> index 98de29b..18e5b61 100644
> --- a/src/wcmXCommand.c
> +++ b/src/wcmXCommand.c
> @@ -89,7 +89,6 @@ Atom prop_strip_buttons;
>  Atom prop_wheel_buttons;
>  Atom prop_tv_resolutions;
>  Atom prop_cursorprox;
> -Atom prop_capacity;

If you're removing the capacity property, it should probably be marked as
deprecated and documented as such.

Cheers,
  Peter

>  Atom prop_threshold;
>  Atom prop_suppress;
>  Atom prop_touch;
> @@ -192,9 +191,6 @@ void InitWcmDeviceProperties(InputInfoPtr pInfo)
>               prop_cursorprox = InitWcmAtom(pInfo->dev, 
> WACOM_PROP_PROXIMITY_THRESHOLD, 32, 1, values);
>       }
>  
> -     values[0] = common->wcmCapacity;
> -     prop_capacity = InitWcmAtom(pInfo->dev, WACOM_PROP_CAPACITY, 32, 1, 
> values);
> -
>       values[0] = (!common->wcmMaxZ) ? 0 : common->wcmThreshold;
>       prop_threshold = InitWcmAtom(pInfo->dev, WACOM_PROP_PRESSURE_THRESHOLD, 
> 32, 1, values);
>  
> @@ -738,21 +734,6 @@ int wcmSetProperty(DeviceIntPtr dev, Atom property, 
> XIPropertyValuePtr prop,
>  
>               if (!checkonly)
>                       common->wcmCursorProxoutDist = value;
> -     } else if (property == prop_capacity)
> -     {
> -             INT32 value;
> -
> -             if (prop->size != 1 || prop->format != 32)
> -                     return BadValue;
> -
> -             value = *(INT32*)prop->data;
> -
> -             if ((value < -1) || (value > 5))
> -                     return BadValue;
> -
> -             if (!checkonly)
> -                     common->wcmCapacity = value;
> -
>       } else if (property == prop_threshold)
>       {
>               CARD32 value;
> diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h
> index f054d2c..0d7381a 100644
> --- a/src/xf86WacomDefs.h
> +++ b/src/xf86WacomDefs.h
> @@ -285,7 +285,6 @@ struct _WacomDeviceRec
>       int oldX;               /* previous X position */
>       int oldY;               /* previous Y position */
>       int oldZ;               /* previous pressure */
> -     int oldCapacity;        /* previous capacity */
>       int oldTiltX;           /* previous tilt in x direction */
>       int oldTiltY;           /* previous tilt in y direction */    
>       int oldWheel;           /* previous wheel value */    
> @@ -339,7 +338,6 @@ struct _WacomDeviceState
>       int y;
>       int buttons;
>       int pressure;
> -     int capacity;
>       int tiltx;
>       int tilty;
>       int stripx;
> @@ -456,7 +454,6 @@ struct _WacomCommonRec
>       int wcmTouchResolY;          /* touch Y resolution in points/m */
>                                    /* tablet Z resolution is equivalent
>                                     * to wcmMaxZ which is equal to 100% 
> pressure */
> -     int wcmMaxCapacity;          /* max capacity value */
>       int wcmMaxDist;              /* tablet max distance value */
>       int wcmMaxtiltX;             /* styli max tilt in X directory */ 
>       int wcmMaxtiltY;             /* styli max tilt in Y directory */ 
> @@ -485,9 +482,6 @@ struct _WacomCommonRec
>       int wcmGestureDefault;       /* default touch gesture to disable when 
> not supported */
>       int wcmGestureMode;            /* data is in Gesture Mode? */
>       WacomDeviceState wcmGestureState[MAX_FINGERS]; /* inital state when in 
> gesture mode */
> -     int wcmCapacity;             /* disable/enable capacity */
> -     int wcmCapacityDefault;      /* default to -1 when capacity isn't 
> supported/disabled */
> -                                  /* 3 when capacity is supported */
>       WacomGesturesParameters wcmGestureParameters;
>       int wcmMaxCursorDist;        /* Max mouse distance reported so far */
>       int wcmCursorProxoutDist;    /* Max mouse distance for proxy-out 
> max/256 units */
> -- 
> 1.7.5.2


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to