fixed compile for xorg 1.7.1 --- xf86-input-evtouch-0.8.8.orig/evtouch.c 2008-11-11 09:47:55.000000000 +0100 +++ xf86-input-evtouch-0.8.8/evtouch.c 2010-01-06 16:11:16.000000000 +0100 @@ -30,10 +30,10 @@ #define _evdev_touch_C_ -#include -#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0) -#define XFREE86_V4 -#endif +//#include +//#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0) +//#define XFREE86_V4 +//#endif /***************************************************************************** * Standard Headers @@ -88,6 +88,11 @@ #include +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3 +#include +#include +#endif + /***************************************************************************** * Local Headers ****************************************************************************/ @@ -132,14 +137,14 @@ InputDriverRec EVTOUCH = { 0 }; -#ifdef XFree86LOADER +//#ifdef XFree86LOADER static XF86ModuleVersionInfo VersionRec = { "evtouch", "Kenan Esau", MODINFOSTRING1, MODINFOSTRING2, - XF86_VERSION_CURRENT, + XORG_VERSION_CURRENT, 0, 8, 8, ABI_CLASS_XINPUT, ABI_XINPUT_VERSION, @@ -167,9 +172,9 @@ Unplug(pointer p) } -XF86ModuleData evtouchModuleData = {&VersionRec, Plug, Unplug }; +_X_EXPORT XF86ModuleData evtouchModuleData = {&VersionRec, Plug, Unplug }; -#endif /* XFree86LOADER */ +//#endif /* XFree86LOADER */ static const char *default_options[] = @@ -581,6 +586,32 @@ DeviceOff (DeviceIntPtr dev) } +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 +static void xf86WcmInitButtonLabels(Atom *labels, int nlabels) +{ + memset(labels, 0, nlabels * sizeof(Atom)); + switch(nlabels) + { + default: + case 7: + labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT); + case 6: + labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT); + case 5: + labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN); + case 4: + labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP); + case 3: + labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT); + case 2: + labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE); + case 1: + labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT); + break; + } +} +#endif + static Bool @@ -591,12 +622,21 @@ DeviceInit (DeviceIntPtr dev) EVTouchPrivatePtr priv = (EVTouchPrivatePtr) (local->private); unsigned char map[EV_MAX_BUTTONS]; int i; +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + Atom *axis_labels, *btn_labels; +#endif for (i = 0; i < EV_MAX_BUTTONS; i++) map[i] = i; priv->btn_count = EV_MAX_BUTTONS; +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + axis_labels = xcalloc(2, sizeof(Atom)); + btn_labels = xcalloc(EV_MAX_BUTTONS, sizeof(Atom)); + xf86WcmInitButtonLabels(btn_labels, EV_MAX_BUTTONS); +#endif + /* * these have to be here instead of in the SetupProc, because when the * SetupProc is run at server startup, screenInfo is not setup yet @@ -629,8 +669,18 @@ DeviceInit (DeviceIntPtr dev) /* * Device reports button press for 5 buttons. */ - if (InitButtonClassDeviceStruct (dev, EV_MAX_BUTTONS, map) == FALSE) + if (InitButtonClassDeviceStruct (dev, EV_MAX_BUTTONS, + + #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + btn_labels, + #endif + map) == FALSE) { + +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + xfree(btn_labels); +#endif + ErrorF("Unable to allocate EVTouch touchscreen ButtonClassDeviceStruct\n"); return BadAlloc; } @@ -653,7 +703,12 @@ DeviceInit (DeviceIntPtr dev) * Device reports motions on 2 axes in absolute coordinates. * Axes min and max values are reported in raw coordinates. */ - if (InitValuatorClassDeviceStruct(dev, 2, xf86GetMotionEvents, + if (InitValuatorClassDeviceStruct(dev, 2, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + axis_labels, +#endif + +// xf86GetMotionEvents, local->history_size, Absolute) == FALSE) { ErrorF ("Unable to allocate EVTouch touchscreen ValuatorClassDeviceStruct\n"); @@ -672,7 +727,24 @@ DeviceInit (DeviceIntPtr dev) EV_AXIS_MAX_RES /* max_res */ ); xf86InitValuatorDefaults(dev, 1); #else - xf86InitValuatorAxisStruct(dev, 0, priv->min_x, priv->max_x, + xf86InitValuatorAxisStruct(dev, 0, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X), +#endif + 0, priv->screen_width, + 1024, + EV_AXIS_MIN_RES /* min_res */ , + EV_AXIS_MAX_RES /* max_res */ ); + xf86InitValuatorDefaults(dev, 0); + + xf86InitValuatorAxisStruct(dev, 1, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y), +#endif + 0, priv->screen_width, + 1024, + EV_AXIS_MIN_RES /* min_res */ , + EV_AXIS_MAX_RES /* max_res */ ); xf86InitValuatorDefaults(dev, 1); #endif