On Sun, Jun 26, 2011 at 5:24 PM, Peter Hutterer <[email protected]>wrote:

> On Sat, Jun 25, 2011 at 01:05:49PM -0500, [email protected] wrote:
> > From: Chris Bagwell <[email protected]>
> >
> > 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?
>

I need to check the status of capacity (for ISDV4 touch) and pressure (for
Bamboo touch ) since last information I got was they were both unreliable.
That's why I didn't use them.

Ping

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 <[email protected]>
> > ---
> >  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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to