On Thu, Jun 23, 2011 at 8:06 PM, <[email protected]> wrote:
> From: Chris Bagwell <[email protected]>
>
> Some of the previous usage of "=" instead of "|=" could
> cause previous settings to be lost. Only know case was
>
Nitpicking: s/know/known
Ping
> for CintiqV5 losing WCM_LCD value.
>
> Signed-off-by: Chris Bagwell <[email protected]>
> ---
>
> New in v3: Changed from using MaskSet() to a new symetrical
> TabletSetFeature().
>
> src/wcmConfig.c | 4 ++--
> src/wcmValidateDevice.c | 36 ++++++++++++++++++------------------
> src/xf86WacomDefs.h | 1 +
> 3 files changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/src/wcmConfig.c b/src/wcmConfig.c
> index f6b6b06..a799159 100644
> --- a/src/wcmConfig.c
> +++ b/src/wcmConfig.c
> @@ -412,8 +412,8 @@ static void wcmLinkTouchAndPen(InputInfoPtr pInfo)
> if (common->wcmTouchDevice ||
> tmpcommon->wcmTouchDevice)
> {
> - common->tablet_type |=
> WCM_PENTOUCH;
> - tmpcommon->tablet_type |=
> WCM_PENTOUCH;
> + TabletSetFeature(common,
> WCM_PENTOUCH);
> + TabletSetFeature(tmpcommon,
> WCM_PENTOUCH);
> }
> }
> }
> diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c
> index 409a42f..272a02e 100644
> --- a/src/wcmValidateDevice.c
> +++ b/src/wcmValidateDevice.c
> @@ -184,7 +184,7 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> switch (priv->common->tablet_id)
> {
> case 0xCC: /* CintiqV5 */
> - priv->common->tablet_type = WCM_LCD;
> + TabletSetFeature(priv->common, WCM_LCD);
> /* fall through */
>
> case 0xB8: /* I4 */
> @@ -193,13 +193,13 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> case 0xBB: /* I4 */
> case 0xBC: /* I4 */
> case 0xBD: /* I4 */
> - priv->common->tablet_type = WCM_ROTATION;
> + TabletSetFeature(priv->common, WCM_ROTATION);
> /* fall through */
>
> /* tablets with touch ring */
> case 0x17: /* BambooFun */
> case 0x18: /* BambooFun */
> - priv->common->tablet_type |= WCM_RING;
> + TabletSetFeature(priv->common, WCM_RING);
> break;
>
> /* tablets support dual input */
> @@ -214,7 +214,7 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> case 0x44: /* I2 */
> case 0x45: /* I2 */
> case 0x47: /* I2 */
> - priv->common->tablet_type = WCM_DUALINPUT;
> + TabletSetFeature(priv->common, WCM_DUALINPUT);
> break;
>
> /* P4 display tablets */
> @@ -233,14 +233,14 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> case 0xC7: /* DTU1931 */
> case 0xCE: /* DTU2231 */
> case 0xF0: /* DTU1631 */
> - priv->common->tablet_type |= WCM_LCD;
> + TabletSetFeature(priv->common, WCM_LCD);
> break;
>
> /* tablets support menu strips */
> case 0x3F: /* CintiqV5 */
> case 0xC5: /* CintiqV5 */
> case 0xC6: /* CintiqV5 */
> - priv->common->tablet_type = WCM_LCD;
> + TabletSetFeature(priv->common, WCM_LCD);
> /* fall through */
> case 0xB0: /* I3 */
> case 0xB1: /* I3 */
> @@ -249,35 +249,35 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> case 0xB4: /* I3 */
> case 0xB5: /* I3 */
> case 0xB7: /* I3 */
> - priv->common->tablet_type |= WCM_STRIP |
> WCM_ROTATION;
> + TabletSetFeature(priv->common, WCM_STRIP |
> WCM_ROTATION);
> break;
>
> case 0xE2: /* TPC with 2FGT */
> case 0xE3: /* TPC with 2FGT */
> case 0xE6: /* TPC with 2FGT */
> - priv->common->tablet_type = WCM_TPC;
> - priv->common->tablet_type |= WCM_LCD;
> + TabletSetFeature(priv->common, WCM_TPC);
> + TabletSetFeature(priv->common, WCM_LCD);
> break;
>
> case 0x93: /* TPC with 1FGT */
> case 0x9A: /* TPC with 1FGT */
> case 0x90: /* TPC */
> - priv->common->tablet_type |= WCM_TPC;
> - priv->common->tablet_type |= WCM_LCD;
> + TabletSetFeature(priv->common, WCM_TPC);
> + TabletSetFeature(priv->common, WCM_LCD);
> break;
>
> case 0x9F:
> - priv->common->tablet_type |= WCM_LCD;
> + TabletSetFeature(priv->common, WCM_LCD);
> break;
> }
>
> if (ISBITSET(common->wcmKeys, BTN_TOOL_PEN))
> - priv->common->tablet_type |= WCM_PEN;
> + TabletSetFeature(priv->common, WCM_PEN);
>
> if (ISBITSET (common->wcmKeys, BTN_0) ||
> ISBITSET (common->wcmKeys, BTN_FORWARD))
> {
> - priv->common->tablet_type |= WCM_PAD;
> + TabletSetFeature(priv->common, WCM_PAD);
> }
>
> /* This handles both protocol 4 and 5 meanings of wcmKeys */
> @@ -286,9 +286,9 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> /* TRIPLETAP means 2 finger touch */
> /* DOUBLETAP without TRIPLETAP means 1 finger touch */
> if (ISBITSET(common->wcmKeys, BTN_TOOL_TRIPLETAP))
> - priv->common->tablet_type |= WCM_2FGT;
> + TabletSetFeature(priv->common, WCM_2FGT);
> else if (ISBITSET(common->wcmKeys, BTN_TOOL_DOUBLETAP))
> - priv->common->tablet_type |= WCM_1FGT;
> + TabletSetFeature(priv->common, WCM_1FGT);
> }
>
> if (common->wcmProtocolLevel == WCM_PROTOCOL_GENERIC)
> @@ -296,9 +296,9 @@ int wcmDeviceTypeKeys(InputInfoPtr pInfo)
> /* DOUBLETAP means 2 finger touch */
> /* FINGER without DOUBLETAP means 1 finger touch */
> if (ISBITSET(common->wcmKeys, BTN_TOOL_DOUBLETAP))
> - priv->common->tablet_type |= WCM_2FGT;
> + TabletSetFeature(priv->common, WCM_2FGT);
> else if (ISBITSET(common->wcmKeys, BTN_TOOL_FINGER))
> - priv->common->tablet_type |= WCM_1FGT;
> + TabletSetFeature(priv->common, WCM_1FGT);
> }
>
> return ret;
> diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h
> index f054d2c..4fd7a12 100644
> --- a/src/xf86WacomDefs.h
> +++ b/src/xf86WacomDefs.h
> @@ -189,6 +189,7 @@ struct _WacomModel
> always an LCD) */
> #define WCM_PENTOUCH 0x00000400 /* Tablet supports pen and touch
> */
> #define TabletHasFeature(common, feature) (((common)->tablet_type &
> (feature)) != 0)
> +#define TabletSetFeature(common, feature) ((common)->tablet_type |=
> (feature))
>
> #define ABSOLUTE_FLAG 0x00000100
> #define BAUD_19200_FLAG 0x00000400
> --
> 1.7.5.2
>
>
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense..
> http://p.sf.net/sfu/splunk-d2d-c1
> _______________________________________________
> Linuxwacom-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense..
http://p.sf.net/sfu/splunk-d2d-c1
_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel