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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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.hutte...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org