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