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