[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

x11proto-input: Changes to 'upstream-unstable'



 XI.h         |   11 ++++
 XInput.h     |   82 +++++++++++++++++++++++++++++++++
 XIproto.h    |  143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 configure.ac |    2 
 4 files changed, 232 insertions(+), 6 deletions(-)

New commits:
commit 60c449cbb1769569ed5e98c75f26bd15627bd146
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 15 12:16:10 2008 +1000

    Protect _XiDevicePresenceNotifyEvent declaration against C++ includes. #19075
    
    X.Org Bug 19075 <http://bugs.freedesktop.org/show_bug.cgi?id=19075>

diff --git a/XInput.h b/XInput.h
index 702706d..3092e62 100644
--- a/XInput.h
+++ b/XInput.h
@@ -156,9 +156,16 @@ SOFTWARE.
 #define NoExtensionEvent(d,type,_class) \
     { _class =  ((XDevice *) d)->device_id << 8 | _noExtensionEvent;}
 
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+    extern int _XiGetDevicePresenceNotifyEvent(Display *);
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
 #define DevicePresence(dpy, type, _class)                       \
     {                                                           \
-        extern int _XiGetDevicePresenceNotifyEvent(Display *);  \
         type = _XiGetDevicePresenceNotifyEvent(dpy);            \
         _class =  (0x10000 | _devicePresence);                  \
     }

commit d38e79ca3ddd6031ca4a335eb2faf99294a6731f
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Wed Nov 26 21:37:06 2008 +1000

    inputproto 1.5.0

diff --git a/configure.ac b/configure.ac
index b343465..56b9bc7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.57])
-AC_INIT([InputProto], [1.4.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([InputProto], [1.5.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 
 XORG_RELEASE_VERSION

commit 5829370cafb112e488156e7ac1dd7902cfd1659a
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Nov 17 10:58:31 2008 +1000

    Remove Configure/QueryDeviceProperty.
    (cherry picked from commit 18ef04f8a2026cca5d2d2b796ec2ea1c949bad36)
    
    Removing Configure/QueryDevice property from XInput.h as well.
    Not cherry-picked as XInput.h is moved to libXi in master.
    
    Conflicts:
    
    	XIproto.h

diff --git a/XI.h b/XI.h
index 878ba0f..7c8c111 100644
--- a/XI.h
+++ b/XI.h
@@ -108,9 +108,6 @@ SOFTWARE.
 #define sz_xChangeDeviceControlReply		32
 #define sz_xListDevicePropertiesReq             8
 #define sz_xListDevicePropertiesReply           32
-#define sz_xQueryDevicePropertyReq              12
-#define sz_xQueryDevicePropertyReply            32
-#define sz_xConfigureDevicePropertyReq          12
 #define sz_xChangeDevicePropertyReq             20
 #define sz_xDeleteDevicePropertyReq             12
 #define sz_xGetDevicePropertyReq                24
diff --git a/XInput.h b/XInput.h
index 34fbb33..702706d 100644
--- a/XInput.h
+++ b/XInput.h
@@ -1244,23 +1244,6 @@ extern void XChangeDeviceProperty(
     int                 /* nelements */
 );
 
-extern XIPropertyInfo* XQueryDeviceProperty(
-    Display*            /* dpy */,
-    XDevice*            /* dev */,
-    Atom                /* property */
-);
-
-extern void
-XConfigureDeviceProperty(
-    Display*            /* dpy */,
-    XDevice*            /* dev */,
-    Atom                /* property */,
-    Bool                /* pending */,
-    Bool                /* range */,
-    int                 /* num_values */,
-    long*               /* values */
-);
-
 extern void
 XDeleteDeviceProperty(
     Display*            /* dpy */,
@@ -1276,7 +1259,6 @@ XGetDeviceProperty(
      long               /* offset*/,
      long               /* length*/,
      Bool               /* delete*/,
-     Bool               /* pending*/,
      Atom               /* req_type*/,
      Atom*              /* actual_type*/,
      int*               /* actual_format*/,
diff --git a/XIproto.h b/XIproto.h
index c84fe39..eef3ee8 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -159,11 +159,9 @@ struct tmask
 #define X_ChangeDeviceControl		35
 /* XI 1.5 */
 #define X_ListDeviceProperties          36
-#define X_QueryDeviceProperty           37
-#define X_ConfigureDeviceProperty       38
-#define X_ChangeDeviceProperty          39
-#define X_DeleteDeviceProperty          40
-#define X_GetDeviceProperty             41
+#define X_ChangeDeviceProperty          37
+#define X_DeleteDeviceProperty          38
+#define X_GetDeviceProperty             39
 
 /*********************************************************
  *
@@ -1454,55 +1452,6 @@ typedef struct {
 
 /*********************************************************
  *
- * QueryDeviceProperty.
- *
- */
-
-typedef struct {
-    CARD8       reqType;        /* input extension major opcode */
-    CARD8       ReqType;        /* always X_QueryDeviceProperty */
-    CARD16      length B16;
-    Atom        property B32;
-    CARD8       deviceid;
-    CARD8       pad0;
-    CARD16      pad1 B16;
-} xQueryDevicePropertyReq;
-
-typedef struct {
-    CARD8       repType;        /* X_Reply                        */
-    CARD8       RepType;        /* always X_QueryDeviceProperty */
-    CARD16      sequenceNumber B16;
-    CARD32      length B32;
-    BOOL        pending;
-    BOOL        range;
-    BOOL        immutable;
-    BOOL        fromClient;     /* TRUE if allocated by client */
-    CARD32      pad2 B32;
-    CARD32      pad3 B32;
-    CARD32      pad4 B32;
-    CARD32      pad5 B32;
-    CARD32      pad6 B32;
-} xQueryDevicePropertyReply;
-
-/*********************************************************
- *
- * ConfigureDeviceProperty.
- *
- */
-
-typedef struct {
-    CARD8       reqType;        /* input extension major opcode */
-    CARD8       ReqType;        /* always X_ConfigureDeviceProperty */
-    CARD16      length B16;
-    Atom        property B32;
-    CARD8       deviceid;
-    BOOL        pending;
-    BOOL        range;
-    CARD8       pad;
-} xConfigureDevicePropertyReq;
-
-/*********************************************************
- *
  * ChangeDeviceProperty.
  *
  */
@@ -1556,8 +1505,7 @@ typedef struct {
 #else
     BOOL        delete;
 #endif
-    BOOL        pending;
-    CARD8       pad;
+    CARD16      pad;
 } xGetDevicePropertyReq;
 
 typedef struct {

commit 6a4aefa04bb95c05d223027cebbe83c4117829f0
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Thu Sep 18 16:28:09 2008 +0930

    Add XI_JOYSTICK type.
    (cherry picked from commit c9454a8e84b2dce54bb346ff1aafb32e3c0ac5b9)

diff --git a/XI.h b/XI.h
index 822d5c1..878ba0f 100644
--- a/XI.h
+++ b/XI.h
@@ -136,6 +136,7 @@ SOFTWARE.
 #define XI_EYETRACKER	"EYETRACKER"
 #define XI_CURSORKEYS	"CURSORKEYS"
 #define XI_FOOTMOUSE	"FOOTMOUSE"
+#define XI_JOYSTICK	"JOYSTICK"
 
 #define Dont_Check			0
 #define XInput_Initial_Release		1

commit 6af8447fab4a06d943398e6540e6b869d8a714ae
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Nov 17 10:13:15 2008 +1000

    Undef Atom after we're done so we don't pollute users of XIproto.h
    (cherry picked from commit 36c8a6f3faf56a8f8ca31455812c9132b379b1b3)
    
    Conflicts:
    
    	XIproto.h

diff --git a/XIproto.h b/XIproto.h
index 410347f..c84fe39 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -1799,5 +1799,6 @@ typedef struct
 #undef Window
 #undef Time
 #undef KeyCode
+#undef Atom
 
 #endif

commit 72fb0941fff83f00fb039f865edcf5d25584757c
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Nov 17 10:12:50 2008 +1000

    Make sure Atoms are defined as CARD32.
    (cherry picked from commit c919917e375aefaf473570c1b25b3c22231e858d)
    
    Conflicts:
    
    	XIproto.h

diff --git a/XIproto.h b/XIproto.h
index 6870ef0..410347f 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -54,6 +54,7 @@ SOFTWARE.
 #define Window CARD32
 #define Time CARD32
 #define KeyCode CARD8
+#define Atom CARD32
 
 /*********************************************************
  *

commit 6ee1ad8951ff811dc2618c9bd26cd42096ab2ecc
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Fri Aug 15 14:21:24 2008 +0930

    Remove RCS tags, typo fix.
    (cherry picked from commit c2d47b04c55cf72aef6c13a9e2cc4b41abfca673)

diff --git a/XIproto.h b/XIproto.h
index 67c4755..6870ef0 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -1,5 +1,3 @@
-/* $Xorg: XIproto.h,v 1.5 2001/02/09 02:03:24 xorgcvs Exp $ */
-
 /************************************************************
 
 Copyright 1989, 1998  The Open Group
@@ -45,7 +43,6 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 SOFTWARE.
 
 ********************************************************/
-/* $XFree86: xc/include/extensions/XIproto.h,v 1.4 2001/01/17 17:53:17 dawes Exp $ */
 
 #ifndef _XIPROTO_H
 #define _XIPROTO_H
@@ -1546,7 +1543,7 @@ typedef struct {
 
 typedef struct {
     CARD8       reqType;        /* input extension major opcode */
-    CARD8       ReqType;        /* always X_ChangeDeviceProperty */
+    CARD8       ReqType;        /* always X_GetDeviceProperty */
     CARD16      length B16;
     Atom        property B32;
     Atom        type B32;

commit d81ca85c4bcdcab208e4731a5d0f7d9bffbfab67
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Fri Oct 31 17:53:39 2008 +1030

    PropertyNotify, move deviceid back to last byte.
    
    This way, it can be type-cast to deviceKeyButtonPointer to extract the
    deviceid, which is (aside from time) the only thing it has in common with
    those anyway.
    (cherry picked from commit f8064629496c6061bedb7a99b788fb9d3a170f11)

diff --git a/XIproto.h b/XIproto.h
index 55a2d3b..67c4755 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -1783,18 +1783,18 @@ typedef struct
 
 typedef struct
     {
-    BYTE        type;                /* always GenericEvent */
+    BYTE        type;
     BYTE        state;               /* NewValue or Deleted */
     CARD16      sequenceNumber B16;
     CARD32      time B32;
     Atom        atom B32;            /* affected property */
-    CARD8       deviceid;            /* id of device */
-    CARD8       pad0;
-    CARD16      pad1 B16;
+    CARD32      pad0 B32;
+    CARD32      pad1 B32;
     CARD32      pad2 B32;
     CARD32      pad3 B32;
-    CARD32      pad4 B32;
-    CARD32      pad5 B32;
+    CARD16      pad5 B16;
+    CARD8       pad4;
+    CARD8       deviceid;            /* id of device */
     } devicePropertyNotify;
 
 

commit e22b0ace88447a87c0b19d062a678880529b1b3b
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Aug 25 11:34:47 2008 +0930

    Add libXi's property interfaces.
    
    XInput.h was removed from inputproto, hence this commit is not a cherry-pick
    but a copy of the changes to XInput.h in libXi.

diff --git a/XInput.h b/XInput.h
index e3585b4..34fbb33 100644
--- a/XInput.h
+++ b/XInput.h
@@ -72,6 +72,10 @@ SOFTWARE.
 #define _deviceStateNotify	0
 #define _deviceMappingNotify	1
 #define _changeDeviceNotify	2
+/* Space of 3 between is necessary! Reserved for DeviceKeyStateNotify,
+   DeviceButtonStateNotify, DevicePresenceNotify (essentially unused). This
+   code has to be in sync with FixExtensionEvents() in xserver/Xi/extinit.c */
+#define _propertyNotify		6
 
 #define FindTypeAndClass(d,type,_class,classid,offset) \
     { int _i; XInputClassInfo *_ip; \
@@ -119,6 +123,9 @@ SOFTWARE.
 #define ChangeDeviceNotify(d,type,_class) \
     FindTypeAndClass(d, type, _class, OtherClass, _changeDeviceNotify)
 
+#define DevicePropertyNotify(d, type, _class) \
+    FindTypeAndClass(d, type, _class, OtherClass, _propertyNotify)
+
 #define DevicePointerMotionHint(d,type,_class) \
     { _class =  ((XDevice *) d)->device_id << 8 | _devicePointerMotionHint;}
 
@@ -448,6 +455,22 @@ typedef struct {
     XID           control;
 } XDevicePresenceNotifyEvent;
 
+/*
+ * Notifies the client that a property on a device has changed value. The
+ * client is expected to query the server for updated value of the property.
+ */
+typedef struct {
+    int           type;
+    unsigned long serial;       /* # of last request processed by server */
+    Bool          send_event;   /* true if this came from a SendEvent request */
+    Display       *display;     /* Display the event was read from */
+    Window        window;       /* unused */
+    Time          time;
+    XID           deviceid;     /* id of the device that changed */
+    Atom          atom;         /* the property that changed */
+    int           state;        /* PropertyNewValue or PropertyDeleted */
+} XDevicePropertyNotifyEvent;
+
 /*******************************************************************
  *
  * Control structures for input devices that support input class
@@ -1195,6 +1218,74 @@ extern void	XFreeDeviceControl(
     XDeviceControl*	/* control */
 );
 
+typedef struct {
+    Bool    pending;
+    Bool    range;
+    Bool    immutable;
+    Bool    fromClient;
+    int     num_values;
+    long    *values;
+} XIPropertyInfo;
+
+extern Atom*   XListDeviceProperties(
+    Display*            /* dpy */,
+    XDevice*            /* dev */,
+    int*                /* nprops_return */
+);
+
+extern void XChangeDeviceProperty(
+    Display*            /* dpy */,
+    XDevice*            /* dev */,
+    Atom                /* property */,
+    Atom                /* type */,
+    int                 /* format */,
+    int                 /* mode */,
+    _Xconst unsigned char * /*data */,
+    int                 /* nelements */
+);
+
+extern XIPropertyInfo* XQueryDeviceProperty(
+    Display*            /* dpy */,
+    XDevice*            /* dev */,
+    Atom                /* property */
+);
+
+extern void
+XConfigureDeviceProperty(
+    Display*            /* dpy */,
+    XDevice*            /* dev */,
+    Atom                /* property */,
+    Bool                /* pending */,
+    Bool                /* range */,
+    int                 /* num_values */,
+    long*               /* values */
+);
+
+extern void
+XDeleteDeviceProperty(
+    Display*            /* dpy */,
+    XDevice*            /* dev */,
+    Atom                /* property */
+);
+
+extern Status
+XGetDeviceProperty(
+     Display*           /* dpy*/,
+     XDevice*           /* dev*/,
+     Atom               /* property*/,
+     long               /* offset*/,
+     long               /* length*/,
+     Bool               /* delete*/,
+     Bool               /* pending*/,
+     Atom               /* req_type*/,
+     Atom*              /* actual_type*/,
+     int*               /* actual_format*/,
+     unsigned long*     /* nitems*/,
+     unsigned long*     /* bytes_after*/,
+     unsigned char**    /* prop*/
+);
+
+
 _XFUNCPROTOEND
 
 #endif /* _XINPUT_H_ */

commit 0a87cb3aac72adbbb81c7ac7ac04551547bf8b56
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Fri Aug 15 14:50:23 2008 +0930

    Protect against C++ includes.
    (cherry picked from commit fabe087cebb11c6a2600e57c6f7a52fda2efea29)

diff --git a/XIproto.h b/XIproto.h
index ae32d72..55a2d3b 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -1553,7 +1553,11 @@ typedef struct {
     CARD32      longOffset B32;
     CARD32      longLength B32;
     CARD8       deviceid;
+#if defined(__cplusplus) || defined(c_plusplus)
+    BOOL        c_delete;
+#else
     BOOL        delete;
+#endif
     BOOL        pending;
     CARD8       pad;
 } xGetDevicePropertyReq;

commit e507aaaa74eeb02896843eb1815b614adf47a24a
Author: Peter Hutterer <peter.hutterer@redhat.com>
Date:   Mon Aug 25 10:19:37 2008 +0930

    Back out Device Properties from XI 2, push into XI 1.5.
    (cherry picked from commit 7c9620d8232e5c05115746055a832363a528ac2d)
    
    Conflicts:
    
    	XI.h
    	XIproto.h

diff --git a/XI.h b/XI.h
index 51a4175..822d5c1 100644
--- a/XI.h
+++ b/XI.h
@@ -106,6 +106,15 @@ SOFTWARE.
 #define sz_xGetDeviceControlReply		32
 #define sz_xChangeDeviceControlReq		8
 #define sz_xChangeDeviceControlReply		32
+#define sz_xListDevicePropertiesReq             8
+#define sz_xListDevicePropertiesReply           32
+#define sz_xQueryDevicePropertyReq              12
+#define sz_xQueryDevicePropertyReply            32
+#define sz_xConfigureDevicePropertyReq          12
+#define sz_xChangeDevicePropertyReq             20
+#define sz_xDeleteDevicePropertyReq             12
+#define sz_xGetDevicePropertyReq                24
+#define sz_xGetDevicePropertyReply              32
 
 #define INAME 			"XInputExtension"
 
@@ -134,6 +143,7 @@ SOFTWARE.
 #define XInput_Add_XSetDeviceValuators	3
 #define XInput_Add_XChangeDeviceControl	4
 #define XInput_Add_DevicePresenceNotify	5
+#define XInput_Add_DeviceProperties	6
 
 #define XI_Absent		0
 #define XI_Present		1
@@ -153,6 +163,9 @@ SOFTWARE.
 #define XI_Add_DevicePresenceNotify_Major	1
 #define XI_Add_DevicePresenceNotify_Minor	4
 
+#define XI_Add_DeviceProperties_Major		1
+#define XI_Add_DeviceProperties_Minor		5
+
 #define DEVICE_RESOLUTION	1
 #define DEVICE_ABS_CALIB        2
 #define DEVICE_CORE             3
diff --git a/XIproto.h b/XIproto.h
index 6d4bf64..ae32d72 100644
--- a/XIproto.h
+++ b/XIproto.h
@@ -72,8 +72,9 @@ SOFTWARE.
 
 #define numInputClasses 7
 
-#define IEVENTS		16
+#define IEVENTS		17
 #define IERRORS		5
+#define IREQUESTS       41
 
 #define CLIENT_REQ		1
 
@@ -114,6 +115,8 @@ struct tmask
 #define XI_DeviceKeystateNotify		13
 #define XI_DeviceButtonstateNotify	14
 #define XI_DevicePresenceNotify		15
+#define XI_DevicePropertyNotify         16
+
 
 /*********************************************************
  *
@@ -156,6 +159,13 @@ struct tmask
 #define X_SetDeviceValuators		33
 #define X_GetDeviceControl		34
 #define X_ChangeDeviceControl		35
+/* XI 1.5 */
+#define X_ListDeviceProperties          36
+#define X_QueryDeviceProperty           37
+#define X_ConfigureDeviceProperty       38
+#define X_ChangeDeviceProperty          39
+#define X_DeleteDeviceProperty          40
+#define X_GetDeviceProperty             41
 
 /*********************************************************
  *
@@ -1413,6 +1423,156 @@ typedef struct {
     CARD16          pad1 B16;
 } xDeviceEnableCtl;
 
+/* XI 1.5 */
+
+/*********************************************************
+ *
+ * ListDeviceProperties.
+ *
+ */
+
+typedef struct {
+    CARD8       reqType;        /* input extension major opcode */
+    CARD8       ReqType;        /* always X_ListDeviceProperties */
+    CARD16      length B16;
+    CARD8       deviceid;
+    CARD8       pad0;
+    CARD16      pad1 B16;
+} xListDevicePropertiesReq;
+
+typedef struct {
+    CARD8       repType;        /* X_Reply                       */
+    CARD8       RepType;        /* always X_ListDeviceProperties */
+    CARD16      sequenceNumber B16;
+    CARD32      length B32;
+    CARD16      nAtoms B16;
+    CARD16      pad1 B16;
+    CARD32      pad2 B32;
+    CARD32      pad3 B32;
+    CARD32      pad4 B32;
+    CARD32      pad5 B32;
+    CARD32      pad6 B32;
+} xListDevicePropertiesReply;
+
+/*********************************************************
+ *
+ * QueryDeviceProperty.
+ *
+ */
+
+typedef struct {
+    CARD8       reqType;        /* input extension major opcode */
+    CARD8       ReqType;        /* always X_QueryDeviceProperty */
+    CARD16      length B16;
+    Atom        property B32;
+    CARD8       deviceid;
+    CARD8       pad0;
+    CARD16      pad1 B16;
+} xQueryDevicePropertyReq;
+
+typedef struct {
+    CARD8       repType;        /* X_Reply                        */
+    CARD8       RepType;        /* always X_QueryDeviceProperty */
+    CARD16      sequenceNumber B16;
+    CARD32      length B32;
+    BOOL        pending;
+    BOOL        range;
+    BOOL        immutable;
+    BOOL        fromClient;     /* TRUE if allocated by client */
+    CARD32      pad2 B32;
+    CARD32      pad3 B32;
+    CARD32      pad4 B32;
+    CARD32      pad5 B32;
+    CARD32      pad6 B32;
+} xQueryDevicePropertyReply;
+
+/*********************************************************
+ *
+ * ConfigureDeviceProperty.
+ *
+ */
+
+typedef struct {
+    CARD8       reqType;        /* input extension major opcode */
+    CARD8       ReqType;        /* always X_ConfigureDeviceProperty */
+    CARD16      length B16;
+    Atom        property B32;
+    CARD8       deviceid;
+    BOOL        pending;
+    BOOL        range;
+    CARD8       pad;
+} xConfigureDevicePropertyReq;
+
+/*********************************************************
+ *
+ * ChangeDeviceProperty.
+ *
+ */
+
+typedef struct {
+    CARD8       reqType;        /* input extension major opcode */
+    CARD8       ReqType;        /* always X_ChangeDeviceProperty */
+    CARD16      length B16;
+    Atom        property B32;
+    Atom        type B32;
+    CARD8       deviceid;
+    CARD8       format;
+    CARD8       mode;
+    CARD8       pad;
+    CARD32      nUnits B32;
+} xChangeDevicePropertyReq;
+
+/*********************************************************
+ *
+ * DeleteDeviceProperty.
+ *
+ */
+
+typedef struct {
+    CARD8       reqType;        /* input extension major opcode */
+    CARD8       ReqType;        /* always X_DeleteDeviceProperty */
+    CARD16      length B16;
+    Atom        property B32;
+    CARD8       deviceid;
+    CARD8       pad0;
+    CARD16      pad1 B16;
+} xDeleteDevicePropertyReq;
+
+/*********************************************************
+ *
+ * GetDeviceProperty.
+ *
+ */
+
+typedef struct {
+    CARD8       reqType;        /* input extension major opcode */
+    CARD8       ReqType;        /* always X_ChangeDeviceProperty */
+    CARD16      length B16;
+    Atom        property B32;
+    Atom        type B32;
+    CARD32      longOffset B32;
+    CARD32      longLength B32;
+    CARD8       deviceid;
+    BOOL        delete;
+    BOOL        pending;
+    CARD8       pad;
+} xGetDevicePropertyReq;
+
+typedef struct {
+    CARD8       repType;        /* X_Reply                        */
+    CARD8       RepType;        /* always X_GetDeviceProperty   */
+    CARD16      sequenceNumber B16;
+    CARD32      length B32;
+    Atom        propertyType B32;
+    CARD32      bytesAfter B32;
+    CARD32      nItems B32;
+    CARD8       format;
+    CARD8       deviceid;
+    CARD16      pad1 B16;
+    CARD32      pad2 B32;
+    CARD32      pad3 B32;
+} xGetDevicePropertyReply;
+
 /**********************************************************
  *
  * Input extension events.
@@ -1610,6 +1770,30 @@ typedef struct
     CARD32	pad06 B32;
     }  devicePresenceNotify;
 
+/*********************************************************
+ * DevicePropertyNotifyEvent
+ *
+ * Sent whenever a device's property changes.
+ *
+ */
+
+typedef struct
+    {
+    BYTE        type;                /* always GenericEvent */
+    BYTE        state;               /* NewValue or Deleted */
+    CARD16      sequenceNumber B16;
+    CARD32      time B32;
+    Atom        atom B32;            /* affected property */
+    CARD8       deviceid;            /* id of device */
+    CARD8       pad0;
+    CARD16      pad1 B16;
+    CARD32      pad2 B32;
+    CARD32      pad3 B32;
+    CARD32      pad4 B32;
+    CARD32      pad5 B32;
+    } devicePropertyNotify;
+
+
 #undef Window
 #undef Time
 #undef KeyCode


Reply to: