From 7f3815f74e77df6122320d845d6e7e9541a28b76 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri, 17 Jul 2009 14:28:42 +1000
Subject: [PATCH] Cope with XINPUT ABI 7.

---
 src/xf86HyperPen.c |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/xf86HyperPen.c b/src/xf86HyperPen.c
index bd630a5..3920a04 100644
--- a/src/xf86HyperPen.c
+++ b/src/xf86HyperPen.c
@@ -719,6 +719,9 @@ xf86HypOpenDevice(DeviceIntPtr pHyp)
 {
     LocalDevicePtr	local = (LocalDevicePtr)pHyp->public.devicePrivate;
     HyperPenDevicePtr	priv = (HyperPenDevicePtr)PRIVATE(pHyp);
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+    Atom axis_labels[3] = { 0 };
+#endif
 
     if (xf86HypOpen(local) != Success) {
 	if (local->fd >= 0) {
@@ -730,6 +733,9 @@ xf86HypOpenDevice(DeviceIntPtr pHyp)
 /* Set the real values */
     InitValuatorAxisStruct(pHyp,
 			   0,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+			   axis_labels[0],
+#endif
 			   0, /* min val */
 			   priv->hypXSize, /* max val */
 			   LPI2CPM(priv->hypRes), /* resolution */
@@ -737,6 +743,9 @@ xf86HypOpenDevice(DeviceIntPtr pHyp)
 			   LPI2CPM(priv->hypRes)); /* max_res */
     InitValuatorAxisStruct(pHyp,
 			   1,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+			   axis_labels[1],
+#endif
 			   0, /* min val */
 			   priv->hypYSize, /* max val */
 			   LPI2CPM(priv->hypRes), /* resolution */
@@ -744,6 +753,9 @@ xf86HypOpenDevice(DeviceIntPtr pHyp)
 			   LPI2CPM(priv->hypRes)); /* max_res */
     InitValuatorAxisStruct(pHyp,
 			   2,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+			   axis_labels[2],
+#endif
 			   0, /* min val */
 			   511, /* max val */
 			   512, /* resolution */
@@ -765,8 +777,10 @@ xf86HypProc(DeviceIntPtr pHyp, int what)
     int			loop;
     LocalDevicePtr	local = (LocalDevicePtr)pHyp->public.devicePrivate;
     HyperPenDevicePtr	priv = (HyperPenDevicePtr)PRIVATE(pHyp);
-
-
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+    Atom btn_labels[4] = { 0 };
+    Atom axis_labels[3] = { 0 };
+#endif
 
     switch (what) {
 	case DEVICE_INIT:
@@ -779,6 +793,9 @@ xf86HypProc(DeviceIntPtr pHyp, int what)
 
 	    if (InitButtonClassDeviceStruct(pHyp,
 					    nbbuttons,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+					    btn_labels,
+#endif
 					    map) == FALSE) {
 		ErrorF("unable to allocate Button class device\n");
 		return !Success;
@@ -802,6 +819,9 @@ xf86HypProc(DeviceIntPtr pHyp, int what)
 
 	    if (InitValuatorClassDeviceStruct(pHyp,
 		   nbaxes,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+		   axis_labels,
+#endif
 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3
 		   xf86GetMotionEvents,
 #endif
-- 
1.6.5.4

