On Wed, Feb 29, 2012 at 04:09:13PM -0800, Jason Gerecke wrote: > On Tue, Feb 21, 2012 at 10:54 PM, Peter Hutterer > <peter.hutte...@who-t.net> wrote: > > Previously, we exported old serial number, old tool ID and current serial > > number. Export the current tool ID as well. > > > > Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> > > --- > > include/wacom-properties.h | 6 ++++-- > > src/wcmCommon.c | 6 +++--- > > src/wcmXCommand.c | 16 ++++++++++------ > > src/xf86Wacom.h | 2 +- > > src/xf86WacomDefs.h | 1 + > > 5 files changed, 19 insertions(+), 12 deletions(-) > > > > diff --git a/include/wacom-properties.h b/include/wacom-properties.h > > index 0bb84b1..2bb86ab 100644 > > --- a/include/wacom-properties.h > > +++ b/include/wacom-properties.h > > @@ -33,8 +33,10 @@ > > /* 32 bit, 4 values */ > > #define WACOM_PROP_PRESSURECURVE "Wacom Pressurecurve" > > > > -/* CARD32, 4 values, tablet id, old serial, old hw device id, current > > serial > > - read-only */ > > +/* CARD32, 4 values, tablet id, old serial, old hw device id, > Should be 5 values, not 4
fixed > > > + current serial, current device id > > + read-only > > + */ > > #define WACOM_PROP_SERIALIDS "Wacom Serial IDs" > > > > /* CARD32, 1 value */ > > diff --git a/src/wcmCommon.c b/src/wcmCommon.c > > index 11340ea..65b0390 100644 > > --- a/src/wcmCommon.c > > +++ b/src/wcmCommon.c > > @@ -730,8 +730,8 @@ void wcmSendEvents(InputInfoPtr pInfo, const > > WacomDeviceState* ds) > > return; > > } > > > > - if (priv->cur_serial != serial) > > - wcmUpdateSerial(pInfo, serial); > > + if (priv->cur_serial != serial || priv->cur_device_id != id) > > + wcmUpdateSerial(pInfo, serial, id); > > > > /* don't move the cursor when going out-prox */ > > if (!ds->proximity) > > @@ -833,7 +833,7 @@ void wcmSendEvents(InputInfoPtr pInfo, const > > WacomDeviceState* ds) > > priv->devReverseCount = 0; > > priv->old_serial = serial; > > priv->old_device_id = id; > > - wcmUpdateSerial(pInfo, 0); > > + wcmUpdateSerial(pInfo, 0, 0); > > } > > } > > > > diff --git a/src/wcmXCommand.c b/src/wcmXCommand.c > > index 0fd5664..57b3f20 100644 > > --- a/src/wcmXCommand.c > > +++ b/src/wcmXCommand.c > > @@ -190,7 +190,8 @@ void InitWcmDeviceProperties(InputInfoPtr pInfo) > > values[1] = priv->old_serial; > > values[2] = priv->old_device_id; > > values[3] = priv->cur_serial; > > - prop_serials = InitWcmAtom(pInfo->dev, WACOM_PROP_SERIALIDS, > > XA_INTEGER, 32, 4, values); > > + values[4] = priv->cur_device_id; > > + prop_serials = InitWcmAtom(pInfo->dev, WACOM_PROP_SERIALIDS, > > XA_INTEGER, 32, 5, values); > > > > values[0] = priv->serial; > > prop_serial_binding = InitWcmAtom(pInfo->dev, > > WACOM_PROP_SERIAL_BIND, XA_INTEGER, 32, 1, values); > > @@ -718,7 +719,7 @@ int wcmSetProperty(DeviceIntPtr dev, Atom property, > > XIPropertyValuePtr prop, > > * set it at runtime. If we get here from wcmUpdateSerial, > > * we know the serial has ben set internally already, so we > > * can reply with success. */ > > - if (prop->size == 4 && prop->format == 32) > > + if (prop->size == 5 && prop->format == 32) > > if (((CARD32*)prop->data)[3] == priv->cur_serial) > > return Success; > > > > @@ -875,11 +876,12 @@ int wcmGetProperty (DeviceIntPtr dev, Atom property) > > values[1] = priv->old_serial; > > values[2] = priv->old_device_id; > > values[3] = priv->cur_serial; > > + values[4] = priv->cur_device_id; > > > > DBG(10, priv, "Update to serial: %d\n", priv->old_serial); > > > > return XIChangeDeviceProperty(dev, property, XA_INTEGER, 32, > > - PropModeReplace, 4, > > + PropModeReplace, 5, > > values, FALSE); > > } > > > > @@ -892,14 +894,14 @@ serialTimerFunc(OsTimerPtr timer, CARD32 now, pointer > > arg) > > InputInfoPtr pInfo = arg; > > WacomDevicePtr priv = pInfo->private; > > XIPropertyValuePtr prop; > > - CARD32 prop_value[4]; > > + CARD32 prop_value[5]; > > int sigstate; > > int rc; > > > > sigstate = xf86BlockSIGIO(); > > > > rc = XIGetDeviceProperty(pInfo->dev, prop_serials, &prop); > > - if (rc != Success || prop->format != 32 || prop->size != 4) > > + if (rc != Success || prop->format != 32 || prop->size != 5) > > { > > xf86Msg(X_ERROR, "%s: Failed to update serial number.\n", > > pInfo->name); > > @@ -908,6 +910,7 @@ serialTimerFunc(OsTimerPtr timer, CARD32 now, pointer > > arg) > > > > memcpy(prop_value, prop->data, sizeof(prop_value)); > > prop_value[3] = priv->cur_serial; > > + prop_value[4] = priv->cur_device_id; > > > > XIChangeDeviceProperty(pInfo->dev, prop_serials, XA_INTEGER, > > prop->format, PropModeReplace, > > @@ -919,7 +922,7 @@ serialTimerFunc(OsTimerPtr timer, CARD32 now, pointer > > arg) > > } > > > > void > > -wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial) > > +wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial, int id) > > { > > WacomDevicePtr priv = pInfo->private; > > > > @@ -927,6 +930,7 @@ wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial) > > return; > > > > priv->cur_serial = serial; > > + priv->cur_device_id = id; > > > > /* This function is called during SIGIO. Schedule timer for property > > * event delivery outside of signal handler. */ > > diff --git a/src/xf86Wacom.h b/src/xf86Wacom.h > > index fc1b4f4..677dfd3 100644 > > --- a/src/xf86Wacom.h > > +++ b/src/xf86Wacom.h > > @@ -169,7 +169,7 @@ extern int wcmGetProperty(DeviceIntPtr dev, Atom > > property); > > extern int wcmDeleteProperty(DeviceIntPtr dev, Atom property); > > extern void InitWcmDeviceProperties(InputInfoPtr pInfo); > > extern void wcmUpdateRotationProperty(WacomDevicePtr priv); > > -extern void wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial); > > +extern void wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial, int > > id); > > > > /* Utility functions */ > > extern Bool is_absolute(InputInfoPtr pInfo); > > diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h > > index ef425f5..01aa4d4 100644 > > --- a/src/xf86WacomDefs.h > > +++ b/src/xf86WacomDefs.h > > @@ -226,6 +226,7 @@ struct _WacomDeviceRec > > double factorY; /* Y factor */ > > unsigned int serial; /* device serial number this device takes > > (if 0, any serial is ok) */ > > unsigned int cur_serial; /* current serial in prox */ > > + int cur_device_id; /* current device ID in prox */ > > int maxWidth; /* max active screen width in screen coords > > */ > > int maxHeight; /* max active screen height in screen coords > > */ > > int leftPadding; /* left padding for virtual tablet in device > > coordinates*/ > > -- > > 1.7.7.6 > > > > Forgot to double-check the list for outstanding patches before the RC, > so let me know if you want me to quickly whip up a 0.13.99.2 with this > patch folded in. I've pushed it to git://people.freedesktop.org/~whot/xf86-input-wacom.git Regarding patches for a RC2, the ToolID/ToolType xsetwacom patches I just sent out should be considered. (sorry, I thought they'd been on the list already) > Aside from the issue mentioned above: > Reviewed-by: Jason Gerecke <killert...@gmail.com> thanks. Cheers, Peter ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel