1 /* $XConsortium: XIproto.h /main/26 1996/03/20 15:30:59 mor $ */
3 /************************************************************
5 Copyright (c) 1989 X Consortium
7 Permission is hereby granted, free of charge, to any person obtaining a copy
8 of this software and associated documentation files (the "Software"), to deal
9 in the Software without restriction, including without limitation the rights
10 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 copies of the Software, and to permit persons to whom the Software is
12 furnished to do so, subject to the following conditions:
14 The above copyright notice and this permission notice shall be included in
15 all copies or substantial portions of the Software.
17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 Except as contained in this notice, the name of the X Consortium shall not be
25 used in advertising or otherwise to promote the sale, use or other dealings
26 in this Software without prior written authorization from the X Consortium.
28 Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, California.
32 Permission to use, copy, modify, and distribute this software and its
33 documentation for any purpose and without fee is hereby granted,
34 provided that the above copyright notice appear in all copies and that
35 both that copyright notice and this permission notice appear in
36 supporting documentation, and that the name of Hewlett-Packard not be
37 used in advertising or publicity pertaining to distribution of the
38 software without specific, written prior permission.
40 HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
41 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
42 HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
43 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
44 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
45 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
48 ********************************************************/
53 #include <X11/Xproto.h>
56 /* make sure types have right sizes for protocol structures. */
61 /*********************************************************
63 * number of events, errors, and extension name.
67 #define MORE_EVENTS 0x80
68 #define DEVICE_BITS 0x7F
70 #define InputClassBits 0x3F /* bits in mode field for input classes */
71 #define ModeBitsShift 6 /* amount to shift the remaining bits */
73 #define numInputClasses 7
80 typedef struct _XExtEventInfo
87 typedef unsigned char *Pointer;
95 /*********************************************************
97 * Event constants used by library.
101 #define XI_DeviceValuator 0
102 #define XI_DeviceKeyPress 1
103 #define XI_DeviceKeyRelease 2
104 #define XI_DeviceButtonPress 3
105 #define XI_DeviceButtonRelease 4
106 #define XI_DeviceMotionNotify 5
107 #define XI_DeviceFocusIn 6
108 #define XI_DeviceFocusOut 7
109 #define XI_ProximityIn 8
110 #define XI_ProximityOut 9
111 #define XI_DeviceStateNotify 10
112 #define XI_DeviceMappingNotify 11
113 #define XI_ChangeDeviceNotify 12
114 #define XI_DeviceKeystateNotify 13
115 #define XI_DeviceButtonstateNotify 14
117 /*********************************************************
119 * Protocol request constants
123 #define X_GetExtensionVersion 1
124 #define X_ListInputDevices 2
125 #define X_OpenDevice 3
126 #define X_CloseDevice 4
127 #define X_SetDeviceMode 5
128 #define X_SelectExtensionEvent 6
129 #define X_GetSelectedExtensionEvents 7
130 #define X_ChangeDeviceDontPropagateList 8
131 #define X_GetDeviceDontPropagateList 9
132 #define X_GetDeviceMotionEvents 10
133 #define X_ChangeKeyboardDevice 11
134 #define X_ChangePointerDevice 12
135 #define X_GrabDevice 13
136 #define X_UngrabDevice 14
137 #define X_GrabDeviceKey 15
138 #define X_UngrabDeviceKey 16
139 #define X_GrabDeviceButton 17
140 #define X_UngrabDeviceButton 18
141 #define X_AllowDeviceEvents 19
142 #define X_GetDeviceFocus 20
143 #define X_SetDeviceFocus 21
144 #define X_GetFeedbackControl 22
145 #define X_ChangeFeedbackControl 23
146 #define X_GetDeviceKeyMapping 24
147 #define X_ChangeDeviceKeyMapping 25
148 #define X_GetDeviceModifierMapping 26
149 #define X_SetDeviceModifierMapping 27
150 #define X_GetDeviceButtonMapping 28
151 #define X_SetDeviceButtonMapping 29
152 #define X_QueryDeviceState 30
153 #define X_SendExtensionEvent 31
154 #define X_DeviceBell 32
155 #define X_SetDeviceValuators 33
156 #define X_GetDeviceControl 34
157 #define X_ChangeDeviceControl 35
159 /*********************************************************
161 * Protocol request and reply structures.
163 * GetExtensionVersion.
168 CARD8 reqType; /* input extension major code */
169 CARD8 ReqType; /* always X_GetExtensionVersion */
173 } xGetExtensionVersionReq;
176 CARD8 repType; /* X_Reply */
177 CARD8 RepType; /* always X_GetExtensionVersion */
178 CARD16 sequenceNumber B16;
180 CARD16 major_version B16;
181 CARD16 minor_version B16;
183 CARD8 pad1, pad2, pad3;
188 } xGetExtensionVersionReply;
190 /*********************************************************
197 CARD8 reqType; /* input extension major code */
198 CARD8 ReqType; /* always X_ListInputDevices */
200 } xListInputDevicesReq;
203 CARD8 repType; /* X_Reply */
204 CARD8 RepType; /* always X_ListInputDevices */
205 CARD16 sequenceNumber B16;
208 CARD8 pad1, pad2, pad3;
214 } xListInputDevicesReply;
216 typedef struct _xDeviceInfo *xDeviceInfoPtr;
218 typedef struct _xAnyClassinfo *xAnyClassPtr;
220 typedef struct _xAnyClassinfo {
225 typedef struct _xDeviceInfo {
233 typedef struct _xKeyInfo *xKeyInfoPtr;
235 typedef struct _xKeyInfo {
244 typedef struct _xButtonInfo *xButtonInfoPtr;
246 typedef struct _xButtonInfo {
249 CARD16 num_buttons B16;
252 typedef struct _xValuatorInfo *xValuatorInfoPtr;
254 typedef struct _xValuatorInfo {
259 CARD32 motion_buffer_size B32;
262 typedef struct _xAxisInfo *xAxisInfoPtr;
264 typedef struct _xAxisInfo {
265 CARD32 resolution B32;
266 CARD32 min_value B32;
267 CARD32 max_value B32;
270 /*********************************************************
277 CARD8 reqType; /* input extension major code */
278 CARD8 ReqType; /* always X_OpenDevice */
281 BYTE pad1, pad2, pad3;
285 CARD8 repType; /* X_Reply */
286 CARD8 RepType; /* always X_OpenDevice */
287 CARD16 sequenceNumber B16;
290 BYTE pad1, pad2, pad3;
300 CARD8 event_type_base;
303 /*********************************************************
310 CARD8 reqType; /* input extension major code */
311 CARD8 ReqType; /* always X_CloseDevice */
314 BYTE pad1, pad2, pad3;
317 /*********************************************************
324 CARD8 reqType; /* input extension major code */
325 CARD8 ReqType; /* always X_SetDeviceMode */
333 CARD8 repType; /* X_Reply */
334 CARD8 RepType; /* always X_SetDeviceMode */
335 CARD16 sequenceNumber B16;
338 BYTE pad1, pad2, pad3;
344 } xSetDeviceModeReply;
346 /*********************************************************
348 * SelectExtensionEvent.
353 CARD8 reqType; /* input extension major code */
354 CARD8 ReqType; /* always X_SelectExtensionEvent */
359 } xSelectExtensionEventReq;
361 /*********************************************************
363 * GetSelectedExtensionEvent.
368 CARD8 reqType; /* input extension major code */
369 CARD8 ReqType; /* X_GetSelectedExtensionEvents */
372 } xGetSelectedExtensionEventsReq;
375 CARD8 repType; /* X_Reply */
376 CARD8 RepType; /* GetSelectedExtensionEvents */
377 CARD16 sequenceNumber B16;
379 CARD16 this_client_count B16;
380 CARD16 all_clients_count B16;
386 } xGetSelectedExtensionEventsReply;
388 /*********************************************************
390 * ChangeDeviceDontPropagateList.
395 CARD8 reqType; /* input extension major code */
396 CARD8 ReqType; /* X_ChangeDeviceDontPropagateList */
402 } xChangeDeviceDontPropagateListReq;
404 /*********************************************************
406 * GetDeviceDontPropagateList.
411 CARD8 reqType; /* input extension major code */
412 CARD8 ReqType; /* X_GetDeviceDontPropagateList */
415 } xGetDeviceDontPropagateListReq;
418 CARD8 repType; /* X_Reply */
419 CARD8 RepType; /* GetDeviceDontPropagateList */
420 CARD16 sequenceNumber B16;
429 } xGetDeviceDontPropagateListReply;
431 /*********************************************************
433 * GetDeviceMotionEvents.
438 CARD8 reqType; /* input extension major code */
439 CARD8 ReqType; /* always X_GetDeviceMotionEvents*/
444 BYTE pad1, pad2, pad3;
445 } xGetDeviceMotionEventsReq;
448 CARD8 repType; /* X_Reply */
449 CARD8 RepType; /* always X_GetDeviceMotionEvents */
450 CARD16 sequenceNumber B16;
460 } xGetDeviceMotionEventsReply;
462 /*********************************************************
464 * ChangeKeyboardDevice.
469 CARD8 reqType; /* input extension major code */
470 CARD8 ReqType; /* X_ChangeKeyboardDevice */
473 BYTE pad1, pad2, pad3;
474 } xChangeKeyboardDeviceReq;
477 CARD8 repType; /* X_Reply */
478 CARD8 RepType; /* always X_ChangeKeyboardDevice*/
479 CARD16 sequenceNumber B16;
480 CARD32 length B32; /* 0 */
482 BYTE pad1, pad2, pad3;
488 } xChangeKeyboardDeviceReply;
490 /*********************************************************
492 * ChangePointerDevice.
497 CARD8 reqType; /* input extension major code */
498 CARD8 ReqType; /* X_ChangePointerDevice */
504 } xChangePointerDeviceReq;
507 CARD8 repType; /* X_Reply */
508 CARD8 RepType; /* always X_ChangePointerDevice */
509 CARD16 sequenceNumber B16;
510 CARD32 length B32; /* 0 */
512 BYTE pad1, pad2, pad3;
518 } xChangePointerDeviceReply;
520 /*********************************************************
527 CARD8 reqType; /* input extension major code */
528 CARD8 ReqType; /* always X_GrabDevice */
530 Window grabWindow B32;
532 CARD16 event_count B16;
533 CARD8 this_device_mode;
534 CARD8 other_devices_mode;
541 CARD8 repType; /* X_Reply */
542 CARD8 RepType; /* always X_GrabDevice */
543 CARD16 sequenceNumber B16;
544 CARD32 length B32; /* 0 */
546 BYTE pad1, pad2, pad3;
554 /*********************************************************
561 CARD8 reqType; /* input extension major code */
562 CARD8 ReqType; /* always X_UnGrabDevice */
566 BYTE pad1, pad2, pad3;
569 /*********************************************************
576 CARD8 reqType; /* input extension major code */
577 CARD8 ReqType; /* always X_GrabDeviceKey */
579 Window grabWindow B32;
580 CARD16 event_count B16;
581 CARD16 modifiers B16;
582 CARD8 modifier_device;
583 CARD8 grabbed_device;
585 BYTE this_device_mode;
586 BYTE other_devices_mode;
591 /*********************************************************
598 CARD8 reqType; /* input extension major code */
599 CARD8 ReqType; /* always X_UngrabDeviceKey */
601 Window grabWindow B32;
602 CARD16 modifiers B16;
603 CARD8 modifier_device;
605 CARD8 grabbed_device;
606 BYTE pad1, pad2, pad3;
607 } xUngrabDeviceKeyReq;
609 /*********************************************************
616 CARD8 reqType; /* input extension major code */
617 CARD8 ReqType; /* always X_GrabDeviceButton */
619 Window grabWindow B32;
620 CARD8 grabbed_device;
621 CARD8 modifier_device;
622 CARD16 event_count B16;
623 CARD16 modifiers B16;
624 BYTE this_device_mode;
625 BYTE other_devices_mode;
629 } xGrabDeviceButtonReq;
631 /*********************************************************
633 * UngrabDeviceButton.
638 CARD8 reqType; /* input extension major code */
639 CARD8 ReqType; /* always X_UngrabDeviceButton */
641 Window grabWindow B32;
642 CARD16 modifiers B16;
643 CARD8 modifier_device;
645 CARD8 grabbed_device;
646 BYTE pad1, pad2, pad3;
647 } xUngrabDeviceButtonReq;
649 /*********************************************************
656 CARD8 reqType; /* input extension major code */
657 CARD8 ReqType; /* always X_AllowDeviceEvents */
663 } xAllowDeviceEventsReq;
665 /*********************************************************
672 CARD8 reqType; /* input extension major code */
673 CARD8 ReqType; /* always X_GetDeviceFocus */
676 BYTE pad1, pad2, pad3;
677 } xGetDeviceFocusReq;
680 CARD8 repType; /* X_Reply */
681 CARD8 RepType; /* always X_GetDeviceFocus */
682 CARD16 sequenceNumber B16;
687 BYTE pad1, pad2, pad3;
691 } xGetDeviceFocusReply;
693 /*********************************************************
700 CARD8 reqType; /* input extension major code */
701 CARD8 ReqType; /* always X_SetDeviceFocus */
708 } xSetDeviceFocusReq;
710 /*********************************************************
712 * GetFeedbackControl.
717 CARD8 reqType; /* input extension major code */
718 CARD8 ReqType; /* X_GetFeedbackControl */
721 BYTE pad1, pad2, pad3;
722 } xGetFeedbackControlReq;
725 CARD8 repType; /* X_Reply */
726 CARD8 RepType; /* always X_GetFeedbackControl */
727 CARD16 sequenceNumber B16;
729 CARD16 num_feedbacks B16;
736 } xGetFeedbackControlReply;
739 CARD8 class; /* feedback class */
740 CARD8 id; /* feedback id */
741 CARD16 length B16; /* feedback length */
751 CARD32 led_values B32;
752 BOOL global_auto_repeat;
756 BYTE auto_repeats[32];
765 CARD16 accelDenom B16;
766 CARD16 threshold B16;
770 CARD8 class; /* feedback class id */
772 CARD16 length B16; /* feedback length */
773 CARD32 resolution B32;
776 } xIntegerFeedbackState;
779 CARD8 class; /* feedback class id */
781 CARD16 length B16; /* feedback length */
782 CARD16 max_symbols B16;
783 CARD16 num_syms_supported B16;
784 } xStringFeedbackState;
787 CARD8 class; /* feedback class id */
789 CARD16 length B16; /* feedback length */
791 BYTE pad1, pad2, pad3;
794 } xBellFeedbackState;
797 CARD8 class; /* feedback class id */
799 CARD16 length B16; /* feedback length */
801 CARD32 led_values B32;
804 /*********************************************************
806 * ChangeFeedbackControl.
811 CARD8 reqType; /* input extension major code */
812 CARD8 ReqType; /* X_ChangeFeedbackControl */
818 } xChangeFeedbackControlReq;
821 CARD8 class; /* feedback class id */
822 CARD8 id; /* feedback id */
823 CARD16 length B16; /* feedback length */
827 CARD8 class; /* feedback class id */
828 CARD8 id; /* feedback length */
829 CARD16 length B16; /* feedback length */
831 CARD8 auto_repeat_mode;
837 CARD32 led_values B32;
841 CARD8 class; /* feedback class id */
842 CARD8 id; /* feedback id */
843 CARD16 length B16; /* feedback length */
851 CARD8 class; /* feedback class id */
852 CARD8 id; /* feedback id */
853 CARD16 length B16; /* feedback length */
854 INT32 int_to_display B32;
855 } xIntegerFeedbackCtl;
858 CARD8 class; /* feedback class id */
859 CARD8 id; /* feedback id */
860 CARD16 length B16; /* feedback length */
862 CARD16 num_keysyms B16;
863 } xStringFeedbackCtl;
866 CARD8 class; /* feedback class id */
867 CARD8 id; /* feedback id */
868 CARD16 length B16; /* feedback length */
870 BYTE pad1, pad2, pad3;
876 CARD8 class; /* feedback class id */
877 CARD8 id; /* feedback id */
878 CARD16 length B16; /* feedback length */
880 CARD32 led_values B32;
883 /*********************************************************
885 * GetDeviceKeyMapping.
890 CARD8 reqType; /* input extension major code */
891 CARD8 ReqType; /* always X_GetDeviceKeyMapping */
894 KeyCode firstKeyCode;
897 } xGetDeviceKeyMappingReq;
900 CARD8 repType; /* X_Reply */
901 CARD8 RepType; /* always X_GetDeviceKeyMapping */
902 CARD16 sequenceNumber B16;
904 CARD8 keySymsPerKeyCode;
912 } xGetDeviceKeyMappingReply;
914 /*********************************************************
916 * ChangeDeviceKeyMapping.
921 CARD8 reqType; /* input extension major code */
922 CARD8 ReqType; /* always X_ChangeDeviceKeyMapping */
925 KeyCode firstKeyCode;
926 CARD8 keySymsPerKeyCode;
928 } xChangeDeviceKeyMappingReq;
930 /*********************************************************
932 * GetDeviceModifierMapping.
937 CARD8 reqType; /* input extension major code */
938 CARD8 ReqType; /* always X_GetDeviceModifierMapping */
941 BYTE pad1, pad2, pad3;
942 } xGetDeviceModifierMappingReq;
945 CARD8 repType; /* X_Reply */
946 CARD8 RepType; /* always X_GetDeviceModifierMapping */
947 CARD16 sequenceNumber B16;
949 CARD8 numKeyPerModifier;
957 } xGetDeviceModifierMappingReply;
959 /*********************************************************
961 * SetDeviceModifierMapping.
966 CARD8 reqType; /* input extension major code */
967 CARD8 ReqType; /* always X_SetDeviceModifierMapping */
970 CARD8 numKeyPerModifier;
972 } xSetDeviceModifierMappingReq;
975 CARD8 repType; /* X_Reply */
976 CARD8 RepType; /* always X_SetDeviceModifierMapping */
977 CARD16 sequenceNumber B16;
987 } xSetDeviceModifierMappingReply;
989 /*********************************************************
991 * GetDeviceButtonMapping.
996 CARD8 reqType; /* input extension major code */
997 CARD8 ReqType; /* X_GetDeviceButtonMapping */
1000 BYTE pad1, pad2, pad3;
1001 } xGetDeviceButtonMappingReq;
1004 CARD8 repType; /* X_Reply */
1005 CARD8 RepType; /* always X_GetDeviceButtonMapping */
1006 CARD16 sequenceNumber B16;
1009 BYTE pad1, pad2, pad3;
1015 } xGetDeviceButtonMappingReply;
1017 /*********************************************************
1019 * SetDeviceButtonMapping.
1024 CARD8 reqType; /* input extension major code */
1025 CARD8 ReqType; /* X_SetDeviceButtonMapping */
1030 } xSetDeviceButtonMappingReq;
1033 CARD8 repType; /* X_Reply */
1034 CARD8 RepType; /* always X_SetDeviceButtonMapping */
1035 CARD16 sequenceNumber B16;
1045 } xSetDeviceButtonMappingReply;
1047 /*********************************************************
1055 CARD8 ReqType; /* always X_QueryDeviceState */
1058 BYTE pad1, pad2, pad3;
1059 } xQueryDeviceStateReq;
1062 CARD8 repType; /* X_Reply */
1063 CARD8 RepType; /* always X_QueryDeviceState */
1064 CARD16 sequenceNumber B16;
1074 } xQueryDeviceStateReply;
1095 CARD8 num_valuators;
1099 /*********************************************************
1101 * SendExtensionEvent.
1102 * THIS REQUEST MUST BE KEPT A MULTIPLE OF 8 BYTES IN LENGTH!
1103 * MORE EVENTS MAY FOLLOW AND THEY MUST BE QUAD-ALIGNED!
1109 CARD8 ReqType; /* always X_SendExtensionEvent */
1111 Window destination B32;
1116 BYTE pad1,pad2,pad3;
1117 } xSendExtensionEventReq;
1119 /*********************************************************
1127 CARD8 ReqType; /* always X_DeviceBell */
1131 CARD8 feedbackclass;
1135 /*********************************************************
1137 * SetDeviceValuators.
1142 CARD8 reqType; /* input extension major code */
1143 CARD8 ReqType; /* always X_SetDeviceValuators */
1146 CARD8 first_valuator;
1147 CARD8 num_valuators;
1149 } xSetDeviceValuatorsReq;
1152 CARD8 repType; /* X_Reply */
1153 CARD8 RepType; /* always X_SetDeviceValuators */
1154 CARD16 sequenceNumber B16;
1157 BYTE pad1, pad2, pad3;
1163 } xSetDeviceValuatorsReply;
1165 /*********************************************************
1172 CARD8 reqType; /* input extension major code */
1173 CARD8 ReqType; /* always X_GetDeviceControl */
1178 } xGetDeviceControlReq;
1181 CARD8 repType; /* X_Reply */
1182 CARD8 RepType; /* always X_GetDeviceControl */
1183 CARD16 sequenceNumber B16;
1186 BYTE pad1, pad2, pad3;
1192 } xGetDeviceControlReply;
1195 CARD16 control B16; /* control type */
1196 CARD16 length B16; /* control length */
1200 CARD16 control B16; /* control type */
1201 CARD16 length B16; /* control length */
1202 CARD32 num_valuators B32; /* number of valuators */
1203 } xDeviceResolutionState;
1205 /*********************************************************
1207 * ChangeDeviceControl.
1212 CARD8 reqType; /* input extension major code */
1213 CARD8 ReqType; /* always X_ChangeDeviceControl */
1218 } xChangeDeviceControlReq;
1221 CARD8 repType; /* X_Reply */
1222 CARD8 RepType; /* always X_ChangeDeviceControl */
1223 CARD16 sequenceNumber B16;
1226 BYTE pad1, pad2, pad3;
1232 } xChangeDeviceControlReply;
1235 CARD16 control B16; /* control type */
1236 CARD16 length B16; /* control length */
1240 CARD16 control B16; /* control type */
1241 CARD16 length B16; /* control length */
1242 CARD8 first_valuator; /* first valuator to change */
1243 CARD8 num_valuators; /* number of valuators to change*/
1245 } xDeviceResolutionCtl;
1247 /**********************************************************
1249 * Input extension events.
1259 CARD16 sequenceNumber B16;
1260 KeyButMask device_state B16;
1261 CARD8 num_valuators;
1262 CARD8 first_valuator;
1263 INT32 valuator0 B32;
1264 INT32 valuator1 B32;
1265 INT32 valuator2 B32;
1266 INT32 valuator3 B32;
1267 INT32 valuator4 B32;
1268 INT32 valuator5 B32;
1271 /**********************************************************
1273 * DeviceKeyButtonPointer.
1275 * Used for: DeviceKeyPress, DeviceKeyRelease,
1276 * DeviceButtonPress, DeviceButtonRelease,
1277 * ProximityIn, ProximityOut
1278 * DeviceMotionNotify,
1286 CARD16 sequenceNumber B16;
1295 KeyButMask state B16;
1298 } deviceKeyButtonPointer;
1300 /**********************************************************
1310 CARD16 sequenceNumber B16;
1322 /**********************************************************
1324 * DeviceStateNotify.
1326 * Note that the two high-order bits in the classes_reported
1327 * field are the proximity state (InProximity or OutOfProximity),
1328 * and the device mode (Absolute or Relative), respectively.
1336 CARD16 sequenceNumber B16;
1340 CARD8 num_valuators;
1341 CARD8 classes_reported;
1344 INT32 valuator0 B32;
1345 INT32 valuator1 B32;
1346 INT32 valuator2 B32;
1347 } deviceStateNotify;
1349 /**********************************************************
1351 * DeviceKeyStateNotify.
1359 CARD16 sequenceNumber B16;
1361 } deviceKeyStateNotify;
1363 /**********************************************************
1365 * DeviceButtonStateNotify.
1373 CARD16 sequenceNumber B16;
1375 } deviceButtonStateNotify;
1377 /**********************************************************
1379 * DeviceMappingNotify.
1380 * Fields must be kept in sync with core mappingnotify event.
1388 CARD16 sequenceNumber B16;
1390 KeyCode firstKeyCode;
1399 } deviceMappingNotify;
1401 /**********************************************************
1403 * ChangeDeviceNotify.
1411 CARD16 sequenceNumber B16;
1414 BYTE pad1, pad2, pad3;
1420 } changeDeviceNotify;