1 /*
2  * This file generated automatically from xinput.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 /**
7  * @defgroup XCB_Input_API XCB Input API
8  * @brief Input XCB Protocol Implementation.
9  * @{
10  **/
11 
12 #ifndef __XINPUT_H
13 #define __XINPUT_H
14 
15 #include <xcb/xcb.h>
16 #include <xcb/xfixes.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #define XCB_INPUT_MAJOR_VERSION 2
23 #define XCB_INPUT_MINOR_VERSION 3
24 
25 extern xcb_extension_t xcb_input_id;
26 
27 typedef uint32_t xcb_input_event_class_t;
28 
29 /**
30  * @brief xcb_input_event_class_iterator_t
31  **/
32 typedef struct xcb_input_event_class_iterator_t {
33     xcb_input_event_class_t *data;
34     int                      rem;
35     int                      index;
36 } xcb_input_event_class_iterator_t;
37 
38 typedef uint8_t xcb_input_key_code_t;
39 
40 /**
41  * @brief xcb_input_key_code_iterator_t
42  **/
43 typedef struct xcb_input_key_code_iterator_t {
44     xcb_input_key_code_t *data;
45     int                   rem;
46     int                   index;
47 } xcb_input_key_code_iterator_t;
48 
49 typedef uint16_t xcb_input_device_id_t;
50 
51 /**
52  * @brief xcb_input_device_id_iterator_t
53  **/
54 typedef struct xcb_input_device_id_iterator_t {
55     xcb_input_device_id_t *data;
56     int                    rem;
57     int                    index;
58 } xcb_input_device_id_iterator_t;
59 
60 typedef int32_t xcb_input_fp1616_t;
61 
62 /**
63  * @brief xcb_input_fp1616_iterator_t
64  **/
65 typedef struct xcb_input_fp1616_iterator_t {
66     xcb_input_fp1616_t *data;
67     int                 rem;
68     int                 index;
69 } xcb_input_fp1616_iterator_t;
70 
71 /**
72  * @brief xcb_input_fp3232_t
73  **/
74 typedef struct xcb_input_fp3232_t {
75     int32_t  integral;
76     uint32_t frac;
77 } xcb_input_fp3232_t;
78 
79 /**
80  * @brief xcb_input_fp3232_iterator_t
81  **/
82 typedef struct xcb_input_fp3232_iterator_t {
83     xcb_input_fp3232_t *data;
84     int                 rem;
85     int                 index;
86 } xcb_input_fp3232_iterator_t;
87 
88 /**
89  * @brief xcb_input_get_extension_version_cookie_t
90  **/
91 typedef struct xcb_input_get_extension_version_cookie_t {
92     unsigned int sequence;
93 } xcb_input_get_extension_version_cookie_t;
94 
95 /** Opcode for xcb_input_get_extension_version. */
96 #define XCB_INPUT_GET_EXTENSION_VERSION 1
97 
98 /**
99  * @brief xcb_input_get_extension_version_request_t
100  **/
101 typedef struct xcb_input_get_extension_version_request_t {
102     uint8_t  major_opcode;
103     uint8_t  minor_opcode;
104     uint16_t length;
105     uint16_t name_len;
106     uint8_t  pad0[2];
107 } xcb_input_get_extension_version_request_t;
108 
109 /**
110  * @brief xcb_input_get_extension_version_reply_t
111  **/
112 typedef struct xcb_input_get_extension_version_reply_t {
113     uint8_t  response_type;
114     uint8_t  xi_reply_type;
115     uint16_t sequence;
116     uint32_t length;
117     uint16_t server_major;
118     uint16_t server_minor;
119     uint8_t  present;
120     uint8_t  pad0[19];
121 } xcb_input_get_extension_version_reply_t;
122 
123 typedef enum xcb_input_device_use_t {
124     XCB_INPUT_DEVICE_USE_IS_X_POINTER = 0,
125     XCB_INPUT_DEVICE_USE_IS_X_KEYBOARD = 1,
126     XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_DEVICE = 2,
127     XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_KEYBOARD = 3,
128     XCB_INPUT_DEVICE_USE_IS_X_EXTENSION_POINTER = 4
129 } xcb_input_device_use_t;
130 
131 typedef enum xcb_input_input_class_t {
132     XCB_INPUT_INPUT_CLASS_KEY = 0,
133     XCB_INPUT_INPUT_CLASS_BUTTON = 1,
134     XCB_INPUT_INPUT_CLASS_VALUATOR = 2,
135     XCB_INPUT_INPUT_CLASS_FEEDBACK = 3,
136     XCB_INPUT_INPUT_CLASS_PROXIMITY = 4,
137     XCB_INPUT_INPUT_CLASS_FOCUS = 5,
138     XCB_INPUT_INPUT_CLASS_OTHER = 6
139 } xcb_input_input_class_t;
140 
141 typedef enum xcb_input_valuator_mode_t {
142     XCB_INPUT_VALUATOR_MODE_RELATIVE = 0,
143     XCB_INPUT_VALUATOR_MODE_ABSOLUTE = 1
144 } xcb_input_valuator_mode_t;
145 
146 /**
147  * @brief xcb_input_device_info_t
148  **/
149 typedef struct xcb_input_device_info_t {
150     xcb_atom_t device_type;
151     uint8_t    device_id;
152     uint8_t    num_class_info;
153     uint8_t    device_use;
154     uint8_t    pad0;
155 } xcb_input_device_info_t;
156 
157 /**
158  * @brief xcb_input_device_info_iterator_t
159  **/
160 typedef struct xcb_input_device_info_iterator_t {
161     xcb_input_device_info_t *data;
162     int                      rem;
163     int                      index;
164 } xcb_input_device_info_iterator_t;
165 
166 /**
167  * @brief xcb_input_key_info_t
168  **/
169 typedef struct xcb_input_key_info_t {
170     uint8_t              class_id;
171     uint8_t              len;
172     xcb_input_key_code_t min_keycode;
173     xcb_input_key_code_t max_keycode;
174     uint16_t             num_keys;
175     uint8_t              pad0[2];
176 } xcb_input_key_info_t;
177 
178 /**
179  * @brief xcb_input_key_info_iterator_t
180  **/
181 typedef struct xcb_input_key_info_iterator_t {
182     xcb_input_key_info_t *data;
183     int                   rem;
184     int                   index;
185 } xcb_input_key_info_iterator_t;
186 
187 /**
188  * @brief xcb_input_button_info_t
189  **/
190 typedef struct xcb_input_button_info_t {
191     uint8_t  class_id;
192     uint8_t  len;
193     uint16_t num_buttons;
194 } xcb_input_button_info_t;
195 
196 /**
197  * @brief xcb_input_button_info_iterator_t
198  **/
199 typedef struct xcb_input_button_info_iterator_t {
200     xcb_input_button_info_t *data;
201     int                      rem;
202     int                      index;
203 } xcb_input_button_info_iterator_t;
204 
205 /**
206  * @brief xcb_input_axis_info_t
207  **/
208 typedef struct xcb_input_axis_info_t {
209     uint32_t resolution;
210     int32_t  minimum;
211     int32_t  maximum;
212 } xcb_input_axis_info_t;
213 
214 /**
215  * @brief xcb_input_axis_info_iterator_t
216  **/
217 typedef struct xcb_input_axis_info_iterator_t {
218     xcb_input_axis_info_t *data;
219     int                    rem;
220     int                    index;
221 } xcb_input_axis_info_iterator_t;
222 
223 /**
224  * @brief xcb_input_valuator_info_t
225  **/
226 typedef struct xcb_input_valuator_info_t {
227     uint8_t  class_id;
228     uint8_t  len;
229     uint8_t  axes_len;
230     uint8_t  mode;
231     uint32_t motion_size;
232 } xcb_input_valuator_info_t;
233 
234 /**
235  * @brief xcb_input_valuator_info_iterator_t
236  **/
237 typedef struct xcb_input_valuator_info_iterator_t {
238     xcb_input_valuator_info_t *data;
239     int                        rem;
240     int                        index;
241 } xcb_input_valuator_info_iterator_t;
242 
243 /**
244  * @brief xcb_input_input_info_info_t
245  **/
246 typedef struct xcb_input_input_info_info_t {
247     struct {
248         xcb_input_key_code_t   min_keycode;
249         xcb_input_key_code_t   max_keycode;
250         uint16_t               num_keys;
251         uint8_t                pad0[2];
252     } key;
253     struct {
254         uint16_t               num_buttons;
255     } button;
256     struct {
257         uint8_t                axes_len;
258         uint8_t                mode;
259         uint32_t               motion_size;
260         xcb_input_axis_info_t *axes;
261     } valuator;
262 } xcb_input_input_info_info_t;
263 
264 /**
265  * @brief xcb_input_input_info_t
266  **/
267 typedef struct xcb_input_input_info_t {
268     uint8_t class_id;
269     uint8_t len;
270 } xcb_input_input_info_t;
271 
272 void *
273 xcb_input_input_info_info (const xcb_input_input_info_t *R);
274 
275 /**
276  * @brief xcb_input_input_info_iterator_t
277  **/
278 typedef struct xcb_input_input_info_iterator_t {
279     xcb_input_input_info_t *data;
280     int                     rem;
281     int                     index;
282 } xcb_input_input_info_iterator_t;
283 
284 /**
285  * @brief xcb_input_device_name_t
286  **/
287 typedef struct xcb_input_device_name_t {
288     uint8_t len;
289 } xcb_input_device_name_t;
290 
291 /**
292  * @brief xcb_input_device_name_iterator_t
293  **/
294 typedef struct xcb_input_device_name_iterator_t {
295     xcb_input_device_name_t *data;
296     int                      rem;
297     int                      index;
298 } xcb_input_device_name_iterator_t;
299 
300 /**
301  * @brief xcb_input_list_input_devices_cookie_t
302  **/
303 typedef struct xcb_input_list_input_devices_cookie_t {
304     unsigned int sequence;
305 } xcb_input_list_input_devices_cookie_t;
306 
307 /** Opcode for xcb_input_list_input_devices. */
308 #define XCB_INPUT_LIST_INPUT_DEVICES 2
309 
310 /**
311  * @brief xcb_input_list_input_devices_request_t
312  **/
313 typedef struct xcb_input_list_input_devices_request_t {
314     uint8_t  major_opcode;
315     uint8_t  minor_opcode;
316     uint16_t length;
317 } xcb_input_list_input_devices_request_t;
318 
319 /**
320  * @brief xcb_input_list_input_devices_reply_t
321  **/
322 typedef struct xcb_input_list_input_devices_reply_t {
323     uint8_t  response_type;
324     uint8_t  xi_reply_type;
325     uint16_t sequence;
326     uint32_t length;
327     uint8_t  devices_len;
328     uint8_t  pad0[23];
329 } xcb_input_list_input_devices_reply_t;
330 
331 typedef uint8_t xcb_input_event_type_base_t;
332 
333 /**
334  * @brief xcb_input_event_type_base_iterator_t
335  **/
336 typedef struct xcb_input_event_type_base_iterator_t {
337     xcb_input_event_type_base_t *data;
338     int                          rem;
339     int                          index;
340 } xcb_input_event_type_base_iterator_t;
341 
342 /**
343  * @brief xcb_input_input_class_info_t
344  **/
345 typedef struct xcb_input_input_class_info_t {
346     uint8_t                     class_id;
347     xcb_input_event_type_base_t event_type_base;
348 } xcb_input_input_class_info_t;
349 
350 /**
351  * @brief xcb_input_input_class_info_iterator_t
352  **/
353 typedef struct xcb_input_input_class_info_iterator_t {
354     xcb_input_input_class_info_t *data;
355     int                           rem;
356     int                           index;
357 } xcb_input_input_class_info_iterator_t;
358 
359 /**
360  * @brief xcb_input_open_device_cookie_t
361  **/
362 typedef struct xcb_input_open_device_cookie_t {
363     unsigned int sequence;
364 } xcb_input_open_device_cookie_t;
365 
366 /** Opcode for xcb_input_open_device. */
367 #define XCB_INPUT_OPEN_DEVICE 3
368 
369 /**
370  * @brief xcb_input_open_device_request_t
371  **/
372 typedef struct xcb_input_open_device_request_t {
373     uint8_t  major_opcode;
374     uint8_t  minor_opcode;
375     uint16_t length;
376     uint8_t  device_id;
377     uint8_t  pad0[3];
378 } xcb_input_open_device_request_t;
379 
380 /**
381  * @brief xcb_input_open_device_reply_t
382  **/
383 typedef struct xcb_input_open_device_reply_t {
384     uint8_t  response_type;
385     uint8_t  xi_reply_type;
386     uint16_t sequence;
387     uint32_t length;
388     uint8_t  num_classes;
389     uint8_t  pad0[23];
390 } xcb_input_open_device_reply_t;
391 
392 /** Opcode for xcb_input_close_device. */
393 #define XCB_INPUT_CLOSE_DEVICE 4
394 
395 /**
396  * @brief xcb_input_close_device_request_t
397  **/
398 typedef struct xcb_input_close_device_request_t {
399     uint8_t  major_opcode;
400     uint8_t  minor_opcode;
401     uint16_t length;
402     uint8_t  device_id;
403     uint8_t  pad0[3];
404 } xcb_input_close_device_request_t;
405 
406 /**
407  * @brief xcb_input_set_device_mode_cookie_t
408  **/
409 typedef struct xcb_input_set_device_mode_cookie_t {
410     unsigned int sequence;
411 } xcb_input_set_device_mode_cookie_t;
412 
413 /** Opcode for xcb_input_set_device_mode. */
414 #define XCB_INPUT_SET_DEVICE_MODE 5
415 
416 /**
417  * @brief xcb_input_set_device_mode_request_t
418  **/
419 typedef struct xcb_input_set_device_mode_request_t {
420     uint8_t  major_opcode;
421     uint8_t  minor_opcode;
422     uint16_t length;
423     uint8_t  device_id;
424     uint8_t  mode;
425     uint8_t  pad0[2];
426 } xcb_input_set_device_mode_request_t;
427 
428 /**
429  * @brief xcb_input_set_device_mode_reply_t
430  **/
431 typedef struct xcb_input_set_device_mode_reply_t {
432     uint8_t  response_type;
433     uint8_t  xi_reply_type;
434     uint16_t sequence;
435     uint32_t length;
436     uint8_t  status;
437     uint8_t  pad0[23];
438 } xcb_input_set_device_mode_reply_t;
439 
440 /** Opcode for xcb_input_select_extension_event. */
441 #define XCB_INPUT_SELECT_EXTENSION_EVENT 6
442 
443 /**
444  * @brief xcb_input_select_extension_event_request_t
445  **/
446 typedef struct xcb_input_select_extension_event_request_t {
447     uint8_t      major_opcode;
448     uint8_t      minor_opcode;
449     uint16_t     length;
450     xcb_window_t window;
451     uint16_t     num_classes;
452     uint8_t      pad0[2];
453 } xcb_input_select_extension_event_request_t;
454 
455 /**
456  * @brief xcb_input_get_selected_extension_events_cookie_t
457  **/
458 typedef struct xcb_input_get_selected_extension_events_cookie_t {
459     unsigned int sequence;
460 } xcb_input_get_selected_extension_events_cookie_t;
461 
462 /** Opcode for xcb_input_get_selected_extension_events. */
463 #define XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS 7
464 
465 /**
466  * @brief xcb_input_get_selected_extension_events_request_t
467  **/
468 typedef struct xcb_input_get_selected_extension_events_request_t {
469     uint8_t      major_opcode;
470     uint8_t      minor_opcode;
471     uint16_t     length;
472     xcb_window_t window;
473 } xcb_input_get_selected_extension_events_request_t;
474 
475 /**
476  * @brief xcb_input_get_selected_extension_events_reply_t
477  **/
478 typedef struct xcb_input_get_selected_extension_events_reply_t {
479     uint8_t  response_type;
480     uint8_t  xi_reply_type;
481     uint16_t sequence;
482     uint32_t length;
483     uint16_t num_this_classes;
484     uint16_t num_all_classes;
485     uint8_t  pad0[20];
486 } xcb_input_get_selected_extension_events_reply_t;
487 
488 typedef enum xcb_input_propagate_mode_t {
489     XCB_INPUT_PROPAGATE_MODE_ADD_TO_LIST = 0,
490     XCB_INPUT_PROPAGATE_MODE_DELETE_FROM_LIST = 1
491 } xcb_input_propagate_mode_t;
492 
493 /** Opcode for xcb_input_change_device_dont_propagate_list. */
494 #define XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST 8
495 
496 /**
497  * @brief xcb_input_change_device_dont_propagate_list_request_t
498  **/
499 typedef struct xcb_input_change_device_dont_propagate_list_request_t {
500     uint8_t      major_opcode;
501     uint8_t      minor_opcode;
502     uint16_t     length;
503     xcb_window_t window;
504     uint16_t     num_classes;
505     uint8_t      mode;
506     uint8_t      pad0;
507 } xcb_input_change_device_dont_propagate_list_request_t;
508 
509 /**
510  * @brief xcb_input_get_device_dont_propagate_list_cookie_t
511  **/
512 typedef struct xcb_input_get_device_dont_propagate_list_cookie_t {
513     unsigned int sequence;
514 } xcb_input_get_device_dont_propagate_list_cookie_t;
515 
516 /** Opcode for xcb_input_get_device_dont_propagate_list. */
517 #define XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST 9
518 
519 /**
520  * @brief xcb_input_get_device_dont_propagate_list_request_t
521  **/
522 typedef struct xcb_input_get_device_dont_propagate_list_request_t {
523     uint8_t      major_opcode;
524     uint8_t      minor_opcode;
525     uint16_t     length;
526     xcb_window_t window;
527 } xcb_input_get_device_dont_propagate_list_request_t;
528 
529 /**
530  * @brief xcb_input_get_device_dont_propagate_list_reply_t
531  **/
532 typedef struct xcb_input_get_device_dont_propagate_list_reply_t {
533     uint8_t  response_type;
534     uint8_t  xi_reply_type;
535     uint16_t sequence;
536     uint32_t length;
537     uint16_t num_classes;
538     uint8_t  pad0[22];
539 } xcb_input_get_device_dont_propagate_list_reply_t;
540 
541 /**
542  * @brief xcb_input_device_time_coord_t
543  **/
544 typedef struct xcb_input_device_time_coord_t {
545     xcb_timestamp_t time;
546 } xcb_input_device_time_coord_t;
547 
548 /**
549  * @brief xcb_input_device_time_coord_iterator_t
550  **/
551 typedef struct xcb_input_device_time_coord_iterator_t {
552     xcb_input_device_time_coord_t *data;
553     int                            rem;
554     int                            index;
555     uint8_t                        num_axes; /**<  */
556 } xcb_input_device_time_coord_iterator_t;
557 
558 /**
559  * @brief xcb_input_get_device_motion_events_cookie_t
560  **/
561 typedef struct xcb_input_get_device_motion_events_cookie_t {
562     unsigned int sequence;
563 } xcb_input_get_device_motion_events_cookie_t;
564 
565 /** Opcode for xcb_input_get_device_motion_events. */
566 #define XCB_INPUT_GET_DEVICE_MOTION_EVENTS 10
567 
568 /**
569  * @brief xcb_input_get_device_motion_events_request_t
570  **/
571 typedef struct xcb_input_get_device_motion_events_request_t {
572     uint8_t         major_opcode;
573     uint8_t         minor_opcode;
574     uint16_t        length;
575     xcb_timestamp_t start;
576     xcb_timestamp_t stop;
577     uint8_t         device_id;
578     uint8_t         pad0[3];
579 } xcb_input_get_device_motion_events_request_t;
580 
581 /**
582  * @brief xcb_input_get_device_motion_events_reply_t
583  **/
584 typedef struct xcb_input_get_device_motion_events_reply_t {
585     uint8_t  response_type;
586     uint8_t  xi_reply_type;
587     uint16_t sequence;
588     uint32_t length;
589     uint32_t num_events;
590     uint8_t  num_axes;
591     uint8_t  device_mode;
592     uint8_t  pad0[18];
593 } xcb_input_get_device_motion_events_reply_t;
594 
595 /**
596  * @brief xcb_input_change_keyboard_device_cookie_t
597  **/
598 typedef struct xcb_input_change_keyboard_device_cookie_t {
599     unsigned int sequence;
600 } xcb_input_change_keyboard_device_cookie_t;
601 
602 /** Opcode for xcb_input_change_keyboard_device. */
603 #define XCB_INPUT_CHANGE_KEYBOARD_DEVICE 11
604 
605 /**
606  * @brief xcb_input_change_keyboard_device_request_t
607  **/
608 typedef struct xcb_input_change_keyboard_device_request_t {
609     uint8_t  major_opcode;
610     uint8_t  minor_opcode;
611     uint16_t length;
612     uint8_t  device_id;
613     uint8_t  pad0[3];
614 } xcb_input_change_keyboard_device_request_t;
615 
616 /**
617  * @brief xcb_input_change_keyboard_device_reply_t
618  **/
619 typedef struct xcb_input_change_keyboard_device_reply_t {
620     uint8_t  response_type;
621     uint8_t  xi_reply_type;
622     uint16_t sequence;
623     uint32_t length;
624     uint8_t  status;
625     uint8_t  pad0[23];
626 } xcb_input_change_keyboard_device_reply_t;
627 
628 /**
629  * @brief xcb_input_change_pointer_device_cookie_t
630  **/
631 typedef struct xcb_input_change_pointer_device_cookie_t {
632     unsigned int sequence;
633 } xcb_input_change_pointer_device_cookie_t;
634 
635 /** Opcode for xcb_input_change_pointer_device. */
636 #define XCB_INPUT_CHANGE_POINTER_DEVICE 12
637 
638 /**
639  * @brief xcb_input_change_pointer_device_request_t
640  **/
641 typedef struct xcb_input_change_pointer_device_request_t {
642     uint8_t  major_opcode;
643     uint8_t  minor_opcode;
644     uint16_t length;
645     uint8_t  x_axis;
646     uint8_t  y_axis;
647     uint8_t  device_id;
648     uint8_t  pad0;
649 } xcb_input_change_pointer_device_request_t;
650 
651 /**
652  * @brief xcb_input_change_pointer_device_reply_t
653  **/
654 typedef struct xcb_input_change_pointer_device_reply_t {
655     uint8_t  response_type;
656     uint8_t  xi_reply_type;
657     uint16_t sequence;
658     uint32_t length;
659     uint8_t  status;
660     uint8_t  pad0[23];
661 } xcb_input_change_pointer_device_reply_t;
662 
663 /**
664  * @brief xcb_input_grab_device_cookie_t
665  **/
666 typedef struct xcb_input_grab_device_cookie_t {
667     unsigned int sequence;
668 } xcb_input_grab_device_cookie_t;
669 
670 /** Opcode for xcb_input_grab_device. */
671 #define XCB_INPUT_GRAB_DEVICE 13
672 
673 /**
674  * @brief xcb_input_grab_device_request_t
675  **/
676 typedef struct xcb_input_grab_device_request_t {
677     uint8_t         major_opcode;
678     uint8_t         minor_opcode;
679     uint16_t        length;
680     xcb_window_t    grab_window;
681     xcb_timestamp_t time;
682     uint16_t        num_classes;
683     uint8_t         this_device_mode;
684     uint8_t         other_device_mode;
685     uint8_t         owner_events;
686     uint8_t         device_id;
687     uint8_t         pad0[2];
688 } xcb_input_grab_device_request_t;
689 
690 /**
691  * @brief xcb_input_grab_device_reply_t
692  **/
693 typedef struct xcb_input_grab_device_reply_t {
694     uint8_t  response_type;
695     uint8_t  xi_reply_type;
696     uint16_t sequence;
697     uint32_t length;
698     uint8_t  status;
699     uint8_t  pad0[23];
700 } xcb_input_grab_device_reply_t;
701 
702 /** Opcode for xcb_input_ungrab_device. */
703 #define XCB_INPUT_UNGRAB_DEVICE 14
704 
705 /**
706  * @brief xcb_input_ungrab_device_request_t
707  **/
708 typedef struct xcb_input_ungrab_device_request_t {
709     uint8_t         major_opcode;
710     uint8_t         minor_opcode;
711     uint16_t        length;
712     xcb_timestamp_t time;
713     uint8_t         device_id;
714     uint8_t         pad0[3];
715 } xcb_input_ungrab_device_request_t;
716 
717 typedef enum xcb_input_modifier_device_t {
718     XCB_INPUT_MODIFIER_DEVICE_USE_X_KEYBOARD = 255
719 } xcb_input_modifier_device_t;
720 
721 /** Opcode for xcb_input_grab_device_key. */
722 #define XCB_INPUT_GRAB_DEVICE_KEY 15
723 
724 /**
725  * @brief xcb_input_grab_device_key_request_t
726  **/
727 typedef struct xcb_input_grab_device_key_request_t {
728     uint8_t      major_opcode;
729     uint8_t      minor_opcode;
730     uint16_t     length;
731     xcb_window_t grab_window;
732     uint16_t     num_classes;
733     uint16_t     modifiers;
734     uint8_t      modifier_device;
735     uint8_t      grabbed_device;
736     uint8_t      key;
737     uint8_t      this_device_mode;
738     uint8_t      other_device_mode;
739     uint8_t      owner_events;
740     uint8_t      pad0[2];
741 } xcb_input_grab_device_key_request_t;
742 
743 /** Opcode for xcb_input_ungrab_device_key. */
744 #define XCB_INPUT_UNGRAB_DEVICE_KEY 16
745 
746 /**
747  * @brief xcb_input_ungrab_device_key_request_t
748  **/
749 typedef struct xcb_input_ungrab_device_key_request_t {
750     uint8_t      major_opcode;
751     uint8_t      minor_opcode;
752     uint16_t     length;
753     xcb_window_t grabWindow;
754     uint16_t     modifiers;
755     uint8_t      modifier_device;
756     uint8_t      key;
757     uint8_t      grabbed_device;
758 } xcb_input_ungrab_device_key_request_t;
759 
760 /** Opcode for xcb_input_grab_device_button. */
761 #define XCB_INPUT_GRAB_DEVICE_BUTTON 17
762 
763 /**
764  * @brief xcb_input_grab_device_button_request_t
765  **/
766 typedef struct xcb_input_grab_device_button_request_t {
767     uint8_t      major_opcode;
768     uint8_t      minor_opcode;
769     uint16_t     length;
770     xcb_window_t grab_window;
771     uint8_t      grabbed_device;
772     uint8_t      modifier_device;
773     uint16_t     num_classes;
774     uint16_t     modifiers;
775     uint8_t      this_device_mode;
776     uint8_t      other_device_mode;
777     uint8_t      button;
778     uint8_t      owner_events;
779     uint8_t      pad0[2];
780 } xcb_input_grab_device_button_request_t;
781 
782 /** Opcode for xcb_input_ungrab_device_button. */
783 #define XCB_INPUT_UNGRAB_DEVICE_BUTTON 18
784 
785 /**
786  * @brief xcb_input_ungrab_device_button_request_t
787  **/
788 typedef struct xcb_input_ungrab_device_button_request_t {
789     uint8_t      major_opcode;
790     uint8_t      minor_opcode;
791     uint16_t     length;
792     xcb_window_t grab_window;
793     uint16_t     modifiers;
794     uint8_t      modifier_device;
795     uint8_t      button;
796     uint8_t      grabbed_device;
797     uint8_t      pad0[3];
798 } xcb_input_ungrab_device_button_request_t;
799 
800 typedef enum xcb_input_device_input_mode_t {
801     XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_THIS_DEVICE = 0,
802     XCB_INPUT_DEVICE_INPUT_MODE_SYNC_THIS_DEVICE = 1,
803     XCB_INPUT_DEVICE_INPUT_MODE_REPLAY_THIS_DEVICE = 2,
804     XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_OTHER_DEVICES = 3,
805     XCB_INPUT_DEVICE_INPUT_MODE_ASYNC_ALL = 4,
806     XCB_INPUT_DEVICE_INPUT_MODE_SYNC_ALL = 5
807 } xcb_input_device_input_mode_t;
808 
809 /** Opcode for xcb_input_allow_device_events. */
810 #define XCB_INPUT_ALLOW_DEVICE_EVENTS 19
811 
812 /**
813  * @brief xcb_input_allow_device_events_request_t
814  **/
815 typedef struct xcb_input_allow_device_events_request_t {
816     uint8_t         major_opcode;
817     uint8_t         minor_opcode;
818     uint16_t        length;
819     xcb_timestamp_t time;
820     uint8_t         mode;
821     uint8_t         device_id;
822     uint8_t         pad0[2];
823 } xcb_input_allow_device_events_request_t;
824 
825 /**
826  * @brief xcb_input_get_device_focus_cookie_t
827  **/
828 typedef struct xcb_input_get_device_focus_cookie_t {
829     unsigned int sequence;
830 } xcb_input_get_device_focus_cookie_t;
831 
832 /** Opcode for xcb_input_get_device_focus. */
833 #define XCB_INPUT_GET_DEVICE_FOCUS 20
834 
835 /**
836  * @brief xcb_input_get_device_focus_request_t
837  **/
838 typedef struct xcb_input_get_device_focus_request_t {
839     uint8_t  major_opcode;
840     uint8_t  minor_opcode;
841     uint16_t length;
842     uint8_t  device_id;
843     uint8_t  pad0[3];
844 } xcb_input_get_device_focus_request_t;
845 
846 /**
847  * @brief xcb_input_get_device_focus_reply_t
848  **/
849 typedef struct xcb_input_get_device_focus_reply_t {
850     uint8_t         response_type;
851     uint8_t         xi_reply_type;
852     uint16_t        sequence;
853     uint32_t        length;
854     xcb_window_t    focus;
855     xcb_timestamp_t time;
856     uint8_t         revert_to;
857     uint8_t         pad0[15];
858 } xcb_input_get_device_focus_reply_t;
859 
860 /** Opcode for xcb_input_set_device_focus. */
861 #define XCB_INPUT_SET_DEVICE_FOCUS 21
862 
863 /**
864  * @brief xcb_input_set_device_focus_request_t
865  **/
866 typedef struct xcb_input_set_device_focus_request_t {
867     uint8_t         major_opcode;
868     uint8_t         minor_opcode;
869     uint16_t        length;
870     xcb_window_t    focus;
871     xcb_timestamp_t time;
872     uint8_t         revert_to;
873     uint8_t         device_id;
874     uint8_t         pad0[2];
875 } xcb_input_set_device_focus_request_t;
876 
877 typedef enum xcb_input_feedback_class_t {
878     XCB_INPUT_FEEDBACK_CLASS_KEYBOARD = 0,
879     XCB_INPUT_FEEDBACK_CLASS_POINTER = 1,
880     XCB_INPUT_FEEDBACK_CLASS_STRING = 2,
881     XCB_INPUT_FEEDBACK_CLASS_INTEGER = 3,
882     XCB_INPUT_FEEDBACK_CLASS_LED = 4,
883     XCB_INPUT_FEEDBACK_CLASS_BELL = 5
884 } xcb_input_feedback_class_t;
885 
886 /**
887  * @brief xcb_input_kbd_feedback_state_t
888  **/
889 typedef struct xcb_input_kbd_feedback_state_t {
890     uint8_t  class_id;
891     uint8_t  feedback_id;
892     uint16_t len;
893     uint16_t pitch;
894     uint16_t duration;
895     uint32_t led_mask;
896     uint32_t led_values;
897     uint8_t  global_auto_repeat;
898     uint8_t  click;
899     uint8_t  percent;
900     uint8_t  pad0;
901     uint8_t  auto_repeats[32];
902 } xcb_input_kbd_feedback_state_t;
903 
904 /**
905  * @brief xcb_input_kbd_feedback_state_iterator_t
906  **/
907 typedef struct xcb_input_kbd_feedback_state_iterator_t {
908     xcb_input_kbd_feedback_state_t *data;
909     int                             rem;
910     int                             index;
911 } xcb_input_kbd_feedback_state_iterator_t;
912 
913 /**
914  * @brief xcb_input_ptr_feedback_state_t
915  **/
916 typedef struct xcb_input_ptr_feedback_state_t {
917     uint8_t  class_id;
918     uint8_t  feedback_id;
919     uint16_t len;
920     uint8_t  pad0[2];
921     uint16_t accel_num;
922     uint16_t accel_denom;
923     uint16_t threshold;
924 } xcb_input_ptr_feedback_state_t;
925 
926 /**
927  * @brief xcb_input_ptr_feedback_state_iterator_t
928  **/
929 typedef struct xcb_input_ptr_feedback_state_iterator_t {
930     xcb_input_ptr_feedback_state_t *data;
931     int                             rem;
932     int                             index;
933 } xcb_input_ptr_feedback_state_iterator_t;
934 
935 /**
936  * @brief xcb_input_integer_feedback_state_t
937  **/
938 typedef struct xcb_input_integer_feedback_state_t {
939     uint8_t  class_id;
940     uint8_t  feedback_id;
941     uint16_t len;
942     uint32_t resolution;
943     int32_t  min_value;
944     int32_t  max_value;
945 } xcb_input_integer_feedback_state_t;
946 
947 /**
948  * @brief xcb_input_integer_feedback_state_iterator_t
949  **/
950 typedef struct xcb_input_integer_feedback_state_iterator_t {
951     xcb_input_integer_feedback_state_t *data;
952     int                                 rem;
953     int                                 index;
954 } xcb_input_integer_feedback_state_iterator_t;
955 
956 /**
957  * @brief xcb_input_string_feedback_state_t
958  **/
959 typedef struct xcb_input_string_feedback_state_t {
960     uint8_t  class_id;
961     uint8_t  feedback_id;
962     uint16_t len;
963     uint16_t max_symbols;
964     uint16_t num_keysyms;
965 } xcb_input_string_feedback_state_t;
966 
967 /**
968  * @brief xcb_input_string_feedback_state_iterator_t
969  **/
970 typedef struct xcb_input_string_feedback_state_iterator_t {
971     xcb_input_string_feedback_state_t *data;
972     int                                rem;
973     int                                index;
974 } xcb_input_string_feedback_state_iterator_t;
975 
976 /**
977  * @brief xcb_input_bell_feedback_state_t
978  **/
979 typedef struct xcb_input_bell_feedback_state_t {
980     uint8_t  class_id;
981     uint8_t  feedback_id;
982     uint16_t len;
983     uint8_t  percent;
984     uint8_t  pad0[3];
985     uint16_t pitch;
986     uint16_t duration;
987 } xcb_input_bell_feedback_state_t;
988 
989 /**
990  * @brief xcb_input_bell_feedback_state_iterator_t
991  **/
992 typedef struct xcb_input_bell_feedback_state_iterator_t {
993     xcb_input_bell_feedback_state_t *data;
994     int                              rem;
995     int                              index;
996 } xcb_input_bell_feedback_state_iterator_t;
997 
998 /**
999  * @brief xcb_input_led_feedback_state_t
1000  **/
1001 typedef struct xcb_input_led_feedback_state_t {
1002     uint8_t  class_id;
1003     uint8_t  feedback_id;
1004     uint16_t len;
1005     uint32_t led_mask;
1006     uint32_t led_values;
1007 } xcb_input_led_feedback_state_t;
1008 
1009 /**
1010  * @brief xcb_input_led_feedback_state_iterator_t
1011  **/
1012 typedef struct xcb_input_led_feedback_state_iterator_t {
1013     xcb_input_led_feedback_state_t *data;
1014     int                             rem;
1015     int                             index;
1016 } xcb_input_led_feedback_state_iterator_t;
1017 
1018 /**
1019  * @brief xcb_input_feedback_state_data_t
1020  **/
1021 typedef struct xcb_input_feedback_state_data_t {
1022     struct {
1023         uint16_t      pitch;
1024         uint16_t      duration;
1025         uint32_t      led_mask;
1026         uint32_t      led_values;
1027         uint8_t       global_auto_repeat;
1028         uint8_t       click;
1029         uint8_t       percent;
1030         uint8_t       pad0;
1031         uint8_t       auto_repeats[32];
1032     } keyboard;
1033     struct {
1034         uint8_t       pad1[2];
1035         uint16_t      accel_num;
1036         uint16_t      accel_denom;
1037         uint16_t      threshold;
1038     } pointer;
1039     struct {
1040         uint16_t      max_symbols;
1041         uint16_t      num_keysyms;
1042         xcb_keysym_t *keysyms;
1043     } string;
1044     struct {
1045         uint32_t      resolution;
1046         int32_t       min_value;
1047         int32_t       max_value;
1048     } integer;
1049     struct {
1050         uint32_t      led_mask;
1051         uint32_t      led_values;
1052     } led;
1053     struct {
1054         uint8_t       percent;
1055         uint8_t       pad2[3];
1056         uint16_t      pitch;
1057         uint16_t      duration;
1058     } bell;
1059 } xcb_input_feedback_state_data_t;
1060 
1061 /**
1062  * @brief xcb_input_feedback_state_t
1063  **/
1064 typedef struct xcb_input_feedback_state_t {
1065     uint8_t  class_id;
1066     uint8_t  feedback_id;
1067     uint16_t len;
1068 } xcb_input_feedback_state_t;
1069 
1070 void *
1071 xcb_input_feedback_state_data (const xcb_input_feedback_state_t *R);
1072 
1073 /**
1074  * @brief xcb_input_feedback_state_iterator_t
1075  **/
1076 typedef struct xcb_input_feedback_state_iterator_t {
1077     xcb_input_feedback_state_t *data;
1078     int                         rem;
1079     int                         index;
1080 } xcb_input_feedback_state_iterator_t;
1081 
1082 /**
1083  * @brief xcb_input_get_feedback_control_cookie_t
1084  **/
1085 typedef struct xcb_input_get_feedback_control_cookie_t {
1086     unsigned int sequence;
1087 } xcb_input_get_feedback_control_cookie_t;
1088 
1089 /** Opcode for xcb_input_get_feedback_control. */
1090 #define XCB_INPUT_GET_FEEDBACK_CONTROL 22
1091 
1092 /**
1093  * @brief xcb_input_get_feedback_control_request_t
1094  **/
1095 typedef struct xcb_input_get_feedback_control_request_t {
1096     uint8_t  major_opcode;
1097     uint8_t  minor_opcode;
1098     uint16_t length;
1099     uint8_t  device_id;
1100     uint8_t  pad0[3];
1101 } xcb_input_get_feedback_control_request_t;
1102 
1103 /**
1104  * @brief xcb_input_get_feedback_control_reply_t
1105  **/
1106 typedef struct xcb_input_get_feedback_control_reply_t {
1107     uint8_t  response_type;
1108     uint8_t  xi_reply_type;
1109     uint16_t sequence;
1110     uint32_t length;
1111     uint16_t num_feedbacks;
1112     uint8_t  pad0[22];
1113 } xcb_input_get_feedback_control_reply_t;
1114 
1115 /**
1116  * @brief xcb_input_kbd_feedback_ctl_t
1117  **/
1118 typedef struct xcb_input_kbd_feedback_ctl_t {
1119     uint8_t              class_id;
1120     uint8_t              feedback_id;
1121     uint16_t             len;
1122     xcb_input_key_code_t key;
1123     uint8_t              auto_repeat_mode;
1124     int8_t               key_click_percent;
1125     int8_t               bell_percent;
1126     int16_t              bell_pitch;
1127     int16_t              bell_duration;
1128     uint32_t             led_mask;
1129     uint32_t             led_values;
1130 } xcb_input_kbd_feedback_ctl_t;
1131 
1132 /**
1133  * @brief xcb_input_kbd_feedback_ctl_iterator_t
1134  **/
1135 typedef struct xcb_input_kbd_feedback_ctl_iterator_t {
1136     xcb_input_kbd_feedback_ctl_t *data;
1137     int                           rem;
1138     int                           index;
1139 } xcb_input_kbd_feedback_ctl_iterator_t;
1140 
1141 /**
1142  * @brief xcb_input_ptr_feedback_ctl_t
1143  **/
1144 typedef struct xcb_input_ptr_feedback_ctl_t {
1145     uint8_t  class_id;
1146     uint8_t  feedback_id;
1147     uint16_t len;
1148     uint8_t  pad0[2];
1149     int16_t  num;
1150     int16_t  denom;
1151     int16_t  threshold;
1152 } xcb_input_ptr_feedback_ctl_t;
1153 
1154 /**
1155  * @brief xcb_input_ptr_feedback_ctl_iterator_t
1156  **/
1157 typedef struct xcb_input_ptr_feedback_ctl_iterator_t {
1158     xcb_input_ptr_feedback_ctl_t *data;
1159     int                           rem;
1160     int                           index;
1161 } xcb_input_ptr_feedback_ctl_iterator_t;
1162 
1163 /**
1164  * @brief xcb_input_integer_feedback_ctl_t
1165  **/
1166 typedef struct xcb_input_integer_feedback_ctl_t {
1167     uint8_t  class_id;
1168     uint8_t  feedback_id;
1169     uint16_t len;
1170     int32_t  int_to_display;
1171 } xcb_input_integer_feedback_ctl_t;
1172 
1173 /**
1174  * @brief xcb_input_integer_feedback_ctl_iterator_t
1175  **/
1176 typedef struct xcb_input_integer_feedback_ctl_iterator_t {
1177     xcb_input_integer_feedback_ctl_t *data;
1178     int                               rem;
1179     int                               index;
1180 } xcb_input_integer_feedback_ctl_iterator_t;
1181 
1182 /**
1183  * @brief xcb_input_string_feedback_ctl_t
1184  **/
1185 typedef struct xcb_input_string_feedback_ctl_t {
1186     uint8_t  class_id;
1187     uint8_t  feedback_id;
1188     uint16_t len;
1189     uint8_t  pad0[2];
1190     uint16_t num_keysyms;
1191 } xcb_input_string_feedback_ctl_t;
1192 
1193 /**
1194  * @brief xcb_input_string_feedback_ctl_iterator_t
1195  **/
1196 typedef struct xcb_input_string_feedback_ctl_iterator_t {
1197     xcb_input_string_feedback_ctl_t *data;
1198     int                              rem;
1199     int                              index;
1200 } xcb_input_string_feedback_ctl_iterator_t;
1201 
1202 /**
1203  * @brief xcb_input_bell_feedback_ctl_t
1204  **/
1205 typedef struct xcb_input_bell_feedback_ctl_t {
1206     uint8_t  class_id;
1207     uint8_t  feedback_id;
1208     uint16_t len;
1209     int8_t   percent;
1210     uint8_t  pad0[3];
1211     int16_t  pitch;
1212     int16_t  duration;
1213 } xcb_input_bell_feedback_ctl_t;
1214 
1215 /**
1216  * @brief xcb_input_bell_feedback_ctl_iterator_t
1217  **/
1218 typedef struct xcb_input_bell_feedback_ctl_iterator_t {
1219     xcb_input_bell_feedback_ctl_t *data;
1220     int                            rem;
1221     int                            index;
1222 } xcb_input_bell_feedback_ctl_iterator_t;
1223 
1224 /**
1225  * @brief xcb_input_led_feedback_ctl_t
1226  **/
1227 typedef struct xcb_input_led_feedback_ctl_t {
1228     uint8_t  class_id;
1229     uint8_t  feedback_id;
1230     uint16_t len;
1231     uint32_t led_mask;
1232     uint32_t led_values;
1233 } xcb_input_led_feedback_ctl_t;
1234 
1235 /**
1236  * @brief xcb_input_led_feedback_ctl_iterator_t
1237  **/
1238 typedef struct xcb_input_led_feedback_ctl_iterator_t {
1239     xcb_input_led_feedback_ctl_t *data;
1240     int                           rem;
1241     int                           index;
1242 } xcb_input_led_feedback_ctl_iterator_t;
1243 
1244 /**
1245  * @brief xcb_input_feedback_ctl_data_t
1246  **/
1247 typedef struct xcb_input_feedback_ctl_data_t {
1248     struct {
1249         xcb_input_key_code_t key;
1250         uint8_t              auto_repeat_mode;
1251         int8_t               key_click_percent;
1252         int8_t               bell_percent;
1253         int16_t              bell_pitch;
1254         int16_t              bell_duration;
1255         uint32_t             led_mask;
1256         uint32_t             led_values;
1257     } keyboard;
1258     struct {
1259         uint8_t              pad0[2];
1260         int16_t              num;
1261         int16_t              denom;
1262         int16_t              threshold;
1263     } pointer;
1264     struct {
1265         uint8_t              pad1[2];
1266         uint16_t             num_keysyms;
1267         xcb_keysym_t        *keysyms;
1268     } string;
1269     struct {
1270         int32_t              int_to_display;
1271     } integer;
1272     struct {
1273         uint32_t             led_mask;
1274         uint32_t             led_values;
1275     } led;
1276     struct {
1277         int8_t               percent;
1278         uint8_t              pad2[3];
1279         int16_t              pitch;
1280         int16_t              duration;
1281     } bell;
1282 } xcb_input_feedback_ctl_data_t;
1283 
1284 /**
1285  * @brief xcb_input_feedback_ctl_t
1286  **/
1287 typedef struct xcb_input_feedback_ctl_t {
1288     uint8_t  class_id;
1289     uint8_t  feedback_id;
1290     uint16_t len;
1291 } xcb_input_feedback_ctl_t;
1292 
1293 void *
1294 xcb_input_feedback_ctl_data (const xcb_input_feedback_ctl_t *R);
1295 
1296 /**
1297  * @brief xcb_input_feedback_ctl_iterator_t
1298  **/
1299 typedef struct xcb_input_feedback_ctl_iterator_t {
1300     xcb_input_feedback_ctl_t *data;
1301     int                       rem;
1302     int                       index;
1303 } xcb_input_feedback_ctl_iterator_t;
1304 
1305 typedef enum xcb_input_change_feedback_control_mask_t {
1306     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY_CLICK_PERCENT = 1,
1307     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PERCENT = 2,
1308     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_PITCH = 4,
1309     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_DURATION = 8,
1310     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED = 16,
1311     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_LED_MODE = 32,
1312     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_KEY = 64,
1313     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_AUTO_REPEAT_MODE = 128,
1314     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_STRING = 1,
1315     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_INTEGER = 1,
1316     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_NUM = 1,
1317     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_ACCEL_DENOM = 2,
1318     XCB_INPUT_CHANGE_FEEDBACK_CONTROL_MASK_THRESHOLD = 4
1319 } xcb_input_change_feedback_control_mask_t;
1320 
1321 /** Opcode for xcb_input_change_feedback_control. */
1322 #define XCB_INPUT_CHANGE_FEEDBACK_CONTROL 23
1323 
1324 /**
1325  * @brief xcb_input_change_feedback_control_request_t
1326  **/
1327 typedef struct xcb_input_change_feedback_control_request_t {
1328     uint8_t  major_opcode;
1329     uint8_t  minor_opcode;
1330     uint16_t length;
1331     uint32_t mask;
1332     uint8_t  device_id;
1333     uint8_t  feedback_id;
1334     uint8_t  pad0[2];
1335 } xcb_input_change_feedback_control_request_t;
1336 
1337 /**
1338  * @brief xcb_input_get_device_key_mapping_cookie_t
1339  **/
1340 typedef struct xcb_input_get_device_key_mapping_cookie_t {
1341     unsigned int sequence;
1342 } xcb_input_get_device_key_mapping_cookie_t;
1343 
1344 /** Opcode for xcb_input_get_device_key_mapping. */
1345 #define XCB_INPUT_GET_DEVICE_KEY_MAPPING 24
1346 
1347 /**
1348  * @brief xcb_input_get_device_key_mapping_request_t
1349  **/
1350 typedef struct xcb_input_get_device_key_mapping_request_t {
1351     uint8_t              major_opcode;
1352     uint8_t              minor_opcode;
1353     uint16_t             length;
1354     uint8_t              device_id;
1355     xcb_input_key_code_t first_keycode;
1356     uint8_t              count;
1357     uint8_t              pad0;
1358 } xcb_input_get_device_key_mapping_request_t;
1359 
1360 /**
1361  * @brief xcb_input_get_device_key_mapping_reply_t
1362  **/
1363 typedef struct xcb_input_get_device_key_mapping_reply_t {
1364     uint8_t  response_type;
1365     uint8_t  xi_reply_type;
1366     uint16_t sequence;
1367     uint32_t length;
1368     uint8_t  keysyms_per_keycode;
1369     uint8_t  pad0[23];
1370 } xcb_input_get_device_key_mapping_reply_t;
1371 
1372 /** Opcode for xcb_input_change_device_key_mapping. */
1373 #define XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING 25
1374 
1375 /**
1376  * @brief xcb_input_change_device_key_mapping_request_t
1377  **/
1378 typedef struct xcb_input_change_device_key_mapping_request_t {
1379     uint8_t              major_opcode;
1380     uint8_t              minor_opcode;
1381     uint16_t             length;
1382     uint8_t              device_id;
1383     xcb_input_key_code_t first_keycode;
1384     uint8_t              keysyms_per_keycode;
1385     uint8_t              keycode_count;
1386 } xcb_input_change_device_key_mapping_request_t;
1387 
1388 /**
1389  * @brief xcb_input_get_device_modifier_mapping_cookie_t
1390  **/
1391 typedef struct xcb_input_get_device_modifier_mapping_cookie_t {
1392     unsigned int sequence;
1393 } xcb_input_get_device_modifier_mapping_cookie_t;
1394 
1395 /** Opcode for xcb_input_get_device_modifier_mapping. */
1396 #define XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING 26
1397 
1398 /**
1399  * @brief xcb_input_get_device_modifier_mapping_request_t
1400  **/
1401 typedef struct xcb_input_get_device_modifier_mapping_request_t {
1402     uint8_t  major_opcode;
1403     uint8_t  minor_opcode;
1404     uint16_t length;
1405     uint8_t  device_id;
1406     uint8_t  pad0[3];
1407 } xcb_input_get_device_modifier_mapping_request_t;
1408 
1409 /**
1410  * @brief xcb_input_get_device_modifier_mapping_reply_t
1411  **/
1412 typedef struct xcb_input_get_device_modifier_mapping_reply_t {
1413     uint8_t  response_type;
1414     uint8_t  xi_reply_type;
1415     uint16_t sequence;
1416     uint32_t length;
1417     uint8_t  keycodes_per_modifier;
1418     uint8_t  pad0[23];
1419 } xcb_input_get_device_modifier_mapping_reply_t;
1420 
1421 /**
1422  * @brief xcb_input_set_device_modifier_mapping_cookie_t
1423  **/
1424 typedef struct xcb_input_set_device_modifier_mapping_cookie_t {
1425     unsigned int sequence;
1426 } xcb_input_set_device_modifier_mapping_cookie_t;
1427 
1428 /** Opcode for xcb_input_set_device_modifier_mapping. */
1429 #define XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING 27
1430 
1431 /**
1432  * @brief xcb_input_set_device_modifier_mapping_request_t
1433  **/
1434 typedef struct xcb_input_set_device_modifier_mapping_request_t {
1435     uint8_t  major_opcode;
1436     uint8_t  minor_opcode;
1437     uint16_t length;
1438     uint8_t  device_id;
1439     uint8_t  keycodes_per_modifier;
1440     uint8_t  pad0[2];
1441 } xcb_input_set_device_modifier_mapping_request_t;
1442 
1443 /**
1444  * @brief xcb_input_set_device_modifier_mapping_reply_t
1445  **/
1446 typedef struct xcb_input_set_device_modifier_mapping_reply_t {
1447     uint8_t  response_type;
1448     uint8_t  xi_reply_type;
1449     uint16_t sequence;
1450     uint32_t length;
1451     uint8_t  status;
1452     uint8_t  pad0[23];
1453 } xcb_input_set_device_modifier_mapping_reply_t;
1454 
1455 /**
1456  * @brief xcb_input_get_device_button_mapping_cookie_t
1457  **/
1458 typedef struct xcb_input_get_device_button_mapping_cookie_t {
1459     unsigned int sequence;
1460 } xcb_input_get_device_button_mapping_cookie_t;
1461 
1462 /** Opcode for xcb_input_get_device_button_mapping. */
1463 #define XCB_INPUT_GET_DEVICE_BUTTON_MAPPING 28
1464 
1465 /**
1466  * @brief xcb_input_get_device_button_mapping_request_t
1467  **/
1468 typedef struct xcb_input_get_device_button_mapping_request_t {
1469     uint8_t  major_opcode;
1470     uint8_t  minor_opcode;
1471     uint16_t length;
1472     uint8_t  device_id;
1473     uint8_t  pad0[3];
1474 } xcb_input_get_device_button_mapping_request_t;
1475 
1476 /**
1477  * @brief xcb_input_get_device_button_mapping_reply_t
1478  **/
1479 typedef struct xcb_input_get_device_button_mapping_reply_t {
1480     uint8_t  response_type;
1481     uint8_t  xi_reply_type;
1482     uint16_t sequence;
1483     uint32_t length;
1484     uint8_t  map_size;
1485     uint8_t  pad0[23];
1486 } xcb_input_get_device_button_mapping_reply_t;
1487 
1488 /**
1489  * @brief xcb_input_set_device_button_mapping_cookie_t
1490  **/
1491 typedef struct xcb_input_set_device_button_mapping_cookie_t {
1492     unsigned int sequence;
1493 } xcb_input_set_device_button_mapping_cookie_t;
1494 
1495 /** Opcode for xcb_input_set_device_button_mapping. */
1496 #define XCB_INPUT_SET_DEVICE_BUTTON_MAPPING 29
1497 
1498 /**
1499  * @brief xcb_input_set_device_button_mapping_request_t
1500  **/
1501 typedef struct xcb_input_set_device_button_mapping_request_t {
1502     uint8_t  major_opcode;
1503     uint8_t  minor_opcode;
1504     uint16_t length;
1505     uint8_t  device_id;
1506     uint8_t  map_size;
1507     uint8_t  pad0[2];
1508 } xcb_input_set_device_button_mapping_request_t;
1509 
1510 /**
1511  * @brief xcb_input_set_device_button_mapping_reply_t
1512  **/
1513 typedef struct xcb_input_set_device_button_mapping_reply_t {
1514     uint8_t  response_type;
1515     uint8_t  xi_reply_type;
1516     uint16_t sequence;
1517     uint32_t length;
1518     uint8_t  status;
1519     uint8_t  pad0[23];
1520 } xcb_input_set_device_button_mapping_reply_t;
1521 
1522 /**
1523  * @brief xcb_input_key_state_t
1524  **/
1525 typedef struct xcb_input_key_state_t {
1526     uint8_t class_id;
1527     uint8_t len;
1528     uint8_t num_keys;
1529     uint8_t pad0;
1530     uint8_t keys[32];
1531 } xcb_input_key_state_t;
1532 
1533 /**
1534  * @brief xcb_input_key_state_iterator_t
1535  **/
1536 typedef struct xcb_input_key_state_iterator_t {
1537     xcb_input_key_state_t *data;
1538     int                    rem;
1539     int                    index;
1540 } xcb_input_key_state_iterator_t;
1541 
1542 /**
1543  * @brief xcb_input_button_state_t
1544  **/
1545 typedef struct xcb_input_button_state_t {
1546     uint8_t class_id;
1547     uint8_t len;
1548     uint8_t num_buttons;
1549     uint8_t pad0;
1550     uint8_t buttons[32];
1551 } xcb_input_button_state_t;
1552 
1553 /**
1554  * @brief xcb_input_button_state_iterator_t
1555  **/
1556 typedef struct xcb_input_button_state_iterator_t {
1557     xcb_input_button_state_t *data;
1558     int                       rem;
1559     int                       index;
1560 } xcb_input_button_state_iterator_t;
1561 
1562 typedef enum xcb_input_valuator_state_mode_mask_t {
1563     XCB_INPUT_VALUATOR_STATE_MODE_MASK_DEVICE_MODE_ABSOLUTE = 1,
1564     XCB_INPUT_VALUATOR_STATE_MODE_MASK_OUT_OF_PROXIMITY = 2
1565 } xcb_input_valuator_state_mode_mask_t;
1566 
1567 /**
1568  * @brief xcb_input_valuator_state_t
1569  **/
1570 typedef struct xcb_input_valuator_state_t {
1571     uint8_t class_id;
1572     uint8_t len;
1573     uint8_t num_valuators;
1574     uint8_t mode;
1575 } xcb_input_valuator_state_t;
1576 
1577 /**
1578  * @brief xcb_input_valuator_state_iterator_t
1579  **/
1580 typedef struct xcb_input_valuator_state_iterator_t {
1581     xcb_input_valuator_state_t *data;
1582     int                         rem;
1583     int                         index;
1584 } xcb_input_valuator_state_iterator_t;
1585 
1586 /**
1587  * @brief xcb_input_input_state_data_t
1588  **/
1589 typedef struct xcb_input_input_state_data_t {
1590     struct {
1591         uint8_t  num_keys;
1592         uint8_t  pad0;
1593         uint8_t  keys[32];
1594     } key;
1595     struct {
1596         uint8_t  num_buttons;
1597         uint8_t  pad1;
1598         uint8_t  buttons[32];
1599     } button;
1600     struct {
1601         uint8_t  num_valuators;
1602         uint8_t  mode;
1603         int32_t *valuators;
1604     } valuator;
1605 } xcb_input_input_state_data_t;
1606 
1607 /**
1608  * @brief xcb_input_input_state_t
1609  **/
1610 typedef struct xcb_input_input_state_t {
1611     uint8_t class_id;
1612     uint8_t len;
1613 } xcb_input_input_state_t;
1614 
1615 void *
1616 xcb_input_input_state_data (const xcb_input_input_state_t *R);
1617 
1618 /**
1619  * @brief xcb_input_input_state_iterator_t
1620  **/
1621 typedef struct xcb_input_input_state_iterator_t {
1622     xcb_input_input_state_t *data;
1623     int                      rem;
1624     int                      index;
1625 } xcb_input_input_state_iterator_t;
1626 
1627 /**
1628  * @brief xcb_input_query_device_state_cookie_t
1629  **/
1630 typedef struct xcb_input_query_device_state_cookie_t {
1631     unsigned int sequence;
1632 } xcb_input_query_device_state_cookie_t;
1633 
1634 /** Opcode for xcb_input_query_device_state. */
1635 #define XCB_INPUT_QUERY_DEVICE_STATE 30
1636 
1637 /**
1638  * @brief xcb_input_query_device_state_request_t
1639  **/
1640 typedef struct xcb_input_query_device_state_request_t {
1641     uint8_t  major_opcode;
1642     uint8_t  minor_opcode;
1643     uint16_t length;
1644     uint8_t  device_id;
1645     uint8_t  pad0[3];
1646 } xcb_input_query_device_state_request_t;
1647 
1648 /**
1649  * @brief xcb_input_query_device_state_reply_t
1650  **/
1651 typedef struct xcb_input_query_device_state_reply_t {
1652     uint8_t  response_type;
1653     uint8_t  xi_reply_type;
1654     uint16_t sequence;
1655     uint32_t length;
1656     uint8_t  num_classes;
1657     uint8_t  pad0[23];
1658 } xcb_input_query_device_state_reply_t;
1659 
1660 /** Opcode for xcb_input_device_bell. */
1661 #define XCB_INPUT_DEVICE_BELL 32
1662 
1663 /**
1664  * @brief xcb_input_device_bell_request_t
1665  **/
1666 typedef struct xcb_input_device_bell_request_t {
1667     uint8_t  major_opcode;
1668     uint8_t  minor_opcode;
1669     uint16_t length;
1670     uint8_t  device_id;
1671     uint8_t  feedback_id;
1672     uint8_t  feedback_class;
1673     int8_t   percent;
1674 } xcb_input_device_bell_request_t;
1675 
1676 /**
1677  * @brief xcb_input_set_device_valuators_cookie_t
1678  **/
1679 typedef struct xcb_input_set_device_valuators_cookie_t {
1680     unsigned int sequence;
1681 } xcb_input_set_device_valuators_cookie_t;
1682 
1683 /** Opcode for xcb_input_set_device_valuators. */
1684 #define XCB_INPUT_SET_DEVICE_VALUATORS 33
1685 
1686 /**
1687  * @brief xcb_input_set_device_valuators_request_t
1688  **/
1689 typedef struct xcb_input_set_device_valuators_request_t {
1690     uint8_t  major_opcode;
1691     uint8_t  minor_opcode;
1692     uint16_t length;
1693     uint8_t  device_id;
1694     uint8_t  first_valuator;
1695     uint8_t  num_valuators;
1696     uint8_t  pad0;
1697 } xcb_input_set_device_valuators_request_t;
1698 
1699 /**
1700  * @brief xcb_input_set_device_valuators_reply_t
1701  **/
1702 typedef struct xcb_input_set_device_valuators_reply_t {
1703     uint8_t  response_type;
1704     uint8_t  xi_reply_type;
1705     uint16_t sequence;
1706     uint32_t length;
1707     uint8_t  status;
1708     uint8_t  pad0[23];
1709 } xcb_input_set_device_valuators_reply_t;
1710 
1711 typedef enum xcb_input_device_control_t {
1712     XCB_INPUT_DEVICE_CONTROL_RESOLUTION = 1,
1713     XCB_INPUT_DEVICE_CONTROL_ABS_CALIB = 2,
1714     XCB_INPUT_DEVICE_CONTROL_CORE = 3,
1715     XCB_INPUT_DEVICE_CONTROL_ENABLE = 4,
1716     XCB_INPUT_DEVICE_CONTROL_ABS_AREA = 5
1717 } xcb_input_device_control_t;
1718 
1719 /**
1720  * @brief xcb_input_device_resolution_state_t
1721  **/
1722 typedef struct xcb_input_device_resolution_state_t {
1723     uint16_t control_id;
1724     uint16_t len;
1725     uint32_t num_valuators;
1726 } xcb_input_device_resolution_state_t;
1727 
1728 /**
1729  * @brief xcb_input_device_resolution_state_iterator_t
1730  **/
1731 typedef struct xcb_input_device_resolution_state_iterator_t {
1732     xcb_input_device_resolution_state_t *data;
1733     int                                  rem;
1734     int                                  index;
1735 } xcb_input_device_resolution_state_iterator_t;
1736 
1737 /**
1738  * @brief xcb_input_device_abs_calib_state_t
1739  **/
1740 typedef struct xcb_input_device_abs_calib_state_t {
1741     uint16_t control_id;
1742     uint16_t len;
1743     int32_t  min_x;
1744     int32_t  max_x;
1745     int32_t  min_y;
1746     int32_t  max_y;
1747     uint32_t flip_x;
1748     uint32_t flip_y;
1749     uint32_t rotation;
1750     uint32_t button_threshold;
1751 } xcb_input_device_abs_calib_state_t;
1752 
1753 /**
1754  * @brief xcb_input_device_abs_calib_state_iterator_t
1755  **/
1756 typedef struct xcb_input_device_abs_calib_state_iterator_t {
1757     xcb_input_device_abs_calib_state_t *data;
1758     int                                 rem;
1759     int                                 index;
1760 } xcb_input_device_abs_calib_state_iterator_t;
1761 
1762 /**
1763  * @brief xcb_input_device_abs_area_state_t
1764  **/
1765 typedef struct xcb_input_device_abs_area_state_t {
1766     uint16_t control_id;
1767     uint16_t len;
1768     uint32_t offset_x;
1769     uint32_t offset_y;
1770     uint32_t width;
1771     uint32_t height;
1772     uint32_t screen;
1773     uint32_t following;
1774 } xcb_input_device_abs_area_state_t;
1775 
1776 /**
1777  * @brief xcb_input_device_abs_area_state_iterator_t
1778  **/
1779 typedef struct xcb_input_device_abs_area_state_iterator_t {
1780     xcb_input_device_abs_area_state_t *data;
1781     int                                rem;
1782     int                                index;
1783 } xcb_input_device_abs_area_state_iterator_t;
1784 
1785 /**
1786  * @brief xcb_input_device_core_state_t
1787  **/
1788 typedef struct xcb_input_device_core_state_t {
1789     uint16_t control_id;
1790     uint16_t len;
1791     uint8_t  status;
1792     uint8_t  iscore;
1793     uint8_t  pad0[2];
1794 } xcb_input_device_core_state_t;
1795 
1796 /**
1797  * @brief xcb_input_device_core_state_iterator_t
1798  **/
1799 typedef struct xcb_input_device_core_state_iterator_t {
1800     xcb_input_device_core_state_t *data;
1801     int                            rem;
1802     int                            index;
1803 } xcb_input_device_core_state_iterator_t;
1804 
1805 /**
1806  * @brief xcb_input_device_enable_state_t
1807  **/
1808 typedef struct xcb_input_device_enable_state_t {
1809     uint16_t control_id;
1810     uint16_t len;
1811     uint8_t  enable;
1812     uint8_t  pad0[3];
1813 } xcb_input_device_enable_state_t;
1814 
1815 /**
1816  * @brief xcb_input_device_enable_state_iterator_t
1817  **/
1818 typedef struct xcb_input_device_enable_state_iterator_t {
1819     xcb_input_device_enable_state_t *data;
1820     int                              rem;
1821     int                              index;
1822 } xcb_input_device_enable_state_iterator_t;
1823 
1824 /**
1825  * @brief xcb_input_device_state_data_t
1826  **/
1827 typedef struct xcb_input_device_state_data_t {
1828     struct {
1829         uint32_t  num_valuators;
1830         uint32_t *resolution_values;
1831         uint32_t *resolution_min;
1832         uint32_t *resolution_max;
1833     } resolution;
1834     struct {
1835         int32_t   min_x;
1836         int32_t   max_x;
1837         int32_t   min_y;
1838         int32_t   max_y;
1839         uint32_t  flip_x;
1840         uint32_t  flip_y;
1841         uint32_t  rotation;
1842         uint32_t  button_threshold;
1843     } abs_calib;
1844     struct {
1845         uint8_t   status;
1846         uint8_t   iscore;
1847         uint8_t   pad0[2];
1848     } core;
1849     struct {
1850         uint8_t   enable;
1851         uint8_t   pad1[3];
1852     } enable;
1853     struct {
1854         uint32_t  offset_x;
1855         uint32_t  offset_y;
1856         uint32_t  width;
1857         uint32_t  height;
1858         uint32_t  screen;
1859         uint32_t  following;
1860     } abs_area;
1861 } xcb_input_device_state_data_t;
1862 
1863 /**
1864  * @brief xcb_input_device_state_t
1865  **/
1866 typedef struct xcb_input_device_state_t {
1867     uint16_t control_id;
1868     uint16_t len;
1869 } xcb_input_device_state_t;
1870 
1871 void *
1872 xcb_input_device_state_data (const xcb_input_device_state_t *R);
1873 
1874 /**
1875  * @brief xcb_input_device_state_iterator_t
1876  **/
1877 typedef struct xcb_input_device_state_iterator_t {
1878     xcb_input_device_state_t *data;
1879     int                       rem;
1880     int                       index;
1881 } xcb_input_device_state_iterator_t;
1882 
1883 /**
1884  * @brief xcb_input_get_device_control_cookie_t
1885  **/
1886 typedef struct xcb_input_get_device_control_cookie_t {
1887     unsigned int sequence;
1888 } xcb_input_get_device_control_cookie_t;
1889 
1890 /** Opcode for xcb_input_get_device_control. */
1891 #define XCB_INPUT_GET_DEVICE_CONTROL 34
1892 
1893 /**
1894  * @brief xcb_input_get_device_control_request_t
1895  **/
1896 typedef struct xcb_input_get_device_control_request_t {
1897     uint8_t  major_opcode;
1898     uint8_t  minor_opcode;
1899     uint16_t length;
1900     uint16_t control_id;
1901     uint8_t  device_id;
1902     uint8_t  pad0;
1903 } xcb_input_get_device_control_request_t;
1904 
1905 /**
1906  * @brief xcb_input_get_device_control_reply_t
1907  **/
1908 typedef struct xcb_input_get_device_control_reply_t {
1909     uint8_t  response_type;
1910     uint8_t  xi_reply_type;
1911     uint16_t sequence;
1912     uint32_t length;
1913     uint8_t  status;
1914     uint8_t  pad0[23];
1915 } xcb_input_get_device_control_reply_t;
1916 
1917 /**
1918  * @brief xcb_input_device_resolution_ctl_t
1919  **/
1920 typedef struct xcb_input_device_resolution_ctl_t {
1921     uint16_t control_id;
1922     uint16_t len;
1923     uint8_t  first_valuator;
1924     uint8_t  num_valuators;
1925     uint8_t  pad0[2];
1926 } xcb_input_device_resolution_ctl_t;
1927 
1928 /**
1929  * @brief xcb_input_device_resolution_ctl_iterator_t
1930  **/
1931 typedef struct xcb_input_device_resolution_ctl_iterator_t {
1932     xcb_input_device_resolution_ctl_t *data;
1933     int                                rem;
1934     int                                index;
1935 } xcb_input_device_resolution_ctl_iterator_t;
1936 
1937 /**
1938  * @brief xcb_input_device_abs_calib_ctl_t
1939  **/
1940 typedef struct xcb_input_device_abs_calib_ctl_t {
1941     uint16_t control_id;
1942     uint16_t len;
1943     int32_t  min_x;
1944     int32_t  max_x;
1945     int32_t  min_y;
1946     int32_t  max_y;
1947     uint32_t flip_x;
1948     uint32_t flip_y;
1949     uint32_t rotation;
1950     uint32_t button_threshold;
1951 } xcb_input_device_abs_calib_ctl_t;
1952 
1953 /**
1954  * @brief xcb_input_device_abs_calib_ctl_iterator_t
1955  **/
1956 typedef struct xcb_input_device_abs_calib_ctl_iterator_t {
1957     xcb_input_device_abs_calib_ctl_t *data;
1958     int                               rem;
1959     int                               index;
1960 } xcb_input_device_abs_calib_ctl_iterator_t;
1961 
1962 /**
1963  * @brief xcb_input_device_abs_area_ctrl_t
1964  **/
1965 typedef struct xcb_input_device_abs_area_ctrl_t {
1966     uint16_t control_id;
1967     uint16_t len;
1968     uint32_t offset_x;
1969     uint32_t offset_y;
1970     int32_t  width;
1971     int32_t  height;
1972     int32_t  screen;
1973     uint32_t following;
1974 } xcb_input_device_abs_area_ctrl_t;
1975 
1976 /**
1977  * @brief xcb_input_device_abs_area_ctrl_iterator_t
1978  **/
1979 typedef struct xcb_input_device_abs_area_ctrl_iterator_t {
1980     xcb_input_device_abs_area_ctrl_t *data;
1981     int                               rem;
1982     int                               index;
1983 } xcb_input_device_abs_area_ctrl_iterator_t;
1984 
1985 /**
1986  * @brief xcb_input_device_core_ctrl_t
1987  **/
1988 typedef struct xcb_input_device_core_ctrl_t {
1989     uint16_t control_id;
1990     uint16_t len;
1991     uint8_t  status;
1992     uint8_t  pad0[3];
1993 } xcb_input_device_core_ctrl_t;
1994 
1995 /**
1996  * @brief xcb_input_device_core_ctrl_iterator_t
1997  **/
1998 typedef struct xcb_input_device_core_ctrl_iterator_t {
1999     xcb_input_device_core_ctrl_t *data;
2000     int                           rem;
2001     int                           index;
2002 } xcb_input_device_core_ctrl_iterator_t;
2003 
2004 /**
2005  * @brief xcb_input_device_enable_ctrl_t
2006  **/
2007 typedef struct xcb_input_device_enable_ctrl_t {
2008     uint16_t control_id;
2009     uint16_t len;
2010     uint8_t  enable;
2011     uint8_t  pad0[3];
2012 } xcb_input_device_enable_ctrl_t;
2013 
2014 /**
2015  * @brief xcb_input_device_enable_ctrl_iterator_t
2016  **/
2017 typedef struct xcb_input_device_enable_ctrl_iterator_t {
2018     xcb_input_device_enable_ctrl_t *data;
2019     int                             rem;
2020     int                             index;
2021 } xcb_input_device_enable_ctrl_iterator_t;
2022 
2023 /**
2024  * @brief xcb_input_device_ctl_data_t
2025  **/
2026 typedef struct xcb_input_device_ctl_data_t {
2027     struct {
2028         uint8_t   first_valuator;
2029         uint8_t   num_valuators;
2030         uint8_t   pad0[2];
2031         uint32_t *resolution_values;
2032     } resolution;
2033     struct {
2034         int32_t   min_x;
2035         int32_t   max_x;
2036         int32_t   min_y;
2037         int32_t   max_y;
2038         uint32_t  flip_x;
2039         uint32_t  flip_y;
2040         uint32_t  rotation;
2041         uint32_t  button_threshold;
2042     } abs_calib;
2043     struct {
2044         uint8_t   status;
2045         uint8_t   pad1[3];
2046     } core;
2047     struct {
2048         uint8_t   enable;
2049         uint8_t   pad2[3];
2050     } enable;
2051     struct {
2052         uint32_t  offset_x;
2053         uint32_t  offset_y;
2054         int32_t   width;
2055         int32_t   height;
2056         int32_t   screen;
2057         uint32_t  following;
2058     } abs_area;
2059 } xcb_input_device_ctl_data_t;
2060 
2061 /**
2062  * @brief xcb_input_device_ctl_t
2063  **/
2064 typedef struct xcb_input_device_ctl_t {
2065     uint16_t control_id;
2066     uint16_t len;
2067 } xcb_input_device_ctl_t;
2068 
2069 void *
2070 xcb_input_device_ctl_data (const xcb_input_device_ctl_t *R);
2071 
2072 /**
2073  * @brief xcb_input_device_ctl_iterator_t
2074  **/
2075 typedef struct xcb_input_device_ctl_iterator_t {
2076     xcb_input_device_ctl_t *data;
2077     int                     rem;
2078     int                     index;
2079 } xcb_input_device_ctl_iterator_t;
2080 
2081 /**
2082  * @brief xcb_input_change_device_control_cookie_t
2083  **/
2084 typedef struct xcb_input_change_device_control_cookie_t {
2085     unsigned int sequence;
2086 } xcb_input_change_device_control_cookie_t;
2087 
2088 /** Opcode for xcb_input_change_device_control. */
2089 #define XCB_INPUT_CHANGE_DEVICE_CONTROL 35
2090 
2091 /**
2092  * @brief xcb_input_change_device_control_request_t
2093  **/
2094 typedef struct xcb_input_change_device_control_request_t {
2095     uint8_t  major_opcode;
2096     uint8_t  minor_opcode;
2097     uint16_t length;
2098     uint16_t control_id;
2099     uint8_t  device_id;
2100     uint8_t  pad0;
2101 } xcb_input_change_device_control_request_t;
2102 
2103 /**
2104  * @brief xcb_input_change_device_control_reply_t
2105  **/
2106 typedef struct xcb_input_change_device_control_reply_t {
2107     uint8_t  response_type;
2108     uint8_t  xi_reply_type;
2109     uint16_t sequence;
2110     uint32_t length;
2111     uint8_t  status;
2112     uint8_t  pad0[23];
2113 } xcb_input_change_device_control_reply_t;
2114 
2115 /**
2116  * @brief xcb_input_list_device_properties_cookie_t
2117  **/
2118 typedef struct xcb_input_list_device_properties_cookie_t {
2119     unsigned int sequence;
2120 } xcb_input_list_device_properties_cookie_t;
2121 
2122 /** Opcode for xcb_input_list_device_properties. */
2123 #define XCB_INPUT_LIST_DEVICE_PROPERTIES 36
2124 
2125 /**
2126  * @brief xcb_input_list_device_properties_request_t
2127  **/
2128 typedef struct xcb_input_list_device_properties_request_t {
2129     uint8_t  major_opcode;
2130     uint8_t  minor_opcode;
2131     uint16_t length;
2132     uint8_t  device_id;
2133     uint8_t  pad0[3];
2134 } xcb_input_list_device_properties_request_t;
2135 
2136 /**
2137  * @brief xcb_input_list_device_properties_reply_t
2138  **/
2139 typedef struct xcb_input_list_device_properties_reply_t {
2140     uint8_t  response_type;
2141     uint8_t  xi_reply_type;
2142     uint16_t sequence;
2143     uint32_t length;
2144     uint16_t num_atoms;
2145     uint8_t  pad0[22];
2146 } xcb_input_list_device_properties_reply_t;
2147 
2148 typedef enum xcb_input_property_format_t {
2149     XCB_INPUT_PROPERTY_FORMAT_8_BITS = 8,
2150     XCB_INPUT_PROPERTY_FORMAT_16_BITS = 16,
2151     XCB_INPUT_PROPERTY_FORMAT_32_BITS = 32
2152 } xcb_input_property_format_t;
2153 
2154 /**
2155  * @brief xcb_input_change_device_property_items_t
2156  **/
2157 typedef struct xcb_input_change_device_property_items_t {
2158     uint8_t  *data8;
2159     uint16_t *data16;
2160     uint32_t *data32;
2161 } xcb_input_change_device_property_items_t;
2162 
2163 /** Opcode for xcb_input_change_device_property. */
2164 #define XCB_INPUT_CHANGE_DEVICE_PROPERTY 37
2165 
2166 /**
2167  * @brief xcb_input_change_device_property_request_t
2168  **/
2169 typedef struct xcb_input_change_device_property_request_t {
2170     uint8_t    major_opcode;
2171     uint8_t    minor_opcode;
2172     uint16_t   length;
2173     xcb_atom_t property;
2174     xcb_atom_t type;
2175     uint8_t    device_id;
2176     uint8_t    format;
2177     uint8_t    mode;
2178     uint8_t    pad0;
2179     uint32_t   num_items;
2180 } xcb_input_change_device_property_request_t;
2181 
2182 /** Opcode for xcb_input_delete_device_property. */
2183 #define XCB_INPUT_DELETE_DEVICE_PROPERTY 38
2184 
2185 /**
2186  * @brief xcb_input_delete_device_property_request_t
2187  **/
2188 typedef struct xcb_input_delete_device_property_request_t {
2189     uint8_t    major_opcode;
2190     uint8_t    minor_opcode;
2191     uint16_t   length;
2192     xcb_atom_t property;
2193     uint8_t    device_id;
2194     uint8_t    pad0[3];
2195 } xcb_input_delete_device_property_request_t;
2196 
2197 /**
2198  * @brief xcb_input_get_device_property_cookie_t
2199  **/
2200 typedef struct xcb_input_get_device_property_cookie_t {
2201     unsigned int sequence;
2202 } xcb_input_get_device_property_cookie_t;
2203 
2204 /** Opcode for xcb_input_get_device_property. */
2205 #define XCB_INPUT_GET_DEVICE_PROPERTY 39
2206 
2207 /**
2208  * @brief xcb_input_get_device_property_request_t
2209  **/
2210 typedef struct xcb_input_get_device_property_request_t {
2211     uint8_t    major_opcode;
2212     uint8_t    minor_opcode;
2213     uint16_t   length;
2214     xcb_atom_t property;
2215     xcb_atom_t type;
2216     uint32_t   offset;
2217     uint32_t   len;
2218     uint8_t    device_id;
2219     uint8_t    _delete;
2220     uint8_t    pad0[2];
2221 } xcb_input_get_device_property_request_t;
2222 
2223 /**
2224  * @brief xcb_input_get_device_property_items_t
2225  **/
2226 typedef struct xcb_input_get_device_property_items_t {
2227     uint8_t  *data8;
2228     uint16_t *data16;
2229     uint32_t *data32;
2230 } xcb_input_get_device_property_items_t;
2231 
2232 /**
2233  * @brief xcb_input_get_device_property_reply_t
2234  **/
2235 typedef struct xcb_input_get_device_property_reply_t {
2236     uint8_t    response_type;
2237     uint8_t    xi_reply_type;
2238     uint16_t   sequence;
2239     uint32_t   length;
2240     xcb_atom_t type;
2241     uint32_t   bytes_after;
2242     uint32_t   num_items;
2243     uint8_t    format;
2244     uint8_t    device_id;
2245     uint8_t    pad0[10];
2246 } xcb_input_get_device_property_reply_t;
2247 
2248 typedef enum xcb_input_device_t {
2249     XCB_INPUT_DEVICE_ALL = 0,
2250     XCB_INPUT_DEVICE_ALL_MASTER = 1
2251 } xcb_input_device_t;
2252 
2253 /**
2254  * @brief xcb_input_group_info_t
2255  **/
2256 typedef struct xcb_input_group_info_t {
2257     uint8_t base;
2258     uint8_t latched;
2259     uint8_t locked;
2260     uint8_t effective;
2261 } xcb_input_group_info_t;
2262 
2263 /**
2264  * @brief xcb_input_group_info_iterator_t
2265  **/
2266 typedef struct xcb_input_group_info_iterator_t {
2267     xcb_input_group_info_t *data;
2268     int                     rem;
2269     int                     index;
2270 } xcb_input_group_info_iterator_t;
2271 
2272 /**
2273  * @brief xcb_input_modifier_info_t
2274  **/
2275 typedef struct xcb_input_modifier_info_t {
2276     uint32_t base;
2277     uint32_t latched;
2278     uint32_t locked;
2279     uint32_t effective;
2280 } xcb_input_modifier_info_t;
2281 
2282 /**
2283  * @brief xcb_input_modifier_info_iterator_t
2284  **/
2285 typedef struct xcb_input_modifier_info_iterator_t {
2286     xcb_input_modifier_info_t *data;
2287     int                        rem;
2288     int                        index;
2289 } xcb_input_modifier_info_iterator_t;
2290 
2291 /**
2292  * @brief xcb_input_xi_query_pointer_cookie_t
2293  **/
2294 typedef struct xcb_input_xi_query_pointer_cookie_t {
2295     unsigned int sequence;
2296 } xcb_input_xi_query_pointer_cookie_t;
2297 
2298 /** Opcode for xcb_input_xi_query_pointer. */
2299 #define XCB_INPUT_XI_QUERY_POINTER 40
2300 
2301 /**
2302  * @brief xcb_input_xi_query_pointer_request_t
2303  **/
2304 typedef struct xcb_input_xi_query_pointer_request_t {
2305     uint8_t               major_opcode;
2306     uint8_t               minor_opcode;
2307     uint16_t              length;
2308     xcb_window_t          window;
2309     xcb_input_device_id_t deviceid;
2310     uint8_t               pad0[2];
2311 } xcb_input_xi_query_pointer_request_t;
2312 
2313 /**
2314  * @brief xcb_input_xi_query_pointer_reply_t
2315  **/
2316 typedef struct xcb_input_xi_query_pointer_reply_t {
2317     uint8_t                   response_type;
2318     uint8_t                   pad0;
2319     uint16_t                  sequence;
2320     uint32_t                  length;
2321     xcb_window_t              root;
2322     xcb_window_t              child;
2323     xcb_input_fp1616_t        root_x;
2324     xcb_input_fp1616_t        root_y;
2325     xcb_input_fp1616_t        win_x;
2326     xcb_input_fp1616_t        win_y;
2327     uint8_t                   same_screen;
2328     uint8_t                   pad1;
2329     uint16_t                  buttons_len;
2330     xcb_input_modifier_info_t mods;
2331     xcb_input_group_info_t    group;
2332 } xcb_input_xi_query_pointer_reply_t;
2333 
2334 /** Opcode for xcb_input_xi_warp_pointer. */
2335 #define XCB_INPUT_XI_WARP_POINTER 41
2336 
2337 /**
2338  * @brief xcb_input_xi_warp_pointer_request_t
2339  **/
2340 typedef struct xcb_input_xi_warp_pointer_request_t {
2341     uint8_t               major_opcode;
2342     uint8_t               minor_opcode;
2343     uint16_t              length;
2344     xcb_window_t          src_win;
2345     xcb_window_t          dst_win;
2346     xcb_input_fp1616_t    src_x;
2347     xcb_input_fp1616_t    src_y;
2348     uint16_t              src_width;
2349     uint16_t              src_height;
2350     xcb_input_fp1616_t    dst_x;
2351     xcb_input_fp1616_t    dst_y;
2352     xcb_input_device_id_t deviceid;
2353     uint8_t               pad0[2];
2354 } xcb_input_xi_warp_pointer_request_t;
2355 
2356 /** Opcode for xcb_input_xi_change_cursor. */
2357 #define XCB_INPUT_XI_CHANGE_CURSOR 42
2358 
2359 /**
2360  * @brief xcb_input_xi_change_cursor_request_t
2361  **/
2362 typedef struct xcb_input_xi_change_cursor_request_t {
2363     uint8_t               major_opcode;
2364     uint8_t               minor_opcode;
2365     uint16_t              length;
2366     xcb_window_t          window;
2367     xcb_cursor_t          cursor;
2368     xcb_input_device_id_t deviceid;
2369     uint8_t               pad0[2];
2370 } xcb_input_xi_change_cursor_request_t;
2371 
2372 typedef enum xcb_input_hierarchy_change_type_t {
2373     XCB_INPUT_HIERARCHY_CHANGE_TYPE_ADD_MASTER = 1,
2374     XCB_INPUT_HIERARCHY_CHANGE_TYPE_REMOVE_MASTER = 2,
2375     XCB_INPUT_HIERARCHY_CHANGE_TYPE_ATTACH_SLAVE = 3,
2376     XCB_INPUT_HIERARCHY_CHANGE_TYPE_DETACH_SLAVE = 4
2377 } xcb_input_hierarchy_change_type_t;
2378 
2379 typedef enum xcb_input_change_mode_t {
2380     XCB_INPUT_CHANGE_MODE_ATTACH = 1,
2381     XCB_INPUT_CHANGE_MODE_FLOAT = 2
2382 } xcb_input_change_mode_t;
2383 
2384 /**
2385  * @brief xcb_input_add_master_t
2386  **/
2387 typedef struct xcb_input_add_master_t {
2388     uint16_t type;
2389     uint16_t len;
2390     uint16_t name_len;
2391     uint8_t  send_core;
2392     uint8_t  enable;
2393 } xcb_input_add_master_t;
2394 
2395 /**
2396  * @brief xcb_input_add_master_iterator_t
2397  **/
2398 typedef struct xcb_input_add_master_iterator_t {
2399     xcb_input_add_master_t *data;
2400     int                     rem;
2401     int                     index;
2402 } xcb_input_add_master_iterator_t;
2403 
2404 /**
2405  * @brief xcb_input_remove_master_t
2406  **/
2407 typedef struct xcb_input_remove_master_t {
2408     uint16_t              type;
2409     uint16_t              len;
2410     xcb_input_device_id_t deviceid;
2411     uint8_t               return_mode;
2412     uint8_t               pad0;
2413     xcb_input_device_id_t return_pointer;
2414     xcb_input_device_id_t return_keyboard;
2415 } xcb_input_remove_master_t;
2416 
2417 /**
2418  * @brief xcb_input_remove_master_iterator_t
2419  **/
2420 typedef struct xcb_input_remove_master_iterator_t {
2421     xcb_input_remove_master_t *data;
2422     int                        rem;
2423     int                        index;
2424 } xcb_input_remove_master_iterator_t;
2425 
2426 /**
2427  * @brief xcb_input_attach_slave_t
2428  **/
2429 typedef struct xcb_input_attach_slave_t {
2430     uint16_t              type;
2431     uint16_t              len;
2432     xcb_input_device_id_t deviceid;
2433     xcb_input_device_id_t master;
2434 } xcb_input_attach_slave_t;
2435 
2436 /**
2437  * @brief xcb_input_attach_slave_iterator_t
2438  **/
2439 typedef struct xcb_input_attach_slave_iterator_t {
2440     xcb_input_attach_slave_t *data;
2441     int                       rem;
2442     int                       index;
2443 } xcb_input_attach_slave_iterator_t;
2444 
2445 /**
2446  * @brief xcb_input_detach_slave_t
2447  **/
2448 typedef struct xcb_input_detach_slave_t {
2449     uint16_t              type;
2450     uint16_t              len;
2451     xcb_input_device_id_t deviceid;
2452     uint8_t               pad0[2];
2453 } xcb_input_detach_slave_t;
2454 
2455 /**
2456  * @brief xcb_input_detach_slave_iterator_t
2457  **/
2458 typedef struct xcb_input_detach_slave_iterator_t {
2459     xcb_input_detach_slave_t *data;
2460     int                       rem;
2461     int                       index;
2462 } xcb_input_detach_slave_iterator_t;
2463 
2464 /**
2465  * @brief xcb_input_hierarchy_change_data_t
2466  **/
2467 typedef struct xcb_input_hierarchy_change_data_t {
2468     struct {
2469         uint16_t              name_len;
2470         uint8_t               send_core;
2471         uint8_t               enable;
2472         char                 *name;
2473     } add_master;
2474     struct {
2475         xcb_input_device_id_t deviceid;
2476         uint8_t               return_mode;
2477         uint8_t               pad1;
2478         xcb_input_device_id_t return_pointer;
2479         xcb_input_device_id_t return_keyboard;
2480     } remove_master;
2481     struct {
2482         xcb_input_device_id_t deviceid;
2483         xcb_input_device_id_t master;
2484     } attach_slave;
2485     struct {
2486         xcb_input_device_id_t deviceid;
2487         uint8_t               pad2[2];
2488     } detach_slave;
2489 } xcb_input_hierarchy_change_data_t;
2490 
2491 /**
2492  * @brief xcb_input_hierarchy_change_t
2493  **/
2494 typedef struct xcb_input_hierarchy_change_t {
2495     uint16_t type;
2496     uint16_t len;
2497 } xcb_input_hierarchy_change_t;
2498 
2499 void *
2500 xcb_input_hierarchy_change_data (const xcb_input_hierarchy_change_t *R);
2501 
2502 /**
2503  * @brief xcb_input_hierarchy_change_iterator_t
2504  **/
2505 typedef struct xcb_input_hierarchy_change_iterator_t {
2506     xcb_input_hierarchy_change_t *data;
2507     int                           rem;
2508     int                           index;
2509 } xcb_input_hierarchy_change_iterator_t;
2510 
2511 /** Opcode for xcb_input_xi_change_hierarchy. */
2512 #define XCB_INPUT_XI_CHANGE_HIERARCHY 43
2513 
2514 /**
2515  * @brief xcb_input_xi_change_hierarchy_request_t
2516  **/
2517 typedef struct xcb_input_xi_change_hierarchy_request_t {
2518     uint8_t  major_opcode;
2519     uint8_t  minor_opcode;
2520     uint16_t length;
2521     uint8_t  num_changes;
2522     uint8_t  pad0[3];
2523 } xcb_input_xi_change_hierarchy_request_t;
2524 
2525 /** Opcode for xcb_input_xi_set_client_pointer. */
2526 #define XCB_INPUT_XI_SET_CLIENT_POINTER 44
2527 
2528 /**
2529  * @brief xcb_input_xi_set_client_pointer_request_t
2530  **/
2531 typedef struct xcb_input_xi_set_client_pointer_request_t {
2532     uint8_t               major_opcode;
2533     uint8_t               minor_opcode;
2534     uint16_t              length;
2535     xcb_window_t          window;
2536     xcb_input_device_id_t deviceid;
2537     uint8_t               pad0[2];
2538 } xcb_input_xi_set_client_pointer_request_t;
2539 
2540 /**
2541  * @brief xcb_input_xi_get_client_pointer_cookie_t
2542  **/
2543 typedef struct xcb_input_xi_get_client_pointer_cookie_t {
2544     unsigned int sequence;
2545 } xcb_input_xi_get_client_pointer_cookie_t;
2546 
2547 /** Opcode for xcb_input_xi_get_client_pointer. */
2548 #define XCB_INPUT_XI_GET_CLIENT_POINTER 45
2549 
2550 /**
2551  * @brief xcb_input_xi_get_client_pointer_request_t
2552  **/
2553 typedef struct xcb_input_xi_get_client_pointer_request_t {
2554     uint8_t      major_opcode;
2555     uint8_t      minor_opcode;
2556     uint16_t     length;
2557     xcb_window_t window;
2558 } xcb_input_xi_get_client_pointer_request_t;
2559 
2560 /**
2561  * @brief xcb_input_xi_get_client_pointer_reply_t
2562  **/
2563 typedef struct xcb_input_xi_get_client_pointer_reply_t {
2564     uint8_t               response_type;
2565     uint8_t               pad0;
2566     uint16_t              sequence;
2567     uint32_t              length;
2568     uint8_t               set;
2569     uint8_t               pad1;
2570     xcb_input_device_id_t deviceid;
2571     uint8_t               pad2[20];
2572 } xcb_input_xi_get_client_pointer_reply_t;
2573 
2574 typedef enum xcb_input_xi_event_mask_t {
2575     XCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED = 2,
2576     XCB_INPUT_XI_EVENT_MASK_KEY_PRESS = 4,
2577     XCB_INPUT_XI_EVENT_MASK_KEY_RELEASE = 8,
2578     XCB_INPUT_XI_EVENT_MASK_BUTTON_PRESS = 16,
2579     XCB_INPUT_XI_EVENT_MASK_BUTTON_RELEASE = 32,
2580     XCB_INPUT_XI_EVENT_MASK_MOTION = 64,
2581     XCB_INPUT_XI_EVENT_MASK_ENTER = 128,
2582     XCB_INPUT_XI_EVENT_MASK_LEAVE = 256,
2583     XCB_INPUT_XI_EVENT_MASK_FOCUS_IN = 512,
2584     XCB_INPUT_XI_EVENT_MASK_FOCUS_OUT = 1024,
2585     XCB_INPUT_XI_EVENT_MASK_HIERARCHY = 2048,
2586     XCB_INPUT_XI_EVENT_MASK_PROPERTY = 4096,
2587     XCB_INPUT_XI_EVENT_MASK_RAW_KEY_PRESS = 8192,
2588     XCB_INPUT_XI_EVENT_MASK_RAW_KEY_RELEASE = 16384,
2589     XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_PRESS = 32768,
2590     XCB_INPUT_XI_EVENT_MASK_RAW_BUTTON_RELEASE = 65536,
2591     XCB_INPUT_XI_EVENT_MASK_RAW_MOTION = 131072,
2592     XCB_INPUT_XI_EVENT_MASK_TOUCH_BEGIN = 262144,
2593     XCB_INPUT_XI_EVENT_MASK_TOUCH_UPDATE = 524288,
2594     XCB_INPUT_XI_EVENT_MASK_TOUCH_END = 1048576,
2595     XCB_INPUT_XI_EVENT_MASK_TOUCH_OWNERSHIP = 2097152,
2596     XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_BEGIN = 4194304,
2597     XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_UPDATE = 8388608,
2598     XCB_INPUT_XI_EVENT_MASK_RAW_TOUCH_END = 16777216,
2599     XCB_INPUT_XI_EVENT_MASK_BARRIER_HIT = 33554432,
2600     XCB_INPUT_XI_EVENT_MASK_BARRIER_LEAVE = 67108864
2601 } xcb_input_xi_event_mask_t;
2602 
2603 /**
2604  * @brief xcb_input_event_mask_t
2605  **/
2606 typedef struct xcb_input_event_mask_t {
2607     xcb_input_device_id_t deviceid;
2608     uint16_t              mask_len;
2609 } xcb_input_event_mask_t;
2610 
2611 /**
2612  * @brief xcb_input_event_mask_iterator_t
2613  **/
2614 typedef struct xcb_input_event_mask_iterator_t {
2615     xcb_input_event_mask_t *data;
2616     int                     rem;
2617     int                     index;
2618 } xcb_input_event_mask_iterator_t;
2619 
2620 /** Opcode for xcb_input_xi_select_events. */
2621 #define XCB_INPUT_XI_SELECT_EVENTS 46
2622 
2623 /**
2624  * @brief xcb_input_xi_select_events_request_t
2625  **/
2626 typedef struct xcb_input_xi_select_events_request_t {
2627     uint8_t      major_opcode;
2628     uint8_t      minor_opcode;
2629     uint16_t     length;
2630     xcb_window_t window;
2631     uint16_t     num_mask;
2632     uint8_t      pad0[2];
2633 } xcb_input_xi_select_events_request_t;
2634 
2635 /**
2636  * @brief xcb_input_xi_query_version_cookie_t
2637  **/
2638 typedef struct xcb_input_xi_query_version_cookie_t {
2639     unsigned int sequence;
2640 } xcb_input_xi_query_version_cookie_t;
2641 
2642 /** Opcode for xcb_input_xi_query_version. */
2643 #define XCB_INPUT_XI_QUERY_VERSION 47
2644 
2645 /**
2646  * @brief xcb_input_xi_query_version_request_t
2647  **/
2648 typedef struct xcb_input_xi_query_version_request_t {
2649     uint8_t  major_opcode;
2650     uint8_t  minor_opcode;
2651     uint16_t length;
2652     uint16_t major_version;
2653     uint16_t minor_version;
2654 } xcb_input_xi_query_version_request_t;
2655 
2656 /**
2657  * @brief xcb_input_xi_query_version_reply_t
2658  **/
2659 typedef struct xcb_input_xi_query_version_reply_t {
2660     uint8_t  response_type;
2661     uint8_t  pad0;
2662     uint16_t sequence;
2663     uint32_t length;
2664     uint16_t major_version;
2665     uint16_t minor_version;
2666     uint8_t  pad1[20];
2667 } xcb_input_xi_query_version_reply_t;
2668 
2669 typedef enum xcb_input_device_class_type_t {
2670     XCB_INPUT_DEVICE_CLASS_TYPE_KEY = 0,
2671     XCB_INPUT_DEVICE_CLASS_TYPE_BUTTON = 1,
2672     XCB_INPUT_DEVICE_CLASS_TYPE_VALUATOR = 2,
2673     XCB_INPUT_DEVICE_CLASS_TYPE_SCROLL = 3,
2674     XCB_INPUT_DEVICE_CLASS_TYPE_TOUCH = 8
2675 } xcb_input_device_class_type_t;
2676 
2677 typedef enum xcb_input_device_type_t {
2678     XCB_INPUT_DEVICE_TYPE_MASTER_POINTER = 1,
2679     XCB_INPUT_DEVICE_TYPE_MASTER_KEYBOARD = 2,
2680     XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER = 3,
2681     XCB_INPUT_DEVICE_TYPE_SLAVE_KEYBOARD = 4,
2682     XCB_INPUT_DEVICE_TYPE_FLOATING_SLAVE = 5
2683 } xcb_input_device_type_t;
2684 
2685 typedef enum xcb_input_scroll_flags_t {
2686     XCB_INPUT_SCROLL_FLAGS_NO_EMULATION = 1,
2687     XCB_INPUT_SCROLL_FLAGS_PREFERRED = 2
2688 } xcb_input_scroll_flags_t;
2689 
2690 typedef enum xcb_input_scroll_type_t {
2691     XCB_INPUT_SCROLL_TYPE_VERTICAL = 1,
2692     XCB_INPUT_SCROLL_TYPE_HORIZONTAL = 2
2693 } xcb_input_scroll_type_t;
2694 
2695 typedef enum xcb_input_touch_mode_t {
2696     XCB_INPUT_TOUCH_MODE_DIRECT = 1,
2697     XCB_INPUT_TOUCH_MODE_DEPENDENT = 2
2698 } xcb_input_touch_mode_t;
2699 
2700 /**
2701  * @brief xcb_input_button_class_t
2702  **/
2703 typedef struct xcb_input_button_class_t {
2704     uint16_t              type;
2705     uint16_t              len;
2706     xcb_input_device_id_t sourceid;
2707     uint16_t              num_buttons;
2708 } xcb_input_button_class_t;
2709 
2710 /**
2711  * @brief xcb_input_button_class_iterator_t
2712  **/
2713 typedef struct xcb_input_button_class_iterator_t {
2714     xcb_input_button_class_t *data;
2715     int                       rem;
2716     int                       index;
2717 } xcb_input_button_class_iterator_t;
2718 
2719 /**
2720  * @brief xcb_input_key_class_t
2721  **/
2722 typedef struct xcb_input_key_class_t {
2723     uint16_t              type;
2724     uint16_t              len;
2725     xcb_input_device_id_t sourceid;
2726     uint16_t              num_keys;
2727 } xcb_input_key_class_t;
2728 
2729 /**
2730  * @brief xcb_input_key_class_iterator_t
2731  **/
2732 typedef struct xcb_input_key_class_iterator_t {
2733     xcb_input_key_class_t *data;
2734     int                    rem;
2735     int                    index;
2736 } xcb_input_key_class_iterator_t;
2737 
2738 /**
2739  * @brief xcb_input_scroll_class_t
2740  **/
2741 typedef struct xcb_input_scroll_class_t {
2742     uint16_t              type;
2743     uint16_t              len;
2744     xcb_input_device_id_t sourceid;
2745     uint16_t              number;
2746     uint16_t              scroll_type;
2747     uint8_t               pad0[2];
2748     uint32_t              flags;
2749     xcb_input_fp3232_t    increment;
2750 } xcb_input_scroll_class_t;
2751 
2752 /**
2753  * @brief xcb_input_scroll_class_iterator_t
2754  **/
2755 typedef struct xcb_input_scroll_class_iterator_t {
2756     xcb_input_scroll_class_t *data;
2757     int                       rem;
2758     int                       index;
2759 } xcb_input_scroll_class_iterator_t;
2760 
2761 /**
2762  * @brief xcb_input_touch_class_t
2763  **/
2764 typedef struct xcb_input_touch_class_t {
2765     uint16_t              type;
2766     uint16_t              len;
2767     xcb_input_device_id_t sourceid;
2768     uint8_t               mode;
2769     uint8_t               num_touches;
2770 } xcb_input_touch_class_t;
2771 
2772 /**
2773  * @brief xcb_input_touch_class_iterator_t
2774  **/
2775 typedef struct xcb_input_touch_class_iterator_t {
2776     xcb_input_touch_class_t *data;
2777     int                      rem;
2778     int                      index;
2779 } xcb_input_touch_class_iterator_t;
2780 
2781 /**
2782  * @brief xcb_input_valuator_class_t
2783  **/
2784 typedef struct xcb_input_valuator_class_t {
2785     uint16_t              type;
2786     uint16_t              len;
2787     xcb_input_device_id_t sourceid;
2788     uint16_t              number;
2789     xcb_atom_t            label;
2790     xcb_input_fp3232_t    min;
2791     xcb_input_fp3232_t    max;
2792     xcb_input_fp3232_t    value;
2793     uint32_t              resolution;
2794     uint8_t               mode;
2795     uint8_t               pad0[3];
2796 } xcb_input_valuator_class_t;
2797 
2798 /**
2799  * @brief xcb_input_valuator_class_iterator_t
2800  **/
2801 typedef struct xcb_input_valuator_class_iterator_t {
2802     xcb_input_valuator_class_t *data;
2803     int                         rem;
2804     int                         index;
2805 } xcb_input_valuator_class_iterator_t;
2806 
2807 /**
2808  * @brief xcb_input_device_class_data_t
2809  **/
2810 typedef struct xcb_input_device_class_data_t {
2811     struct {
2812         uint16_t           num_keys;
2813         uint32_t          *keys;
2814     } key;
2815     struct {
2816         uint16_t           num_buttons;
2817         uint32_t          *state;
2818         xcb_atom_t        *labels;
2819     } button;
2820     struct {
2821         uint16_t           number;
2822         xcb_atom_t         label;
2823         xcb_input_fp3232_t min;
2824         xcb_input_fp3232_t max;
2825         xcb_input_fp3232_t value;
2826         uint32_t           resolution;
2827         uint8_t            mode;
2828         uint8_t            pad0[3];
2829     } valuator;
2830     struct {
2831         uint16_t           number;
2832         uint16_t           scroll_type;
2833         uint8_t            pad1[2];
2834         uint32_t           flags;
2835         xcb_input_fp3232_t increment;
2836     } scroll;
2837     struct {
2838         uint8_t            mode;
2839         uint8_t            num_touches;
2840     } touch;
2841 } xcb_input_device_class_data_t;
2842 
2843 /**
2844  * @brief xcb_input_device_class_t
2845  **/
2846 typedef struct xcb_input_device_class_t {
2847     uint16_t              type;
2848     uint16_t              len;
2849     xcb_input_device_id_t sourceid;
2850 } xcb_input_device_class_t;
2851 
2852 void *
2853 xcb_input_device_class_data (const xcb_input_device_class_t *R);
2854 
2855 /**
2856  * @brief xcb_input_device_class_iterator_t
2857  **/
2858 typedef struct xcb_input_device_class_iterator_t {
2859     xcb_input_device_class_t *data;
2860     int                       rem;
2861     int                       index;
2862 } xcb_input_device_class_iterator_t;
2863 
2864 /**
2865  * @brief xcb_input_xi_device_info_t
2866  **/
2867 typedef struct xcb_input_xi_device_info_t {
2868     xcb_input_device_id_t deviceid;
2869     uint16_t              type;
2870     xcb_input_device_id_t attachment;
2871     uint16_t              num_classes;
2872     uint16_t              name_len;
2873     uint8_t               enabled;
2874     uint8_t               pad0;
2875 } xcb_input_xi_device_info_t;
2876 
2877 /**
2878  * @brief xcb_input_xi_device_info_iterator_t
2879  **/
2880 typedef struct xcb_input_xi_device_info_iterator_t {
2881     xcb_input_xi_device_info_t *data;
2882     int                         rem;
2883     int                         index;
2884 } xcb_input_xi_device_info_iterator_t;
2885 
2886 /**
2887  * @brief xcb_input_xi_query_device_cookie_t
2888  **/
2889 typedef struct xcb_input_xi_query_device_cookie_t {
2890     unsigned int sequence;
2891 } xcb_input_xi_query_device_cookie_t;
2892 
2893 /** Opcode for xcb_input_xi_query_device. */
2894 #define XCB_INPUT_XI_QUERY_DEVICE 48
2895 
2896 /**
2897  * @brief xcb_input_xi_query_device_request_t
2898  **/
2899 typedef struct xcb_input_xi_query_device_request_t {
2900     uint8_t               major_opcode;
2901     uint8_t               minor_opcode;
2902     uint16_t              length;
2903     xcb_input_device_id_t deviceid;
2904     uint8_t               pad0[2];
2905 } xcb_input_xi_query_device_request_t;
2906 
2907 /**
2908  * @brief xcb_input_xi_query_device_reply_t
2909  **/
2910 typedef struct xcb_input_xi_query_device_reply_t {
2911     uint8_t  response_type;
2912     uint8_t  pad0;
2913     uint16_t sequence;
2914     uint32_t length;
2915     uint16_t num_infos;
2916     uint8_t  pad1[22];
2917 } xcb_input_xi_query_device_reply_t;
2918 
2919 /** Opcode for xcb_input_xi_set_focus. */
2920 #define XCB_INPUT_XI_SET_FOCUS 49
2921 
2922 /**
2923  * @brief xcb_input_xi_set_focus_request_t
2924  **/
2925 typedef struct xcb_input_xi_set_focus_request_t {
2926     uint8_t               major_opcode;
2927     uint8_t               minor_opcode;
2928     uint16_t              length;
2929     xcb_window_t          window;
2930     xcb_timestamp_t       time;
2931     xcb_input_device_id_t deviceid;
2932     uint8_t               pad0[2];
2933 } xcb_input_xi_set_focus_request_t;
2934 
2935 /**
2936  * @brief xcb_input_xi_get_focus_cookie_t
2937  **/
2938 typedef struct xcb_input_xi_get_focus_cookie_t {
2939     unsigned int sequence;
2940 } xcb_input_xi_get_focus_cookie_t;
2941 
2942 /** Opcode for xcb_input_xi_get_focus. */
2943 #define XCB_INPUT_XI_GET_FOCUS 50
2944 
2945 /**
2946  * @brief xcb_input_xi_get_focus_request_t
2947  **/
2948 typedef struct xcb_input_xi_get_focus_request_t {
2949     uint8_t               major_opcode;
2950     uint8_t               minor_opcode;
2951     uint16_t              length;
2952     xcb_input_device_id_t deviceid;
2953     uint8_t               pad0[2];
2954 } xcb_input_xi_get_focus_request_t;
2955 
2956 /**
2957  * @brief xcb_input_xi_get_focus_reply_t
2958  **/
2959 typedef struct xcb_input_xi_get_focus_reply_t {
2960     uint8_t      response_type;
2961     uint8_t      pad0;
2962     uint16_t     sequence;
2963     uint32_t     length;
2964     xcb_window_t focus;
2965     uint8_t      pad1[20];
2966 } xcb_input_xi_get_focus_reply_t;
2967 
2968 typedef enum xcb_input_grab_owner_t {
2969     XCB_INPUT_GRAB_OWNER_NO_OWNER = 0,
2970     XCB_INPUT_GRAB_OWNER_OWNER = 1
2971 } xcb_input_grab_owner_t;
2972 
2973 /**
2974  * @brief xcb_input_xi_grab_device_cookie_t
2975  **/
2976 typedef struct xcb_input_xi_grab_device_cookie_t {
2977     unsigned int sequence;
2978 } xcb_input_xi_grab_device_cookie_t;
2979 
2980 /** Opcode for xcb_input_xi_grab_device. */
2981 #define XCB_INPUT_XI_GRAB_DEVICE 51
2982 
2983 /**
2984  * @brief xcb_input_xi_grab_device_request_t
2985  **/
2986 typedef struct xcb_input_xi_grab_device_request_t {
2987     uint8_t               major_opcode;
2988     uint8_t               minor_opcode;
2989     uint16_t              length;
2990     xcb_window_t          window;
2991     xcb_timestamp_t       time;
2992     xcb_cursor_t          cursor;
2993     xcb_input_device_id_t deviceid;
2994     uint8_t               mode;
2995     uint8_t               paired_device_mode;
2996     uint8_t               owner_events;
2997     uint8_t               pad0;
2998     uint16_t              mask_len;
2999 } xcb_input_xi_grab_device_request_t;
3000 
3001 /**
3002  * @brief xcb_input_xi_grab_device_reply_t
3003  **/
3004 typedef struct xcb_input_xi_grab_device_reply_t {
3005     uint8_t  response_type;
3006     uint8_t  pad0;
3007     uint16_t sequence;
3008     uint32_t length;
3009     uint8_t  status;
3010     uint8_t  pad1[23];
3011 } xcb_input_xi_grab_device_reply_t;
3012 
3013 /** Opcode for xcb_input_xi_ungrab_device. */
3014 #define XCB_INPUT_XI_UNGRAB_DEVICE 52
3015 
3016 /**
3017  * @brief xcb_input_xi_ungrab_device_request_t
3018  **/
3019 typedef struct xcb_input_xi_ungrab_device_request_t {
3020     uint8_t               major_opcode;
3021     uint8_t               minor_opcode;
3022     uint16_t              length;
3023     xcb_timestamp_t       time;
3024     xcb_input_device_id_t deviceid;
3025     uint8_t               pad0[2];
3026 } xcb_input_xi_ungrab_device_request_t;
3027 
3028 typedef enum xcb_input_event_mode_t {
3029     XCB_INPUT_EVENT_MODE_ASYNC_DEVICE = 0,
3030     XCB_INPUT_EVENT_MODE_SYNC_DEVICE = 1,
3031     XCB_INPUT_EVENT_MODE_REPLAY_DEVICE = 2,
3032     XCB_INPUT_EVENT_MODE_ASYNC_PAIRED_DEVICE = 3,
3033     XCB_INPUT_EVENT_MODE_ASYNC_PAIR = 4,
3034     XCB_INPUT_EVENT_MODE_SYNC_PAIR = 5,
3035     XCB_INPUT_EVENT_MODE_ACCEPT_TOUCH = 6,
3036     XCB_INPUT_EVENT_MODE_REJECT_TOUCH = 7
3037 } xcb_input_event_mode_t;
3038 
3039 /** Opcode for xcb_input_xi_allow_events. */
3040 #define XCB_INPUT_XI_ALLOW_EVENTS 53
3041 
3042 /**
3043  * @brief xcb_input_xi_allow_events_request_t
3044  **/
3045 typedef struct xcb_input_xi_allow_events_request_t {
3046     uint8_t               major_opcode;
3047     uint8_t               minor_opcode;
3048     uint16_t              length;
3049     xcb_timestamp_t       time;
3050     xcb_input_device_id_t deviceid;
3051     uint8_t               event_mode;
3052     uint8_t               pad0;
3053     uint32_t              touchid;
3054     xcb_window_t          grab_window;
3055 } xcb_input_xi_allow_events_request_t;
3056 
3057 typedef enum xcb_input_grab_mode_22_t {
3058     XCB_INPUT_GRAB_MODE_22_SYNC = 0,
3059     XCB_INPUT_GRAB_MODE_22_ASYNC = 1,
3060     XCB_INPUT_GRAB_MODE_22_TOUCH = 2
3061 } xcb_input_grab_mode_22_t;
3062 
3063 typedef enum xcb_input_grab_type_t {
3064     XCB_INPUT_GRAB_TYPE_BUTTON = 0,
3065     XCB_INPUT_GRAB_TYPE_KEYCODE = 1,
3066     XCB_INPUT_GRAB_TYPE_ENTER = 2,
3067     XCB_INPUT_GRAB_TYPE_FOCUS_IN = 3,
3068     XCB_INPUT_GRAB_TYPE_TOUCH_BEGIN = 4
3069 } xcb_input_grab_type_t;
3070 
3071 typedef enum xcb_input_modifier_mask_t {
3072     XCB_INPUT_MODIFIER_MASK_ANY = 2147483648
3073 } xcb_input_modifier_mask_t;
3074 
3075 /**
3076  * @brief xcb_input_grab_modifier_info_t
3077  **/
3078 typedef struct xcb_input_grab_modifier_info_t {
3079     uint32_t modifiers;
3080     uint8_t  status;
3081     uint8_t  pad0[3];
3082 } xcb_input_grab_modifier_info_t;
3083 
3084 /**
3085  * @brief xcb_input_grab_modifier_info_iterator_t
3086  **/
3087 typedef struct xcb_input_grab_modifier_info_iterator_t {
3088     xcb_input_grab_modifier_info_t *data;
3089     int                             rem;
3090     int                             index;
3091 } xcb_input_grab_modifier_info_iterator_t;
3092 
3093 /**
3094  * @brief xcb_input_xi_passive_grab_device_cookie_t
3095  **/
3096 typedef struct xcb_input_xi_passive_grab_device_cookie_t {
3097     unsigned int sequence;
3098 } xcb_input_xi_passive_grab_device_cookie_t;
3099 
3100 /** Opcode for xcb_input_xi_passive_grab_device. */
3101 #define XCB_INPUT_XI_PASSIVE_GRAB_DEVICE 54
3102 
3103 /**
3104  * @brief xcb_input_xi_passive_grab_device_request_t
3105  **/
3106 typedef struct xcb_input_xi_passive_grab_device_request_t {
3107     uint8_t               major_opcode;
3108     uint8_t               minor_opcode;
3109     uint16_t              length;
3110     xcb_timestamp_t       time;
3111     xcb_window_t          grab_window;
3112     xcb_cursor_t          cursor;
3113     uint32_t              detail;
3114     xcb_input_device_id_t deviceid;
3115     uint16_t              num_modifiers;
3116     uint16_t              mask_len;
3117     uint8_t               grab_type;
3118     uint8_t               grab_mode;
3119     uint8_t               paired_device_mode;
3120     uint8_t               owner_events;
3121     uint8_t               pad0[2];
3122 } xcb_input_xi_passive_grab_device_request_t;
3123 
3124 /**
3125  * @brief xcb_input_xi_passive_grab_device_reply_t
3126  **/
3127 typedef struct xcb_input_xi_passive_grab_device_reply_t {
3128     uint8_t  response_type;
3129     uint8_t  pad0;
3130     uint16_t sequence;
3131     uint32_t length;
3132     uint16_t num_modifiers;
3133     uint8_t  pad1[22];
3134 } xcb_input_xi_passive_grab_device_reply_t;
3135 
3136 /** Opcode for xcb_input_xi_passive_ungrab_device. */
3137 #define XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE 55
3138 
3139 /**
3140  * @brief xcb_input_xi_passive_ungrab_device_request_t
3141  **/
3142 typedef struct xcb_input_xi_passive_ungrab_device_request_t {
3143     uint8_t               major_opcode;
3144     uint8_t               minor_opcode;
3145     uint16_t              length;
3146     xcb_window_t          grab_window;
3147     uint32_t              detail;
3148     xcb_input_device_id_t deviceid;
3149     uint16_t              num_modifiers;
3150     uint8_t               grab_type;
3151     uint8_t               pad0[3];
3152 } xcb_input_xi_passive_ungrab_device_request_t;
3153 
3154 /**
3155  * @brief xcb_input_xi_list_properties_cookie_t
3156  **/
3157 typedef struct xcb_input_xi_list_properties_cookie_t {
3158     unsigned int sequence;
3159 } xcb_input_xi_list_properties_cookie_t;
3160 
3161 /** Opcode for xcb_input_xi_list_properties. */
3162 #define XCB_INPUT_XI_LIST_PROPERTIES 56
3163 
3164 /**
3165  * @brief xcb_input_xi_list_properties_request_t
3166  **/
3167 typedef struct xcb_input_xi_list_properties_request_t {
3168     uint8_t               major_opcode;
3169     uint8_t               minor_opcode;
3170     uint16_t              length;
3171     xcb_input_device_id_t deviceid;
3172     uint8_t               pad0[2];
3173 } xcb_input_xi_list_properties_request_t;
3174 
3175 /**
3176  * @brief xcb_input_xi_list_properties_reply_t
3177  **/
3178 typedef struct xcb_input_xi_list_properties_reply_t {
3179     uint8_t  response_type;
3180     uint8_t  pad0;
3181     uint16_t sequence;
3182     uint32_t length;
3183     uint16_t num_properties;
3184     uint8_t  pad1[22];
3185 } xcb_input_xi_list_properties_reply_t;
3186 
3187 /**
3188  * @brief xcb_input_xi_change_property_items_t
3189  **/
3190 typedef struct xcb_input_xi_change_property_items_t {
3191     uint8_t  *data8;
3192     uint16_t *data16;
3193     uint32_t *data32;
3194 } xcb_input_xi_change_property_items_t;
3195 
3196 /** Opcode for xcb_input_xi_change_property. */
3197 #define XCB_INPUT_XI_CHANGE_PROPERTY 57
3198 
3199 /**
3200  * @brief xcb_input_xi_change_property_request_t
3201  **/
3202 typedef struct xcb_input_xi_change_property_request_t {
3203     uint8_t               major_opcode;
3204     uint8_t               minor_opcode;
3205     uint16_t              length;
3206     xcb_input_device_id_t deviceid;
3207     uint8_t               mode;
3208     uint8_t               format;
3209     xcb_atom_t            property;
3210     xcb_atom_t            type;
3211     uint32_t              num_items;
3212 } xcb_input_xi_change_property_request_t;
3213 
3214 /** Opcode for xcb_input_xi_delete_property. */
3215 #define XCB_INPUT_XI_DELETE_PROPERTY 58
3216 
3217 /**
3218  * @brief xcb_input_xi_delete_property_request_t
3219  **/
3220 typedef struct xcb_input_xi_delete_property_request_t {
3221     uint8_t               major_opcode;
3222     uint8_t               minor_opcode;
3223     uint16_t              length;
3224     xcb_input_device_id_t deviceid;
3225     uint8_t               pad0[2];
3226     xcb_atom_t            property;
3227 } xcb_input_xi_delete_property_request_t;
3228 
3229 /**
3230  * @brief xcb_input_xi_get_property_cookie_t
3231  **/
3232 typedef struct xcb_input_xi_get_property_cookie_t {
3233     unsigned int sequence;
3234 } xcb_input_xi_get_property_cookie_t;
3235 
3236 /** Opcode for xcb_input_xi_get_property. */
3237 #define XCB_INPUT_XI_GET_PROPERTY 59
3238 
3239 /**
3240  * @brief xcb_input_xi_get_property_request_t
3241  **/
3242 typedef struct xcb_input_xi_get_property_request_t {
3243     uint8_t               major_opcode;
3244     uint8_t               minor_opcode;
3245     uint16_t              length;
3246     xcb_input_device_id_t deviceid;
3247     uint8_t               _delete;
3248     uint8_t               pad0;
3249     xcb_atom_t            property;
3250     xcb_atom_t            type;
3251     uint32_t              offset;
3252     uint32_t              len;
3253 } xcb_input_xi_get_property_request_t;
3254 
3255 /**
3256  * @brief xcb_input_xi_get_property_items_t
3257  **/
3258 typedef struct xcb_input_xi_get_property_items_t {
3259     uint8_t  *data8;
3260     uint16_t *data16;
3261     uint32_t *data32;
3262 } xcb_input_xi_get_property_items_t;
3263 
3264 /**
3265  * @brief xcb_input_xi_get_property_reply_t
3266  **/
3267 typedef struct xcb_input_xi_get_property_reply_t {
3268     uint8_t    response_type;
3269     uint8_t    pad0;
3270     uint16_t   sequence;
3271     uint32_t   length;
3272     xcb_atom_t type;
3273     uint32_t   bytes_after;
3274     uint32_t   num_items;
3275     uint8_t    format;
3276     uint8_t    pad1[11];
3277 } xcb_input_xi_get_property_reply_t;
3278 
3279 /**
3280  * @brief xcb_input_xi_get_selected_events_cookie_t
3281  **/
3282 typedef struct xcb_input_xi_get_selected_events_cookie_t {
3283     unsigned int sequence;
3284 } xcb_input_xi_get_selected_events_cookie_t;
3285 
3286 /** Opcode for xcb_input_xi_get_selected_events. */
3287 #define XCB_INPUT_XI_GET_SELECTED_EVENTS 60
3288 
3289 /**
3290  * @brief xcb_input_xi_get_selected_events_request_t
3291  **/
3292 typedef struct xcb_input_xi_get_selected_events_request_t {
3293     uint8_t      major_opcode;
3294     uint8_t      minor_opcode;
3295     uint16_t     length;
3296     xcb_window_t window;
3297 } xcb_input_xi_get_selected_events_request_t;
3298 
3299 /**
3300  * @brief xcb_input_xi_get_selected_events_reply_t
3301  **/
3302 typedef struct xcb_input_xi_get_selected_events_reply_t {
3303     uint8_t  response_type;
3304     uint8_t  pad0;
3305     uint16_t sequence;
3306     uint32_t length;
3307     uint16_t num_masks;
3308     uint8_t  pad1[22];
3309 } xcb_input_xi_get_selected_events_reply_t;
3310 
3311 /** Opcode for xcb_input_device_valuator. */
3312 #define XCB_INPUT_DEVICE_VALUATOR 0
3313 
3314 /**
3315  * @brief xcb_input_device_valuator_event_t
3316  **/
3317 typedef struct xcb_input_device_valuator_event_t {
3318     uint8_t  response_type;
3319     uint8_t  device_id;
3320     uint16_t sequence;
3321     uint16_t device_state;
3322     uint8_t  num_valuators;
3323     uint8_t  first_valuator;
3324     int32_t  valuators[6];
3325 } xcb_input_device_valuator_event_t;
3326 
3327 typedef enum xcb_input_more_events_mask_t {
3328     XCB_INPUT_MORE_EVENTS_MASK_MORE_EVENTS = 128
3329 } xcb_input_more_events_mask_t;
3330 
3331 /** Opcode for xcb_input_device_key_press. */
3332 #define XCB_INPUT_DEVICE_KEY_PRESS 1
3333 
3334 /**
3335  * @brief xcb_input_device_key_press_event_t
3336  **/
3337 typedef struct xcb_input_device_key_press_event_t {
3338     uint8_t         response_type;
3339     uint8_t         detail;
3340     uint16_t        sequence;
3341     xcb_timestamp_t time;
3342     xcb_window_t    root;
3343     xcb_window_t    event;
3344     xcb_window_t    child;
3345     int16_t         root_x;
3346     int16_t         root_y;
3347     int16_t         event_x;
3348     int16_t         event_y;
3349     uint16_t        state;
3350     uint8_t         same_screen;
3351     uint8_t         device_id;
3352 } xcb_input_device_key_press_event_t;
3353 
3354 /** Opcode for xcb_input_device_key_release. */
3355 #define XCB_INPUT_DEVICE_KEY_RELEASE 2
3356 
3357 typedef xcb_input_device_key_press_event_t xcb_input_device_key_release_event_t;
3358 
3359 /** Opcode for xcb_input_device_button_press. */
3360 #define XCB_INPUT_DEVICE_BUTTON_PRESS 3
3361 
3362 typedef xcb_input_device_key_press_event_t xcb_input_device_button_press_event_t;
3363 
3364 /** Opcode for xcb_input_device_button_release. */
3365 #define XCB_INPUT_DEVICE_BUTTON_RELEASE 4
3366 
3367 typedef xcb_input_device_key_press_event_t xcb_input_device_button_release_event_t;
3368 
3369 /** Opcode for xcb_input_device_motion_notify. */
3370 #define XCB_INPUT_DEVICE_MOTION_NOTIFY 5
3371 
3372 typedef xcb_input_device_key_press_event_t xcb_input_device_motion_notify_event_t;
3373 
3374 /** Opcode for xcb_input_device_focus_in. */
3375 #define XCB_INPUT_DEVICE_FOCUS_IN 6
3376 
3377 /**
3378  * @brief xcb_input_device_focus_in_event_t
3379  **/
3380 typedef struct xcb_input_device_focus_in_event_t {
3381     uint8_t         response_type;
3382     uint8_t         detail;
3383     uint16_t        sequence;
3384     xcb_timestamp_t time;
3385     xcb_window_t    window;
3386     uint8_t         mode;
3387     uint8_t         device_id;
3388     uint8_t         pad0[18];
3389 } xcb_input_device_focus_in_event_t;
3390 
3391 /** Opcode for xcb_input_device_focus_out. */
3392 #define XCB_INPUT_DEVICE_FOCUS_OUT 7
3393 
3394 typedef xcb_input_device_focus_in_event_t xcb_input_device_focus_out_event_t;
3395 
3396 /** Opcode for xcb_input_proximity_in. */
3397 #define XCB_INPUT_PROXIMITY_IN 8
3398 
3399 typedef xcb_input_device_key_press_event_t xcb_input_proximity_in_event_t;
3400 
3401 /** Opcode for xcb_input_proximity_out. */
3402 #define XCB_INPUT_PROXIMITY_OUT 9
3403 
3404 typedef xcb_input_device_key_press_event_t xcb_input_proximity_out_event_t;
3405 
3406 typedef enum xcb_input_classes_reported_mask_t {
3407     XCB_INPUT_CLASSES_REPORTED_MASK_OUT_OF_PROXIMITY = 128,
3408     XCB_INPUT_CLASSES_REPORTED_MASK_DEVICE_MODE_ABSOLUTE = 64,
3409     XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_VALUATORS = 4,
3410     XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_BUTTONS = 2,
3411     XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_KEYS = 1
3412 } xcb_input_classes_reported_mask_t;
3413 
3414 /** Opcode for xcb_input_device_state_notify. */
3415 #define XCB_INPUT_DEVICE_STATE_NOTIFY 10
3416 
3417 /**
3418  * @brief xcb_input_device_state_notify_event_t
3419  **/
3420 typedef struct xcb_input_device_state_notify_event_t {
3421     uint8_t         response_type;
3422     uint8_t         device_id;
3423     uint16_t        sequence;
3424     xcb_timestamp_t time;
3425     uint8_t         num_keys;
3426     uint8_t         num_buttons;
3427     uint8_t         num_valuators;
3428     uint8_t         classes_reported;
3429     uint8_t         buttons[4];
3430     uint8_t         keys[4];
3431     uint32_t        valuators[3];
3432 } xcb_input_device_state_notify_event_t;
3433 
3434 /** Opcode for xcb_input_device_mapping_notify. */
3435 #define XCB_INPUT_DEVICE_MAPPING_NOTIFY 11
3436 
3437 /**
3438  * @brief xcb_input_device_mapping_notify_event_t
3439  **/
3440 typedef struct xcb_input_device_mapping_notify_event_t {
3441     uint8_t              response_type;
3442     uint8_t              device_id;
3443     uint16_t             sequence;
3444     uint8_t              request;
3445     xcb_input_key_code_t first_keycode;
3446     uint8_t              count;
3447     uint8_t              pad0;
3448     xcb_timestamp_t      time;
3449     uint8_t              pad1[20];
3450 } xcb_input_device_mapping_notify_event_t;
3451 
3452 typedef enum xcb_input_change_device_t {
3453     XCB_INPUT_CHANGE_DEVICE_NEW_POINTER = 0,
3454     XCB_INPUT_CHANGE_DEVICE_NEW_KEYBOARD = 1
3455 } xcb_input_change_device_t;
3456 
3457 /** Opcode for xcb_input_change_device_notify. */
3458 #define XCB_INPUT_CHANGE_DEVICE_NOTIFY 12
3459 
3460 /**
3461  * @brief xcb_input_change_device_notify_event_t
3462  **/
3463 typedef struct xcb_input_change_device_notify_event_t {
3464     uint8_t         response_type;
3465     uint8_t         device_id;
3466     uint16_t        sequence;
3467     xcb_timestamp_t time;
3468     uint8_t         request;
3469     uint8_t         pad0[23];
3470 } xcb_input_change_device_notify_event_t;
3471 
3472 /** Opcode for xcb_input_device_key_state_notify. */
3473 #define XCB_INPUT_DEVICE_KEY_STATE_NOTIFY 13
3474 
3475 /**
3476  * @brief xcb_input_device_key_state_notify_event_t
3477  **/
3478 typedef struct xcb_input_device_key_state_notify_event_t {
3479     uint8_t  response_type;
3480     uint8_t  device_id;
3481     uint16_t sequence;
3482     uint8_t  keys[28];
3483 } xcb_input_device_key_state_notify_event_t;
3484 
3485 /** Opcode for xcb_input_device_button_state_notify. */
3486 #define XCB_INPUT_DEVICE_BUTTON_STATE_NOTIFY 14
3487 
3488 /**
3489  * @brief xcb_input_device_button_state_notify_event_t
3490  **/
3491 typedef struct xcb_input_device_button_state_notify_event_t {
3492     uint8_t  response_type;
3493     uint8_t  device_id;
3494     uint16_t sequence;
3495     uint8_t  buttons[28];
3496 } xcb_input_device_button_state_notify_event_t;
3497 
3498 typedef enum xcb_input_device_change_t {
3499     XCB_INPUT_DEVICE_CHANGE_ADDED = 0,
3500     XCB_INPUT_DEVICE_CHANGE_REMOVED = 1,
3501     XCB_INPUT_DEVICE_CHANGE_ENABLED = 2,
3502     XCB_INPUT_DEVICE_CHANGE_DISABLED = 3,
3503     XCB_INPUT_DEVICE_CHANGE_UNRECOVERABLE = 4,
3504     XCB_INPUT_DEVICE_CHANGE_CONTROL_CHANGED = 5
3505 } xcb_input_device_change_t;
3506 
3507 /** Opcode for xcb_input_device_presence_notify. */
3508 #define XCB_INPUT_DEVICE_PRESENCE_NOTIFY 15
3509 
3510 /**
3511  * @brief xcb_input_device_presence_notify_event_t
3512  **/
3513 typedef struct xcb_input_device_presence_notify_event_t {
3514     uint8_t         response_type;
3515     uint8_t         pad0;
3516     uint16_t        sequence;
3517     xcb_timestamp_t time;
3518     uint8_t         devchange;
3519     uint8_t         device_id;
3520     uint16_t        control;
3521     uint8_t         pad1[20];
3522 } xcb_input_device_presence_notify_event_t;
3523 
3524 /** Opcode for xcb_input_device_property_notify. */
3525 #define XCB_INPUT_DEVICE_PROPERTY_NOTIFY 16
3526 
3527 /**
3528  * @brief xcb_input_device_property_notify_event_t
3529  **/
3530 typedef struct xcb_input_device_property_notify_event_t {
3531     uint8_t         response_type;
3532     uint8_t         state;
3533     uint16_t        sequence;
3534     xcb_timestamp_t time;
3535     xcb_atom_t      property;
3536     uint8_t         pad0[19];
3537     uint8_t         device_id;
3538 } xcb_input_device_property_notify_event_t;
3539 
3540 typedef enum xcb_input_change_reason_t {
3541     XCB_INPUT_CHANGE_REASON_SLAVE_SWITCH = 1,
3542     XCB_INPUT_CHANGE_REASON_DEVICE_CHANGE = 2
3543 } xcb_input_change_reason_t;
3544 
3545 /** Opcode for xcb_input_device_changed. */
3546 #define XCB_INPUT_DEVICE_CHANGED 1
3547 
3548 /**
3549  * @brief xcb_input_device_changed_event_t
3550  **/
3551 typedef struct xcb_input_device_changed_event_t {
3552     uint8_t               response_type;
3553     uint8_t               extension;
3554     uint16_t              sequence;
3555     uint32_t              length;
3556     uint16_t              event_type;
3557     xcb_input_device_id_t deviceid;
3558     xcb_timestamp_t       time;
3559     uint16_t              num_classes;
3560     xcb_input_device_id_t sourceid;
3561     uint8_t               reason;
3562     uint8_t               pad0[11];
3563     uint32_t              full_sequence;
3564 } xcb_input_device_changed_event_t;
3565 
3566 typedef enum xcb_input_key_event_flags_t {
3567     XCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT = 65536
3568 } xcb_input_key_event_flags_t;
3569 
3570 /** Opcode for xcb_input_key_press. */
3571 #define XCB_INPUT_KEY_PRESS 2
3572 
3573 /**
3574  * @brief xcb_input_key_press_event_t
3575  **/
3576 typedef struct xcb_input_key_press_event_t {
3577     uint8_t                   response_type;
3578     uint8_t                   extension;
3579     uint16_t                  sequence;
3580     uint32_t                  length;
3581     uint16_t                  event_type;
3582     xcb_input_device_id_t     deviceid;
3583     xcb_timestamp_t           time;
3584     uint32_t                  detail;
3585     xcb_window_t              root;
3586     xcb_window_t              event;
3587     xcb_window_t              child;
3588     uint32_t                  full_sequence;
3589     xcb_input_fp1616_t        root_x;
3590     xcb_input_fp1616_t        root_y;
3591     xcb_input_fp1616_t        event_x;
3592     xcb_input_fp1616_t        event_y;
3593     uint16_t                  buttons_len;
3594     uint16_t                  valuators_len;
3595     xcb_input_device_id_t     sourceid;
3596     uint8_t                   pad0[2];
3597     uint32_t                  flags;
3598     xcb_input_modifier_info_t mods;
3599     xcb_input_group_info_t    group;
3600 } xcb_input_key_press_event_t;
3601 
3602 /** Opcode for xcb_input_key_release. */
3603 #define XCB_INPUT_KEY_RELEASE 3
3604 
3605 typedef xcb_input_key_press_event_t xcb_input_key_release_event_t;
3606 
3607 typedef enum xcb_input_pointer_event_flags_t {
3608     XCB_INPUT_POINTER_EVENT_FLAGS_POINTER_EMULATED = 65536
3609 } xcb_input_pointer_event_flags_t;
3610 
3611 /** Opcode for xcb_input_button_press. */
3612 #define XCB_INPUT_BUTTON_PRESS 4
3613 
3614 /**
3615  * @brief xcb_input_button_press_event_t
3616  **/
3617 typedef struct xcb_input_button_press_event_t {
3618     uint8_t                   response_type;
3619     uint8_t                   extension;
3620     uint16_t                  sequence;
3621     uint32_t                  length;
3622     uint16_t                  event_type;
3623     xcb_input_device_id_t     deviceid;
3624     xcb_timestamp_t           time;
3625     uint32_t                  detail;
3626     xcb_window_t              root;
3627     xcb_window_t              event;
3628     xcb_window_t              child;
3629     uint32_t                  full_sequence;
3630     xcb_input_fp1616_t        root_x;
3631     xcb_input_fp1616_t        root_y;
3632     xcb_input_fp1616_t        event_x;
3633     xcb_input_fp1616_t        event_y;
3634     uint16_t                  buttons_len;
3635     uint16_t                  valuators_len;
3636     xcb_input_device_id_t     sourceid;
3637     uint8_t                   pad0[2];
3638     uint32_t                  flags;
3639     xcb_input_modifier_info_t mods;
3640     xcb_input_group_info_t    group;
3641 } xcb_input_button_press_event_t;
3642 
3643 /** Opcode for xcb_input_button_release. */
3644 #define XCB_INPUT_BUTTON_RELEASE 5
3645 
3646 typedef xcb_input_button_press_event_t xcb_input_button_release_event_t;
3647 
3648 /** Opcode for xcb_input_motion. */
3649 #define XCB_INPUT_MOTION 6
3650 
3651 typedef xcb_input_button_press_event_t xcb_input_motion_event_t;
3652 
3653 typedef enum xcb_input_notify_mode_t {
3654     XCB_INPUT_NOTIFY_MODE_NORMAL = 0,
3655     XCB_INPUT_NOTIFY_MODE_GRAB = 1,
3656     XCB_INPUT_NOTIFY_MODE_UNGRAB = 2,
3657     XCB_INPUT_NOTIFY_MODE_WHILE_GRABBED = 3,
3658     XCB_INPUT_NOTIFY_MODE_PASSIVE_GRAB = 4,
3659     XCB_INPUT_NOTIFY_MODE_PASSIVE_UNGRAB = 5
3660 } xcb_input_notify_mode_t;
3661 
3662 typedef enum xcb_input_notify_detail_t {
3663     XCB_INPUT_NOTIFY_DETAIL_ANCESTOR = 0,
3664     XCB_INPUT_NOTIFY_DETAIL_VIRTUAL = 1,
3665     XCB_INPUT_NOTIFY_DETAIL_INFERIOR = 2,
3666     XCB_INPUT_NOTIFY_DETAIL_NONLINEAR = 3,
3667     XCB_INPUT_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,
3668     XCB_INPUT_NOTIFY_DETAIL_POINTER = 5,
3669     XCB_INPUT_NOTIFY_DETAIL_POINTER_ROOT = 6,
3670     XCB_INPUT_NOTIFY_DETAIL_NONE = 7
3671 } xcb_input_notify_detail_t;
3672 
3673 /** Opcode for xcb_input_enter. */
3674 #define XCB_INPUT_ENTER 7
3675 
3676 /**
3677  * @brief xcb_input_enter_event_t
3678  **/
3679 typedef struct xcb_input_enter_event_t {
3680     uint8_t                   response_type;
3681     uint8_t                   extension;
3682     uint16_t                  sequence;
3683     uint32_t                  length;
3684     uint16_t                  event_type;
3685     xcb_input_device_id_t     deviceid;
3686     xcb_timestamp_t           time;
3687     xcb_input_device_id_t     sourceid;
3688     uint8_t                   mode;
3689     uint8_t                   detail;
3690     xcb_window_t              root;
3691     xcb_window_t              event;
3692     xcb_window_t              child;
3693     uint32_t                  full_sequence;
3694     xcb_input_fp1616_t        root_x;
3695     xcb_input_fp1616_t        root_y;
3696     xcb_input_fp1616_t        event_x;
3697     xcb_input_fp1616_t        event_y;
3698     uint8_t                   same_screen;
3699     uint8_t                   focus;
3700     uint16_t                  buttons_len;
3701     xcb_input_modifier_info_t mods;
3702     xcb_input_group_info_t    group;
3703 } xcb_input_enter_event_t;
3704 
3705 /** Opcode for xcb_input_leave. */
3706 #define XCB_INPUT_LEAVE 8
3707 
3708 typedef xcb_input_enter_event_t xcb_input_leave_event_t;
3709 
3710 /** Opcode for xcb_input_focus_in. */
3711 #define XCB_INPUT_FOCUS_IN 9
3712 
3713 typedef xcb_input_enter_event_t xcb_input_focus_in_event_t;
3714 
3715 /** Opcode for xcb_input_focus_out. */
3716 #define XCB_INPUT_FOCUS_OUT 10
3717 
3718 typedef xcb_input_enter_event_t xcb_input_focus_out_event_t;
3719 
3720 typedef enum xcb_input_hierarchy_mask_t {
3721     XCB_INPUT_HIERARCHY_MASK_MASTER_ADDED = 1,
3722     XCB_INPUT_HIERARCHY_MASK_MASTER_REMOVED = 2,
3723     XCB_INPUT_HIERARCHY_MASK_SLAVE_ADDED = 4,
3724     XCB_INPUT_HIERARCHY_MASK_SLAVE_REMOVED = 8,
3725     XCB_INPUT_HIERARCHY_MASK_SLAVE_ATTACHED = 16,
3726     XCB_INPUT_HIERARCHY_MASK_SLAVE_DETACHED = 32,
3727     XCB_INPUT_HIERARCHY_MASK_DEVICE_ENABLED = 64,
3728     XCB_INPUT_HIERARCHY_MASK_DEVICE_DISABLED = 128
3729 } xcb_input_hierarchy_mask_t;
3730 
3731 /**
3732  * @brief xcb_input_hierarchy_info_t
3733  **/
3734 typedef struct xcb_input_hierarchy_info_t {
3735     xcb_input_device_id_t deviceid;
3736     xcb_input_device_id_t attachment;
3737     uint8_t               type;
3738     uint8_t               enabled;
3739     uint8_t               pad0[2];
3740     uint32_t              flags;
3741 } xcb_input_hierarchy_info_t;
3742 
3743 /**
3744  * @brief xcb_input_hierarchy_info_iterator_t
3745  **/
3746 typedef struct xcb_input_hierarchy_info_iterator_t {
3747     xcb_input_hierarchy_info_t *data;
3748     int                         rem;
3749     int                         index;
3750 } xcb_input_hierarchy_info_iterator_t;
3751 
3752 /** Opcode for xcb_input_hierarchy. */
3753 #define XCB_INPUT_HIERARCHY 11
3754 
3755 /**
3756  * @brief xcb_input_hierarchy_event_t
3757  **/
3758 typedef struct xcb_input_hierarchy_event_t {
3759     uint8_t               response_type;
3760     uint8_t               extension;
3761     uint16_t              sequence;
3762     uint32_t              length;
3763     uint16_t              event_type;
3764     xcb_input_device_id_t deviceid;
3765     xcb_timestamp_t       time;
3766     uint32_t              flags;
3767     uint16_t              num_infos;
3768     uint8_t               pad0[10];
3769     uint32_t              full_sequence;
3770 } xcb_input_hierarchy_event_t;
3771 
3772 typedef enum xcb_input_property_flag_t {
3773     XCB_INPUT_PROPERTY_FLAG_DELETED = 0,
3774     XCB_INPUT_PROPERTY_FLAG_CREATED = 1,
3775     XCB_INPUT_PROPERTY_FLAG_MODIFIED = 2
3776 } xcb_input_property_flag_t;
3777 
3778 /** Opcode for xcb_input_property. */
3779 #define XCB_INPUT_PROPERTY 12
3780 
3781 /**
3782  * @brief xcb_input_property_event_t
3783  **/
3784 typedef struct xcb_input_property_event_t {
3785     uint8_t               response_type;
3786     uint8_t               extension;
3787     uint16_t              sequence;
3788     uint32_t              length;
3789     uint16_t              event_type;
3790     xcb_input_device_id_t deviceid;
3791     xcb_timestamp_t       time;
3792     xcb_atom_t            property;
3793     uint8_t               what;
3794     uint8_t               pad0[11];
3795     uint32_t              full_sequence;
3796 } xcb_input_property_event_t;
3797 
3798 /** Opcode for xcb_input_raw_key_press. */
3799 #define XCB_INPUT_RAW_KEY_PRESS 13
3800 
3801 /**
3802  * @brief xcb_input_raw_key_press_event_t
3803  **/
3804 typedef struct xcb_input_raw_key_press_event_t {
3805     uint8_t               response_type;
3806     uint8_t               extension;
3807     uint16_t              sequence;
3808     uint32_t              length;
3809     uint16_t              event_type;
3810     xcb_input_device_id_t deviceid;
3811     xcb_timestamp_t       time;
3812     uint32_t              detail;
3813     xcb_input_device_id_t sourceid;
3814     uint16_t              valuators_len;
3815     uint32_t              flags;
3816     uint8_t               pad0[4];
3817     uint32_t              full_sequence;
3818 } xcb_input_raw_key_press_event_t;
3819 
3820 /** Opcode for xcb_input_raw_key_release. */
3821 #define XCB_INPUT_RAW_KEY_RELEASE 14
3822 
3823 typedef xcb_input_raw_key_press_event_t xcb_input_raw_key_release_event_t;
3824 
3825 /** Opcode for xcb_input_raw_button_press. */
3826 #define XCB_INPUT_RAW_BUTTON_PRESS 15
3827 
3828 /**
3829  * @brief xcb_input_raw_button_press_event_t
3830  **/
3831 typedef struct xcb_input_raw_button_press_event_t {
3832     uint8_t               response_type;
3833     uint8_t               extension;
3834     uint16_t              sequence;
3835     uint32_t              length;
3836     uint16_t              event_type;
3837     xcb_input_device_id_t deviceid;
3838     xcb_timestamp_t       time;
3839     uint32_t              detail;
3840     xcb_input_device_id_t sourceid;
3841     uint16_t              valuators_len;
3842     uint32_t              flags;
3843     uint8_t               pad0[4];
3844     uint32_t              full_sequence;
3845 } xcb_input_raw_button_press_event_t;
3846 
3847 /** Opcode for xcb_input_raw_button_release. */
3848 #define XCB_INPUT_RAW_BUTTON_RELEASE 16
3849 
3850 typedef xcb_input_raw_button_press_event_t xcb_input_raw_button_release_event_t;
3851 
3852 /** Opcode for xcb_input_raw_motion. */
3853 #define XCB_INPUT_RAW_MOTION 17
3854 
3855 typedef xcb_input_raw_button_press_event_t xcb_input_raw_motion_event_t;
3856 
3857 typedef enum xcb_input_touch_event_flags_t {
3858     XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_PENDING_END = 65536,
3859     XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_EMULATING_POINTER = 131072
3860 } xcb_input_touch_event_flags_t;
3861 
3862 /** Opcode for xcb_input_touch_begin. */
3863 #define XCB_INPUT_TOUCH_BEGIN 18
3864 
3865 /**
3866  * @brief xcb_input_touch_begin_event_t
3867  **/
3868 typedef struct xcb_input_touch_begin_event_t {
3869     uint8_t                   response_type;
3870     uint8_t                   extension;
3871     uint16_t                  sequence;
3872     uint32_t                  length;
3873     uint16_t                  event_type;
3874     xcb_input_device_id_t     deviceid;
3875     xcb_timestamp_t           time;
3876     uint32_t                  detail;
3877     xcb_window_t              root;
3878     xcb_window_t              event;
3879     xcb_window_t              child;
3880     uint32_t                  full_sequence;
3881     xcb_input_fp1616_t        root_x;
3882     xcb_input_fp1616_t        root_y;
3883     xcb_input_fp1616_t        event_x;
3884     xcb_input_fp1616_t        event_y;
3885     uint16_t                  buttons_len;
3886     uint16_t                  valuators_len;
3887     xcb_input_device_id_t     sourceid;
3888     uint8_t                   pad0[2];
3889     uint32_t                  flags;
3890     xcb_input_modifier_info_t mods;
3891     xcb_input_group_info_t    group;
3892 } xcb_input_touch_begin_event_t;
3893 
3894 /** Opcode for xcb_input_touch_update. */
3895 #define XCB_INPUT_TOUCH_UPDATE 19
3896 
3897 typedef xcb_input_touch_begin_event_t xcb_input_touch_update_event_t;
3898 
3899 /** Opcode for xcb_input_touch_end. */
3900 #define XCB_INPUT_TOUCH_END 20
3901 
3902 typedef xcb_input_touch_begin_event_t xcb_input_touch_end_event_t;
3903 
3904 typedef enum xcb_input_touch_ownership_flags_t {
3905     XCB_INPUT_TOUCH_OWNERSHIP_FLAGS_NONE = 0
3906 } xcb_input_touch_ownership_flags_t;
3907 
3908 /** Opcode for xcb_input_touch_ownership. */
3909 #define XCB_INPUT_TOUCH_OWNERSHIP 21
3910 
3911 /**
3912  * @brief xcb_input_touch_ownership_event_t
3913  **/
3914 typedef struct xcb_input_touch_ownership_event_t {
3915     uint8_t               response_type;
3916     uint8_t               extension;
3917     uint16_t              sequence;
3918     uint32_t              length;
3919     uint16_t              event_type;
3920     xcb_input_device_id_t deviceid;
3921     xcb_timestamp_t       time;
3922     uint32_t              touchid;
3923     xcb_window_t          root;
3924     xcb_window_t          event;
3925     xcb_window_t          child;
3926     uint32_t              full_sequence;
3927     xcb_input_device_id_t sourceid;
3928     uint8_t               pad0[2];
3929     uint32_t              flags;
3930     uint8_t               pad1[8];
3931 } xcb_input_touch_ownership_event_t;
3932 
3933 /** Opcode for xcb_input_raw_touch_begin. */
3934 #define XCB_INPUT_RAW_TOUCH_BEGIN 22
3935 
3936 /**
3937  * @brief xcb_input_raw_touch_begin_event_t
3938  **/
3939 typedef struct xcb_input_raw_touch_begin_event_t {
3940     uint8_t               response_type;
3941     uint8_t               extension;
3942     uint16_t              sequence;
3943     uint32_t              length;
3944     uint16_t              event_type;
3945     xcb_input_device_id_t deviceid;
3946     xcb_timestamp_t       time;
3947     uint32_t              detail;
3948     xcb_input_device_id_t sourceid;
3949     uint16_t              valuators_len;
3950     uint32_t              flags;
3951     uint8_t               pad0[4];
3952     uint32_t              full_sequence;
3953 } xcb_input_raw_touch_begin_event_t;
3954 
3955 /** Opcode for xcb_input_raw_touch_update. */
3956 #define XCB_INPUT_RAW_TOUCH_UPDATE 23
3957 
3958 typedef xcb_input_raw_touch_begin_event_t xcb_input_raw_touch_update_event_t;
3959 
3960 /** Opcode for xcb_input_raw_touch_end. */
3961 #define XCB_INPUT_RAW_TOUCH_END 24
3962 
3963 typedef xcb_input_raw_touch_begin_event_t xcb_input_raw_touch_end_event_t;
3964 
3965 /** Opcode for xcb_input_barrier_hit. */
3966 #define XCB_INPUT_BARRIER_HIT 25
3967 
3968 /** Opcode for xcb_input_barrier_leave. */
3969 #define XCB_INPUT_BARRIER_LEAVE 26
3970 
3971 /** Opcode for xcb_input_device. */
3972 #define XCB_INPUT_DEVICE 0
3973 
3974 /**
3975  * @brief xcb_input_device_error_t
3976  **/
3977 typedef struct xcb_input_device_error_t {
3978     uint8_t  response_type;
3979     uint8_t  error_code;
3980     uint16_t sequence;
3981 } xcb_input_device_error_t;
3982 
3983 /** Opcode for xcb_input_event. */
3984 #define XCB_INPUT_EVENT 1
3985 
3986 /**
3987  * @brief xcb_input_event_error_t
3988  **/
3989 typedef struct xcb_input_event_error_t {
3990     uint8_t  response_type;
3991     uint8_t  error_code;
3992     uint16_t sequence;
3993 } xcb_input_event_error_t;
3994 
3995 /** Opcode for xcb_input_mode. */
3996 #define XCB_INPUT_MODE 2
3997 
3998 /**
3999  * @brief xcb_input_mode_error_t
4000  **/
4001 typedef struct xcb_input_mode_error_t {
4002     uint8_t  response_type;
4003     uint8_t  error_code;
4004     uint16_t sequence;
4005 } xcb_input_mode_error_t;
4006 
4007 /** Opcode for xcb_input_device_busy. */
4008 #define XCB_INPUT_DEVICE_BUSY 3
4009 
4010 /**
4011  * @brief xcb_input_device_busy_error_t
4012  **/
4013 typedef struct xcb_input_device_busy_error_t {
4014     uint8_t  response_type;
4015     uint8_t  error_code;
4016     uint16_t sequence;
4017 } xcb_input_device_busy_error_t;
4018 
4019 /** Opcode for xcb_input_class. */
4020 #define XCB_INPUT_CLASS 4
4021 
4022 /**
4023  * @brief xcb_input_class_error_t
4024  **/
4025 typedef struct xcb_input_class_error_t {
4026     uint8_t  response_type;
4027     uint8_t  error_code;
4028     uint16_t sequence;
4029 } xcb_input_class_error_t;
4030 
4031 /**
4032  * Get the next element of the iterator
4033  * @param i Pointer to a xcb_input_event_class_iterator_t
4034  *
4035  * Get the next element in the iterator. The member rem is
4036  * decreased by one. The member data points to the next
4037  * element. The member index is increased by sizeof(xcb_input_event_class_t)
4038  */
4039 void
4040 xcb_input_event_class_next (xcb_input_event_class_iterator_t *i);
4041 
4042 /**
4043  * Return the iterator pointing to the last element
4044  * @param i An xcb_input_event_class_iterator_t
4045  * @return  The iterator pointing to the last element
4046  *
4047  * Set the current element in the iterator to the last element.
4048  * The member rem is set to 0. The member data points to the
4049  * last element.
4050  */
4051 xcb_generic_iterator_t
4052 xcb_input_event_class_end (xcb_input_event_class_iterator_t i);
4053 
4054 /**
4055  * Get the next element of the iterator
4056  * @param i Pointer to a xcb_input_key_code_iterator_t
4057  *
4058  * Get the next element in the iterator. The member rem is
4059  * decreased by one. The member data points to the next
4060  * element. The member index is increased by sizeof(xcb_input_key_code_t)
4061  */
4062 void
4063 xcb_input_key_code_next (xcb_input_key_code_iterator_t *i);
4064 
4065 /**
4066  * Return the iterator pointing to the last element
4067  * @param i An xcb_input_key_code_iterator_t
4068  * @return  The iterator pointing to the last element
4069  *
4070  * Set the current element in the iterator to the last element.
4071  * The member rem is set to 0. The member data points to the
4072  * last element.
4073  */
4074 xcb_generic_iterator_t
4075 xcb_input_key_code_end (xcb_input_key_code_iterator_t i);
4076 
4077 /**
4078  * Get the next element of the iterator
4079  * @param i Pointer to a xcb_input_device_id_iterator_t
4080  *
4081  * Get the next element in the iterator. The member rem is
4082  * decreased by one. The member data points to the next
4083  * element. The member index is increased by sizeof(xcb_input_device_id_t)
4084  */
4085 void
4086 xcb_input_device_id_next (xcb_input_device_id_iterator_t *i);
4087 
4088 /**
4089  * Return the iterator pointing to the last element
4090  * @param i An xcb_input_device_id_iterator_t
4091  * @return  The iterator pointing to the last element
4092  *
4093  * Set the current element in the iterator to the last element.
4094  * The member rem is set to 0. The member data points to the
4095  * last element.
4096  */
4097 xcb_generic_iterator_t
4098 xcb_input_device_id_end (xcb_input_device_id_iterator_t i);
4099 
4100 /**
4101  * Get the next element of the iterator
4102  * @param i Pointer to a xcb_input_fp1616_iterator_t
4103  *
4104  * Get the next element in the iterator. The member rem is
4105  * decreased by one. The member data points to the next
4106  * element. The member index is increased by sizeof(xcb_input_fp1616_t)
4107  */
4108 void
4109 xcb_input_fp1616_next (xcb_input_fp1616_iterator_t *i);
4110 
4111 /**
4112  * Return the iterator pointing to the last element
4113  * @param i An xcb_input_fp1616_iterator_t
4114  * @return  The iterator pointing to the last element
4115  *
4116  * Set the current element in the iterator to the last element.
4117  * The member rem is set to 0. The member data points to the
4118  * last element.
4119  */
4120 xcb_generic_iterator_t
4121 xcb_input_fp1616_end (xcb_input_fp1616_iterator_t i);
4122 
4123 /**
4124  * Get the next element of the iterator
4125  * @param i Pointer to a xcb_input_fp3232_iterator_t
4126  *
4127  * Get the next element in the iterator. The member rem is
4128  * decreased by one. The member data points to the next
4129  * element. The member index is increased by sizeof(xcb_input_fp3232_t)
4130  */
4131 void
4132 xcb_input_fp3232_next (xcb_input_fp3232_iterator_t *i);
4133 
4134 /**
4135  * Return the iterator pointing to the last element
4136  * @param i An xcb_input_fp3232_iterator_t
4137  * @return  The iterator pointing to the last element
4138  *
4139  * Set the current element in the iterator to the last element.
4140  * The member rem is set to 0. The member data points to the
4141  * last element.
4142  */
4143 xcb_generic_iterator_t
4144 xcb_input_fp3232_end (xcb_input_fp3232_iterator_t i);
4145 
4146 int
4147 xcb_input_get_extension_version_sizeof (const void  *_buffer);
4148 
4149 /**
4150  *
4151  * @param c The connection
4152  * @return A cookie
4153  *
4154  * Delivers a request to the X server.
4155  *
4156  */
4157 xcb_input_get_extension_version_cookie_t
4158 xcb_input_get_extension_version (xcb_connection_t *c,
4159                                  uint16_t          name_len,
4160                                  const char       *name);
4161 
4162 /**
4163  *
4164  * @param c The connection
4165  * @return A cookie
4166  *
4167  * Delivers a request to the X server.
4168  *
4169  * This form can be used only if the request will cause
4170  * a reply to be generated. Any returned error will be
4171  * placed in the event queue.
4172  */
4173 xcb_input_get_extension_version_cookie_t
4174 xcb_input_get_extension_version_unchecked (xcb_connection_t *c,
4175                                            uint16_t          name_len,
4176                                            const char       *name);
4177 
4178 /**
4179  * Return the reply
4180  * @param c      The connection
4181  * @param cookie The cookie
4182  * @param e      The xcb_generic_error_t supplied
4183  *
4184  * Returns the reply of the request asked by
4185  *
4186  * The parameter @p e supplied to this function must be NULL if
4187  * xcb_input_get_extension_version_unchecked(). is used.
4188  * Otherwise, it stores the error if any.
4189  *
4190  * The returned value must be freed by the caller using free().
4191  */
4192 xcb_input_get_extension_version_reply_t *
4193 xcb_input_get_extension_version_reply (xcb_connection_t                          *c,
4194                                        xcb_input_get_extension_version_cookie_t   cookie  /**< */,
4195                                        xcb_generic_error_t                      **e);
4196 
4197 /**
4198  * Get the next element of the iterator
4199  * @param i Pointer to a xcb_input_device_info_iterator_t
4200  *
4201  * Get the next element in the iterator. The member rem is
4202  * decreased by one. The member data points to the next
4203  * element. The member index is increased by sizeof(xcb_input_device_info_t)
4204  */
4205 void
4206 xcb_input_device_info_next (xcb_input_device_info_iterator_t *i);
4207 
4208 /**
4209  * Return the iterator pointing to the last element
4210  * @param i An xcb_input_device_info_iterator_t
4211  * @return  The iterator pointing to the last element
4212  *
4213  * Set the current element in the iterator to the last element.
4214  * The member rem is set to 0. The member data points to the
4215  * last element.
4216  */
4217 xcb_generic_iterator_t
4218 xcb_input_device_info_end (xcb_input_device_info_iterator_t i);
4219 
4220 /**
4221  * Get the next element of the iterator
4222  * @param i Pointer to a xcb_input_key_info_iterator_t
4223  *
4224  * Get the next element in the iterator. The member rem is
4225  * decreased by one. The member data points to the next
4226  * element. The member index is increased by sizeof(xcb_input_key_info_t)
4227  */
4228 void
4229 xcb_input_key_info_next (xcb_input_key_info_iterator_t *i);
4230 
4231 /**
4232  * Return the iterator pointing to the last element
4233  * @param i An xcb_input_key_info_iterator_t
4234  * @return  The iterator pointing to the last element
4235  *
4236  * Set the current element in the iterator to the last element.
4237  * The member rem is set to 0. The member data points to the
4238  * last element.
4239  */
4240 xcb_generic_iterator_t
4241 xcb_input_key_info_end (xcb_input_key_info_iterator_t i);
4242 
4243 /**
4244  * Get the next element of the iterator
4245  * @param i Pointer to a xcb_input_button_info_iterator_t
4246  *
4247  * Get the next element in the iterator. The member rem is
4248  * decreased by one. The member data points to the next
4249  * element. The member index is increased by sizeof(xcb_input_button_info_t)
4250  */
4251 void
4252 xcb_input_button_info_next (xcb_input_button_info_iterator_t *i);
4253 
4254 /**
4255  * Return the iterator pointing to the last element
4256  * @param i An xcb_input_button_info_iterator_t
4257  * @return  The iterator pointing to the last element
4258  *
4259  * Set the current element in the iterator to the last element.
4260  * The member rem is set to 0. The member data points to the
4261  * last element.
4262  */
4263 xcb_generic_iterator_t
4264 xcb_input_button_info_end (xcb_input_button_info_iterator_t i);
4265 
4266 /**
4267  * Get the next element of the iterator
4268  * @param i Pointer to a xcb_input_axis_info_iterator_t
4269  *
4270  * Get the next element in the iterator. The member rem is
4271  * decreased by one. The member data points to the next
4272  * element. The member index is increased by sizeof(xcb_input_axis_info_t)
4273  */
4274 void
4275 xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i);
4276 
4277 /**
4278  * Return the iterator pointing to the last element
4279  * @param i An xcb_input_axis_info_iterator_t
4280  * @return  The iterator pointing to the last element
4281  *
4282  * Set the current element in the iterator to the last element.
4283  * The member rem is set to 0. The member data points to the
4284  * last element.
4285  */
4286 xcb_generic_iterator_t
4287 xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i);
4288 
4289 int
4290 xcb_input_valuator_info_sizeof (const void  *_buffer);
4291 
4292 xcb_input_axis_info_t *
4293 xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R);
4294 
4295 int
4296 xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R);
4297 
4298 xcb_input_axis_info_iterator_t
4299 xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R);
4300 
4301 /**
4302  * Get the next element of the iterator
4303  * @param i Pointer to a xcb_input_valuator_info_iterator_t
4304  *
4305  * Get the next element in the iterator. The member rem is
4306  * decreased by one. The member data points to the next
4307  * element. The member index is increased by sizeof(xcb_input_valuator_info_t)
4308  */
4309 void
4310 xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i);
4311 
4312 /**
4313  * Return the iterator pointing to the last element
4314  * @param i An xcb_input_valuator_info_iterator_t
4315  * @return  The iterator pointing to the last element
4316  *
4317  * Set the current element in the iterator to the last element.
4318  * The member rem is set to 0. The member data points to the
4319  * last element.
4320  */
4321 xcb_generic_iterator_t
4322 xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i);
4323 
4324 xcb_input_axis_info_t *
4325 xcb_input_input_info_info_valuator_axes (const xcb_input_input_info_info_t *S);
4326 
4327 int
4328 xcb_input_input_info_info_valuator_axes_length (const xcb_input_input_info_t *R,
4329                                                 const xcb_input_input_info_info_t *S);
4330 
4331 xcb_input_axis_info_iterator_t
4332 xcb_input_input_info_info_valuator_axes_iterator (const xcb_input_input_info_t *R,
4333                                                   const xcb_input_input_info_info_t *S);
4334 
4335 int
4336 xcb_input_input_info_info_serialize (void                              **_buffer,
4337                                      uint8_t                             class_id,
4338                                      const xcb_input_input_info_info_t  *_aux);
4339 
4340 int
4341 xcb_input_input_info_info_unpack (const void                   *_buffer,
4342                                   uint8_t                       class_id,
4343                                   xcb_input_input_info_info_t  *_aux);
4344 
4345 int
4346 xcb_input_input_info_info_sizeof (const void  *_buffer,
4347                                   uint8_t      class_id);
4348 
4349 int
4350 xcb_input_input_info_sizeof (const void  *_buffer);
4351 
4352 /**
4353  * Get the next element of the iterator
4354  * @param i Pointer to a xcb_input_input_info_iterator_t
4355  *
4356  * Get the next element in the iterator. The member rem is
4357  * decreased by one. The member data points to the next
4358  * element. The member index is increased by sizeof(xcb_input_input_info_t)
4359  */
4360 void
4361 xcb_input_input_info_next (xcb_input_input_info_iterator_t *i);
4362 
4363 /**
4364  * Return the iterator pointing to the last element
4365  * @param i An xcb_input_input_info_iterator_t
4366  * @return  The iterator pointing to the last element
4367  *
4368  * Set the current element in the iterator to the last element.
4369  * The member rem is set to 0. The member data points to the
4370  * last element.
4371  */
4372 xcb_generic_iterator_t
4373 xcb_input_input_info_end (xcb_input_input_info_iterator_t i);
4374 
4375 int
4376 xcb_input_device_name_sizeof (const void  *_buffer);
4377 
4378 char *
4379 xcb_input_device_name_string (const xcb_input_device_name_t *R);
4380 
4381 int
4382 xcb_input_device_name_string_length (const xcb_input_device_name_t *R);
4383 
4384 xcb_generic_iterator_t
4385 xcb_input_device_name_string_end (const xcb_input_device_name_t *R);
4386 
4387 /**
4388  * Get the next element of the iterator
4389  * @param i Pointer to a xcb_input_device_name_iterator_t
4390  *
4391  * Get the next element in the iterator. The member rem is
4392  * decreased by one. The member data points to the next
4393  * element. The member index is increased by sizeof(xcb_input_device_name_t)
4394  */
4395 void
4396 xcb_input_device_name_next (xcb_input_device_name_iterator_t *i);
4397 
4398 /**
4399  * Return the iterator pointing to the last element
4400  * @param i An xcb_input_device_name_iterator_t
4401  * @return  The iterator pointing to the last element
4402  *
4403  * Set the current element in the iterator to the last element.
4404  * The member rem is set to 0. The member data points to the
4405  * last element.
4406  */
4407 xcb_generic_iterator_t
4408 xcb_input_device_name_end (xcb_input_device_name_iterator_t i);
4409 
4410 int
4411 xcb_input_list_input_devices_sizeof (const void  *_buffer);
4412 
4413 /**
4414  *
4415  * @param c The connection
4416  * @return A cookie
4417  *
4418  * Delivers a request to the X server.
4419  *
4420  */
4421 xcb_input_list_input_devices_cookie_t
4422 xcb_input_list_input_devices (xcb_connection_t *c);
4423 
4424 /**
4425  *
4426  * @param c The connection
4427  * @return A cookie
4428  *
4429  * Delivers a request to the X server.
4430  *
4431  * This form can be used only if the request will cause
4432  * a reply to be generated. Any returned error will be
4433  * placed in the event queue.
4434  */
4435 xcb_input_list_input_devices_cookie_t
4436 xcb_input_list_input_devices_unchecked (xcb_connection_t *c);
4437 
4438 xcb_input_device_info_t *
4439 xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R);
4440 
4441 int
4442 xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R);
4443 
4444 xcb_input_device_info_iterator_t
4445 xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R);
4446 
4447 int
4448 xcb_input_list_input_devices_infos_length (const xcb_input_list_input_devices_reply_t *R);
4449 
4450 xcb_input_input_info_iterator_t
4451 xcb_input_list_input_devices_infos_iterator (const xcb_input_list_input_devices_reply_t *R);
4452 
4453 int
4454 xcb_input_list_input_devices_names_length (const xcb_input_list_input_devices_reply_t *R);
4455 
4456 xcb_str_iterator_t
4457 xcb_input_list_input_devices_names_iterator (const xcb_input_list_input_devices_reply_t *R);
4458 
4459 /**
4460  * Return the reply
4461  * @param c      The connection
4462  * @param cookie The cookie
4463  * @param e      The xcb_generic_error_t supplied
4464  *
4465  * Returns the reply of the request asked by
4466  *
4467  * The parameter @p e supplied to this function must be NULL if
4468  * xcb_input_list_input_devices_unchecked(). is used.
4469  * Otherwise, it stores the error if any.
4470  *
4471  * The returned value must be freed by the caller using free().
4472  */
4473 xcb_input_list_input_devices_reply_t *
4474 xcb_input_list_input_devices_reply (xcb_connection_t                       *c,
4475                                     xcb_input_list_input_devices_cookie_t   cookie  /**< */,
4476                                     xcb_generic_error_t                   **e);
4477 
4478 /**
4479  * Get the next element of the iterator
4480  * @param i Pointer to a xcb_input_event_type_base_iterator_t
4481  *
4482  * Get the next element in the iterator. The member rem is
4483  * decreased by one. The member data points to the next
4484  * element. The member index is increased by sizeof(xcb_input_event_type_base_t)
4485  */
4486 void
4487 xcb_input_event_type_base_next (xcb_input_event_type_base_iterator_t *i);
4488 
4489 /**
4490  * Return the iterator pointing to the last element
4491  * @param i An xcb_input_event_type_base_iterator_t
4492  * @return  The iterator pointing to the last element
4493  *
4494  * Set the current element in the iterator to the last element.
4495  * The member rem is set to 0. The member data points to the
4496  * last element.
4497  */
4498 xcb_generic_iterator_t
4499 xcb_input_event_type_base_end (xcb_input_event_type_base_iterator_t i);
4500 
4501 /**
4502  * Get the next element of the iterator
4503  * @param i Pointer to a xcb_input_input_class_info_iterator_t
4504  *
4505  * Get the next element in the iterator. The member rem is
4506  * decreased by one. The member data points to the next
4507  * element. The member index is increased by sizeof(xcb_input_input_class_info_t)
4508  */
4509 void
4510 xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i);
4511 
4512 /**
4513  * Return the iterator pointing to the last element
4514  * @param i An xcb_input_input_class_info_iterator_t
4515  * @return  The iterator pointing to the last element
4516  *
4517  * Set the current element in the iterator to the last element.
4518  * The member rem is set to 0. The member data points to the
4519  * last element.
4520  */
4521 xcb_generic_iterator_t
4522 xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i);
4523 
4524 int
4525 xcb_input_open_device_sizeof (const void  *_buffer);
4526 
4527 /**
4528  *
4529  * @param c The connection
4530  * @return A cookie
4531  *
4532  * Delivers a request to the X server.
4533  *
4534  */
4535 xcb_input_open_device_cookie_t
4536 xcb_input_open_device (xcb_connection_t *c,
4537                        uint8_t           device_id);
4538 
4539 /**
4540  *
4541  * @param c The connection
4542  * @return A cookie
4543  *
4544  * Delivers a request to the X server.
4545  *
4546  * This form can be used only if the request will cause
4547  * a reply to be generated. Any returned error will be
4548  * placed in the event queue.
4549  */
4550 xcb_input_open_device_cookie_t
4551 xcb_input_open_device_unchecked (xcb_connection_t *c,
4552                                  uint8_t           device_id);
4553 
4554 xcb_input_input_class_info_t *
4555 xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R);
4556 
4557 int
4558 xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R);
4559 
4560 xcb_input_input_class_info_iterator_t
4561 xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R);
4562 
4563 /**
4564  * Return the reply
4565  * @param c      The connection
4566  * @param cookie The cookie
4567  * @param e      The xcb_generic_error_t supplied
4568  *
4569  * Returns the reply of the request asked by
4570  *
4571  * The parameter @p e supplied to this function must be NULL if
4572  * xcb_input_open_device_unchecked(). is used.
4573  * Otherwise, it stores the error if any.
4574  *
4575  * The returned value must be freed by the caller using free().
4576  */
4577 xcb_input_open_device_reply_t *
4578 xcb_input_open_device_reply (xcb_connection_t                *c,
4579                              xcb_input_open_device_cookie_t   cookie  /**< */,
4580                              xcb_generic_error_t            **e);
4581 
4582 /**
4583  *
4584  * @param c The connection
4585  * @return A cookie
4586  *
4587  * Delivers a request to the X server.
4588  *
4589  * This form can be used only if the request will not cause
4590  * a reply to be generated. Any returned error will be
4591  * saved for handling by xcb_request_check().
4592  */
4593 xcb_void_cookie_t
4594 xcb_input_close_device_checked (xcb_connection_t *c,
4595                                 uint8_t           device_id);
4596 
4597 /**
4598  *
4599  * @param c The connection
4600  * @return A cookie
4601  *
4602  * Delivers a request to the X server.
4603  *
4604  */
4605 xcb_void_cookie_t
4606 xcb_input_close_device (xcb_connection_t *c,
4607                         uint8_t           device_id);
4608 
4609 /**
4610  *
4611  * @param c The connection
4612  * @return A cookie
4613  *
4614  * Delivers a request to the X server.
4615  *
4616  */
4617 xcb_input_set_device_mode_cookie_t
4618 xcb_input_set_device_mode (xcb_connection_t *c,
4619                            uint8_t           device_id,
4620                            uint8_t           mode);
4621 
4622 /**
4623  *
4624  * @param c The connection
4625  * @return A cookie
4626  *
4627  * Delivers a request to the X server.
4628  *
4629  * This form can be used only if the request will cause
4630  * a reply to be generated. Any returned error will be
4631  * placed in the event queue.
4632  */
4633 xcb_input_set_device_mode_cookie_t
4634 xcb_input_set_device_mode_unchecked (xcb_connection_t *c,
4635                                      uint8_t           device_id,
4636                                      uint8_t           mode);
4637 
4638 /**
4639  * Return the reply
4640  * @param c      The connection
4641  * @param cookie The cookie
4642  * @param e      The xcb_generic_error_t supplied
4643  *
4644  * Returns the reply of the request asked by
4645  *
4646  * The parameter @p e supplied to this function must be NULL if
4647  * xcb_input_set_device_mode_unchecked(). is used.
4648  * Otherwise, it stores the error if any.
4649  *
4650  * The returned value must be freed by the caller using free().
4651  */
4652 xcb_input_set_device_mode_reply_t *
4653 xcb_input_set_device_mode_reply (xcb_connection_t                    *c,
4654                                  xcb_input_set_device_mode_cookie_t   cookie  /**< */,
4655                                  xcb_generic_error_t                **e);
4656 
4657 int
4658 xcb_input_select_extension_event_sizeof (const void  *_buffer);
4659 
4660 /**
4661  *
4662  * @param c The connection
4663  * @return A cookie
4664  *
4665  * Delivers a request to the X server.
4666  *
4667  * This form can be used only if the request will not cause
4668  * a reply to be generated. Any returned error will be
4669  * saved for handling by xcb_request_check().
4670  */
4671 xcb_void_cookie_t
4672 xcb_input_select_extension_event_checked (xcb_connection_t              *c,
4673                                           xcb_window_t                   window,
4674                                           uint16_t                       num_classes,
4675                                           const xcb_input_event_class_t *classes);
4676 
4677 /**
4678  *
4679  * @param c The connection
4680  * @return A cookie
4681  *
4682  * Delivers a request to the X server.
4683  *
4684  */
4685 xcb_void_cookie_t
4686 xcb_input_select_extension_event (xcb_connection_t              *c,
4687                                   xcb_window_t                   window,
4688                                   uint16_t                       num_classes,
4689                                   const xcb_input_event_class_t *classes);
4690 
4691 xcb_input_event_class_t *
4692 xcb_input_select_extension_event_classes (const xcb_input_select_extension_event_request_t *R);
4693 
4694 int
4695 xcb_input_select_extension_event_classes_length (const xcb_input_select_extension_event_request_t *R);
4696 
4697 xcb_generic_iterator_t
4698 xcb_input_select_extension_event_classes_end (const xcb_input_select_extension_event_request_t *R);
4699 
4700 int
4701 xcb_input_get_selected_extension_events_sizeof (const void  *_buffer);
4702 
4703 /**
4704  *
4705  * @param c The connection
4706  * @return A cookie
4707  *
4708  * Delivers a request to the X server.
4709  *
4710  */
4711 xcb_input_get_selected_extension_events_cookie_t
4712 xcb_input_get_selected_extension_events (xcb_connection_t *c,
4713                                          xcb_window_t      window);
4714 
4715 /**
4716  *
4717  * @param c The connection
4718  * @return A cookie
4719  *
4720  * Delivers a request to the X server.
4721  *
4722  * This form can be used only if the request will cause
4723  * a reply to be generated. Any returned error will be
4724  * placed in the event queue.
4725  */
4726 xcb_input_get_selected_extension_events_cookie_t
4727 xcb_input_get_selected_extension_events_unchecked (xcb_connection_t *c,
4728                                                    xcb_window_t      window);
4729 
4730 xcb_input_event_class_t *
4731 xcb_input_get_selected_extension_events_this_classes (const xcb_input_get_selected_extension_events_reply_t *R);
4732 
4733 int
4734 xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R);
4735 
4736 xcb_generic_iterator_t
4737 xcb_input_get_selected_extension_events_this_classes_end (const xcb_input_get_selected_extension_events_reply_t *R);
4738 
4739 xcb_input_event_class_t *
4740 xcb_input_get_selected_extension_events_all_classes (const xcb_input_get_selected_extension_events_reply_t *R);
4741 
4742 int
4743 xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R);
4744 
4745 xcb_generic_iterator_t
4746 xcb_input_get_selected_extension_events_all_classes_end (const xcb_input_get_selected_extension_events_reply_t *R);
4747 
4748 /**
4749  * Return the reply
4750  * @param c      The connection
4751  * @param cookie The cookie
4752  * @param e      The xcb_generic_error_t supplied
4753  *
4754  * Returns the reply of the request asked by
4755  *
4756  * The parameter @p e supplied to this function must be NULL if
4757  * xcb_input_get_selected_extension_events_unchecked(). is used.
4758  * Otherwise, it stores the error if any.
4759  *
4760  * The returned value must be freed by the caller using free().
4761  */
4762 xcb_input_get_selected_extension_events_reply_t *
4763 xcb_input_get_selected_extension_events_reply (xcb_connection_t                                  *c,
4764                                                xcb_input_get_selected_extension_events_cookie_t   cookie  /**< */,
4765                                                xcb_generic_error_t                              **e);
4766 
4767 int
4768 xcb_input_change_device_dont_propagate_list_sizeof (const void  *_buffer);
4769 
4770 /**
4771  *
4772  * @param c The connection
4773  * @return A cookie
4774  *
4775  * Delivers a request to the X server.
4776  *
4777  * This form can be used only if the request will not cause
4778  * a reply to be generated. Any returned error will be
4779  * saved for handling by xcb_request_check().
4780  */
4781 xcb_void_cookie_t
4782 xcb_input_change_device_dont_propagate_list_checked (xcb_connection_t              *c,
4783                                                      xcb_window_t                   window,
4784                                                      uint16_t                       num_classes,
4785                                                      uint8_t                        mode,
4786                                                      const xcb_input_event_class_t *classes);
4787 
4788 /**
4789  *
4790  * @param c The connection
4791  * @return A cookie
4792  *
4793  * Delivers a request to the X server.
4794  *
4795  */
4796 xcb_void_cookie_t
4797 xcb_input_change_device_dont_propagate_list (xcb_connection_t              *c,
4798                                              xcb_window_t                   window,
4799                                              uint16_t                       num_classes,
4800                                              uint8_t                        mode,
4801                                              const xcb_input_event_class_t *classes);
4802 
4803 xcb_input_event_class_t *
4804 xcb_input_change_device_dont_propagate_list_classes (const xcb_input_change_device_dont_propagate_list_request_t *R);
4805 
4806 int
4807 xcb_input_change_device_dont_propagate_list_classes_length (const xcb_input_change_device_dont_propagate_list_request_t *R);
4808 
4809 xcb_generic_iterator_t
4810 xcb_input_change_device_dont_propagate_list_classes_end (const xcb_input_change_device_dont_propagate_list_request_t *R);
4811 
4812 int
4813 xcb_input_get_device_dont_propagate_list_sizeof (const void  *_buffer);
4814 
4815 /**
4816  *
4817  * @param c The connection
4818  * @return A cookie
4819  *
4820  * Delivers a request to the X server.
4821  *
4822  */
4823 xcb_input_get_device_dont_propagate_list_cookie_t
4824 xcb_input_get_device_dont_propagate_list (xcb_connection_t *c,
4825                                           xcb_window_t      window);
4826 
4827 /**
4828  *
4829  * @param c The connection
4830  * @return A cookie
4831  *
4832  * Delivers a request to the X server.
4833  *
4834  * This form can be used only if the request will cause
4835  * a reply to be generated. Any returned error will be
4836  * placed in the event queue.
4837  */
4838 xcb_input_get_device_dont_propagate_list_cookie_t
4839 xcb_input_get_device_dont_propagate_list_unchecked (xcb_connection_t *c,
4840                                                     xcb_window_t      window);
4841 
4842 xcb_input_event_class_t *
4843 xcb_input_get_device_dont_propagate_list_classes (const xcb_input_get_device_dont_propagate_list_reply_t *R);
4844 
4845 int
4846 xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R);
4847 
4848 xcb_generic_iterator_t
4849 xcb_input_get_device_dont_propagate_list_classes_end (const xcb_input_get_device_dont_propagate_list_reply_t *R);
4850 
4851 /**
4852  * Return the reply
4853  * @param c      The connection
4854  * @param cookie The cookie
4855  * @param e      The xcb_generic_error_t supplied
4856  *
4857  * Returns the reply of the request asked by
4858  *
4859  * The parameter @p e supplied to this function must be NULL if
4860  * xcb_input_get_device_dont_propagate_list_unchecked(). is used.
4861  * Otherwise, it stores the error if any.
4862  *
4863  * The returned value must be freed by the caller using free().
4864  */
4865 xcb_input_get_device_dont_propagate_list_reply_t *
4866 xcb_input_get_device_dont_propagate_list_reply (xcb_connection_t                                   *c,
4867                                                 xcb_input_get_device_dont_propagate_list_cookie_t   cookie  /**< */,
4868                                                 xcb_generic_error_t                               **e);
4869 
4870 int
4871 xcb_input_device_time_coord_sizeof (const void  *_buffer,
4872                                     uint8_t      num_axes);
4873 
4874 int32_t *
4875 xcb_input_device_time_coord_axisvalues (const xcb_input_device_time_coord_t *R);
4876 
4877 int
4878 xcb_input_device_time_coord_axisvalues_length (const xcb_input_device_time_coord_t *R,
4879                                                uint8_t num_axes);
4880 
4881 xcb_generic_iterator_t
4882 xcb_input_device_time_coord_axisvalues_end (const xcb_input_device_time_coord_t *R,
4883                                             uint8_t num_axes);
4884 
4885 /**
4886  * Get the next element of the iterator
4887  * @param i Pointer to a xcb_input_device_time_coord_iterator_t
4888  *
4889  * Get the next element in the iterator. The member rem is
4890  * decreased by one. The member data points to the next
4891  * element. The member index is increased by sizeof(xcb_input_device_time_coord_t)
4892  */
4893 void
4894 xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i);
4895 
4896 /**
4897  * Return the iterator pointing to the last element
4898  * @param i An xcb_input_device_time_coord_iterator_t
4899  * @return  The iterator pointing to the last element
4900  *
4901  * Set the current element in the iterator to the last element.
4902  * The member rem is set to 0. The member data points to the
4903  * last element.
4904  */
4905 xcb_generic_iterator_t
4906 xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i);
4907 
4908 int
4909 xcb_input_get_device_motion_events_sizeof (const void  *_buffer);
4910 
4911 /**
4912  *
4913  * @param c The connection
4914  * @return A cookie
4915  *
4916  * Delivers a request to the X server.
4917  *
4918  */
4919 xcb_input_get_device_motion_events_cookie_t
4920 xcb_input_get_device_motion_events (xcb_connection_t *c,
4921                                     xcb_timestamp_t   start,
4922                                     xcb_timestamp_t   stop,
4923                                     uint8_t           device_id);
4924 
4925 /**
4926  *
4927  * @param c The connection
4928  * @return A cookie
4929  *
4930  * Delivers a request to the X server.
4931  *
4932  * This form can be used only if the request will cause
4933  * a reply to be generated. Any returned error will be
4934  * placed in the event queue.
4935  */
4936 xcb_input_get_device_motion_events_cookie_t
4937 xcb_input_get_device_motion_events_unchecked (xcb_connection_t *c,
4938                                               xcb_timestamp_t   start,
4939                                               xcb_timestamp_t   stop,
4940                                               uint8_t           device_id);
4941 
4942 int
4943 xcb_input_get_device_motion_events_events_length (const xcb_input_get_device_motion_events_reply_t *R);
4944 
4945 xcb_input_device_time_coord_iterator_t
4946 xcb_input_get_device_motion_events_events_iterator (const xcb_input_get_device_motion_events_reply_t *R);
4947 
4948 /**
4949  * Return the reply
4950  * @param c      The connection
4951  * @param cookie The cookie
4952  * @param e      The xcb_generic_error_t supplied
4953  *
4954  * Returns the reply of the request asked by
4955  *
4956  * The parameter @p e supplied to this function must be NULL if
4957  * xcb_input_get_device_motion_events_unchecked(). is used.
4958  * Otherwise, it stores the error if any.
4959  *
4960  * The returned value must be freed by the caller using free().
4961  */
4962 xcb_input_get_device_motion_events_reply_t *
4963 xcb_input_get_device_motion_events_reply (xcb_connection_t                             *c,
4964                                           xcb_input_get_device_motion_events_cookie_t   cookie  /**< */,
4965                                           xcb_generic_error_t                         **e);
4966 
4967 /**
4968  *
4969  * @param c The connection
4970  * @return A cookie
4971  *
4972  * Delivers a request to the X server.
4973  *
4974  */
4975 xcb_input_change_keyboard_device_cookie_t
4976 xcb_input_change_keyboard_device (xcb_connection_t *c,
4977                                   uint8_t           device_id);
4978 
4979 /**
4980  *
4981  * @param c The connection
4982  * @return A cookie
4983  *
4984  * Delivers a request to the X server.
4985  *
4986  * This form can be used only if the request will cause
4987  * a reply to be generated. Any returned error will be
4988  * placed in the event queue.
4989  */
4990 xcb_input_change_keyboard_device_cookie_t
4991 xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c,
4992                                             uint8_t           device_id);
4993 
4994 /**
4995  * Return the reply
4996  * @param c      The connection
4997  * @param cookie The cookie
4998  * @param e      The xcb_generic_error_t supplied
4999  *
5000  * Returns the reply of the request asked by
5001  *
5002  * The parameter @p e supplied to this function must be NULL if
5003  * xcb_input_change_keyboard_device_unchecked(). is used.
5004  * Otherwise, it stores the error if any.
5005  *
5006  * The returned value must be freed by the caller using free().
5007  */
5008 xcb_input_change_keyboard_device_reply_t *
5009 xcb_input_change_keyboard_device_reply (xcb_connection_t                           *c,
5010                                         xcb_input_change_keyboard_device_cookie_t   cookie  /**< */,
5011                                         xcb_generic_error_t                       **e);
5012 
5013 /**
5014  *
5015  * @param c The connection
5016  * @return A cookie
5017  *
5018  * Delivers a request to the X server.
5019  *
5020  */
5021 xcb_input_change_pointer_device_cookie_t
5022 xcb_input_change_pointer_device (xcb_connection_t *c,
5023                                  uint8_t           x_axis,
5024                                  uint8_t           y_axis,
5025                                  uint8_t           device_id);
5026 
5027 /**
5028  *
5029  * @param c The connection
5030  * @return A cookie
5031  *
5032  * Delivers a request to the X server.
5033  *
5034  * This form can be used only if the request will cause
5035  * a reply to be generated. Any returned error will be
5036  * placed in the event queue.
5037  */
5038 xcb_input_change_pointer_device_cookie_t
5039 xcb_input_change_pointer_device_unchecked (xcb_connection_t *c,
5040                                            uint8_t           x_axis,
5041                                            uint8_t           y_axis,
5042                                            uint8_t           device_id);
5043 
5044 /**
5045  * Return the reply
5046  * @param c      The connection
5047  * @param cookie The cookie
5048  * @param e      The xcb_generic_error_t supplied
5049  *
5050  * Returns the reply of the request asked by
5051  *
5052  * The parameter @p e supplied to this function must be NULL if
5053  * xcb_input_change_pointer_device_unchecked(). is used.
5054  * Otherwise, it stores the error if any.
5055  *
5056  * The returned value must be freed by the caller using free().
5057  */
5058 xcb_input_change_pointer_device_reply_t *
5059 xcb_input_change_pointer_device_reply (xcb_connection_t                          *c,
5060                                        xcb_input_change_pointer_device_cookie_t   cookie  /**< */,
5061                                        xcb_generic_error_t                      **e);
5062 
5063 int
5064 xcb_input_grab_device_sizeof (const void  *_buffer);
5065 
5066 /**
5067  *
5068  * @param c The connection
5069  * @return A cookie
5070  *
5071  * Delivers a request to the X server.
5072  *
5073  */
5074 xcb_input_grab_device_cookie_t
5075 xcb_input_grab_device (xcb_connection_t              *c,
5076                        xcb_window_t                   grab_window,
5077                        xcb_timestamp_t                time,
5078                        uint16_t                       num_classes,
5079                        uint8_t                        this_device_mode,
5080                        uint8_t                        other_device_mode,
5081                        uint8_t                        owner_events,
5082                        uint8_t                        device_id,
5083                        const xcb_input_event_class_t *classes);
5084 
5085 /**
5086  *
5087  * @param c The connection
5088  * @return A cookie
5089  *
5090  * Delivers a request to the X server.
5091  *
5092  * This form can be used only if the request will cause
5093  * a reply to be generated. Any returned error will be
5094  * placed in the event queue.
5095  */
5096 xcb_input_grab_device_cookie_t
5097 xcb_input_grab_device_unchecked (xcb_connection_t              *c,
5098                                  xcb_window_t                   grab_window,
5099                                  xcb_timestamp_t                time,
5100                                  uint16_t                       num_classes,
5101                                  uint8_t                        this_device_mode,
5102                                  uint8_t                        other_device_mode,
5103                                  uint8_t                        owner_events,
5104                                  uint8_t                        device_id,
5105                                  const xcb_input_event_class_t *classes);
5106 
5107 /**
5108  * Return the reply
5109  * @param c      The connection
5110  * @param cookie The cookie
5111  * @param e      The xcb_generic_error_t supplied
5112  *
5113  * Returns the reply of the request asked by
5114  *
5115  * The parameter @p e supplied to this function must be NULL if
5116  * xcb_input_grab_device_unchecked(). is used.
5117  * Otherwise, it stores the error if any.
5118  *
5119  * The returned value must be freed by the caller using free().
5120  */
5121 xcb_input_grab_device_reply_t *
5122 xcb_input_grab_device_reply (xcb_connection_t                *c,
5123                              xcb_input_grab_device_cookie_t   cookie  /**< */,
5124                              xcb_generic_error_t            **e);
5125 
5126 /**
5127  *
5128  * @param c The connection
5129  * @return A cookie
5130  *
5131  * Delivers a request to the X server.
5132  *
5133  * This form can be used only if the request will not cause
5134  * a reply to be generated. Any returned error will be
5135  * saved for handling by xcb_request_check().
5136  */
5137 xcb_void_cookie_t
5138 xcb_input_ungrab_device_checked (xcb_connection_t *c,
5139                                  xcb_timestamp_t   time,
5140                                  uint8_t           device_id);
5141 
5142 /**
5143  *
5144  * @param c The connection
5145  * @return A cookie
5146  *
5147  * Delivers a request to the X server.
5148  *
5149  */
5150 xcb_void_cookie_t
5151 xcb_input_ungrab_device (xcb_connection_t *c,
5152                          xcb_timestamp_t   time,
5153                          uint8_t           device_id);
5154 
5155 int
5156 xcb_input_grab_device_key_sizeof (const void  *_buffer);
5157 
5158 /**
5159  *
5160  * @param c The connection
5161  * @return A cookie
5162  *
5163  * Delivers a request to the X server.
5164  *
5165  * This form can be used only if the request will not cause
5166  * a reply to be generated. Any returned error will be
5167  * saved for handling by xcb_request_check().
5168  */
5169 xcb_void_cookie_t
5170 xcb_input_grab_device_key_checked (xcb_connection_t              *c,
5171                                    xcb_window_t                   grab_window,
5172                                    uint16_t                       num_classes,
5173                                    uint16_t                       modifiers,
5174                                    uint8_t                        modifier_device,
5175                                    uint8_t                        grabbed_device,
5176                                    uint8_t                        key,
5177                                    uint8_t                        this_device_mode,
5178                                    uint8_t                        other_device_mode,
5179                                    uint8_t                        owner_events,
5180                                    const xcb_input_event_class_t *classes);
5181 
5182 /**
5183  *
5184  * @param c The connection
5185  * @return A cookie
5186  *
5187  * Delivers a request to the X server.
5188  *
5189  */
5190 xcb_void_cookie_t
5191 xcb_input_grab_device_key (xcb_connection_t              *c,
5192                            xcb_window_t                   grab_window,
5193                            uint16_t                       num_classes,
5194                            uint16_t                       modifiers,
5195                            uint8_t                        modifier_device,
5196                            uint8_t                        grabbed_device,
5197                            uint8_t                        key,
5198                            uint8_t                        this_device_mode,
5199                            uint8_t                        other_device_mode,
5200                            uint8_t                        owner_events,
5201                            const xcb_input_event_class_t *classes);
5202 
5203 xcb_input_event_class_t *
5204 xcb_input_grab_device_key_classes (const xcb_input_grab_device_key_request_t *R);
5205 
5206 int
5207 xcb_input_grab_device_key_classes_length (const xcb_input_grab_device_key_request_t *R);
5208 
5209 xcb_generic_iterator_t
5210 xcb_input_grab_device_key_classes_end (const xcb_input_grab_device_key_request_t *R);
5211 
5212 /**
5213  *
5214  * @param c The connection
5215  * @return A cookie
5216  *
5217  * Delivers a request to the X server.
5218  *
5219  * This form can be used only if the request will not cause
5220  * a reply to be generated. Any returned error will be
5221  * saved for handling by xcb_request_check().
5222  */
5223 xcb_void_cookie_t
5224 xcb_input_ungrab_device_key_checked (xcb_connection_t *c,
5225                                      xcb_window_t      grabWindow,
5226                                      uint16_t          modifiers,
5227                                      uint8_t           modifier_device,
5228                                      uint8_t           key,
5229                                      uint8_t           grabbed_device);
5230 
5231 /**
5232  *
5233  * @param c The connection
5234  * @return A cookie
5235  *
5236  * Delivers a request to the X server.
5237  *
5238  */
5239 xcb_void_cookie_t
5240 xcb_input_ungrab_device_key (xcb_connection_t *c,
5241                              xcb_window_t      grabWindow,
5242                              uint16_t          modifiers,
5243                              uint8_t           modifier_device,
5244                              uint8_t           key,
5245                              uint8_t           grabbed_device);
5246 
5247 int
5248 xcb_input_grab_device_button_sizeof (const void  *_buffer);
5249 
5250 /**
5251  *
5252  * @param c The connection
5253  * @return A cookie
5254  *
5255  * Delivers a request to the X server.
5256  *
5257  * This form can be used only if the request will not cause
5258  * a reply to be generated. Any returned error will be
5259  * saved for handling by xcb_request_check().
5260  */
5261 xcb_void_cookie_t
5262 xcb_input_grab_device_button_checked (xcb_connection_t              *c,
5263                                       xcb_window_t                   grab_window,
5264                                       uint8_t                        grabbed_device,
5265                                       uint8_t                        modifier_device,
5266                                       uint16_t                       num_classes,
5267                                       uint16_t                       modifiers,
5268                                       uint8_t                        this_device_mode,
5269                                       uint8_t                        other_device_mode,
5270                                       uint8_t                        button,
5271                                       uint8_t                        owner_events,
5272                                       const xcb_input_event_class_t *classes);
5273 
5274 /**
5275  *
5276  * @param c The connection
5277  * @return A cookie
5278  *
5279  * Delivers a request to the X server.
5280  *
5281  */
5282 xcb_void_cookie_t
5283 xcb_input_grab_device_button (xcb_connection_t              *c,
5284                               xcb_window_t                   grab_window,
5285                               uint8_t                        grabbed_device,
5286                               uint8_t                        modifier_device,
5287                               uint16_t                       num_classes,
5288                               uint16_t                       modifiers,
5289                               uint8_t                        this_device_mode,
5290                               uint8_t                        other_device_mode,
5291                               uint8_t                        button,
5292                               uint8_t                        owner_events,
5293                               const xcb_input_event_class_t *classes);
5294 
5295 xcb_input_event_class_t *
5296 xcb_input_grab_device_button_classes (const xcb_input_grab_device_button_request_t *R);
5297 
5298 int
5299 xcb_input_grab_device_button_classes_length (const xcb_input_grab_device_button_request_t *R);
5300 
5301 xcb_generic_iterator_t
5302 xcb_input_grab_device_button_classes_end (const xcb_input_grab_device_button_request_t *R);
5303 
5304 /**
5305  *
5306  * @param c The connection
5307  * @return A cookie
5308  *
5309  * Delivers a request to the X server.
5310  *
5311  * This form can be used only if the request will not cause
5312  * a reply to be generated. Any returned error will be
5313  * saved for handling by xcb_request_check().
5314  */
5315 xcb_void_cookie_t
5316 xcb_input_ungrab_device_button_checked (xcb_connection_t *c,
5317                                         xcb_window_t      grab_window,
5318                                         uint16_t          modifiers,
5319                                         uint8_t           modifier_device,
5320                                         uint8_t           button,
5321                                         uint8_t           grabbed_device);
5322 
5323 /**
5324  *
5325  * @param c The connection
5326  * @return A cookie
5327  *
5328  * Delivers a request to the X server.
5329  *
5330  */
5331 xcb_void_cookie_t
5332 xcb_input_ungrab_device_button (xcb_connection_t *c,
5333                                 xcb_window_t      grab_window,
5334                                 uint16_t          modifiers,
5335                                 uint8_t           modifier_device,
5336                                 uint8_t           button,
5337                                 uint8_t           grabbed_device);
5338 
5339 /**
5340  *
5341  * @param c The connection
5342  * @return A cookie
5343  *
5344  * Delivers a request to the X server.
5345  *
5346  * This form can be used only if the request will not cause
5347  * a reply to be generated. Any returned error will be
5348  * saved for handling by xcb_request_check().
5349  */
5350 xcb_void_cookie_t
5351 xcb_input_allow_device_events_checked (xcb_connection_t *c,
5352                                        xcb_timestamp_t   time,
5353                                        uint8_t           mode,
5354                                        uint8_t           device_id);
5355 
5356 /**
5357  *
5358  * @param c The connection
5359  * @return A cookie
5360  *
5361  * Delivers a request to the X server.
5362  *
5363  */
5364 xcb_void_cookie_t
5365 xcb_input_allow_device_events (xcb_connection_t *c,
5366                                xcb_timestamp_t   time,
5367                                uint8_t           mode,
5368                                uint8_t           device_id);
5369 
5370 /**
5371  *
5372  * @param c The connection
5373  * @return A cookie
5374  *
5375  * Delivers a request to the X server.
5376  *
5377  */
5378 xcb_input_get_device_focus_cookie_t
5379 xcb_input_get_device_focus (xcb_connection_t *c,
5380                             uint8_t           device_id);
5381 
5382 /**
5383  *
5384  * @param c The connection
5385  * @return A cookie
5386  *
5387  * Delivers a request to the X server.
5388  *
5389  * This form can be used only if the request will cause
5390  * a reply to be generated. Any returned error will be
5391  * placed in the event queue.
5392  */
5393 xcb_input_get_device_focus_cookie_t
5394 xcb_input_get_device_focus_unchecked (xcb_connection_t *c,
5395                                       uint8_t           device_id);
5396 
5397 /**
5398  * Return the reply
5399  * @param c      The connection
5400  * @param cookie The cookie
5401  * @param e      The xcb_generic_error_t supplied
5402  *
5403  * Returns the reply of the request asked by
5404  *
5405  * The parameter @p e supplied to this function must be NULL if
5406  * xcb_input_get_device_focus_unchecked(). is used.
5407  * Otherwise, it stores the error if any.
5408  *
5409  * The returned value must be freed by the caller using free().
5410  */
5411 xcb_input_get_device_focus_reply_t *
5412 xcb_input_get_device_focus_reply (xcb_connection_t                     *c,
5413                                   xcb_input_get_device_focus_cookie_t   cookie  /**< */,
5414                                   xcb_generic_error_t                 **e);
5415 
5416 /**
5417  *
5418  * @param c The connection
5419  * @return A cookie
5420  *
5421  * Delivers a request to the X server.
5422  *
5423  * This form can be used only if the request will not cause
5424  * a reply to be generated. Any returned error will be
5425  * saved for handling by xcb_request_check().
5426  */
5427 xcb_void_cookie_t
5428 xcb_input_set_device_focus_checked (xcb_connection_t *c,
5429                                     xcb_window_t      focus,
5430                                     xcb_timestamp_t   time,
5431                                     uint8_t           revert_to,
5432                                     uint8_t           device_id);
5433 
5434 /**
5435  *
5436  * @param c The connection
5437  * @return A cookie
5438  *
5439  * Delivers a request to the X server.
5440  *
5441  */
5442 xcb_void_cookie_t
5443 xcb_input_set_device_focus (xcb_connection_t *c,
5444                             xcb_window_t      focus,
5445                             xcb_timestamp_t   time,
5446                             uint8_t           revert_to,
5447                             uint8_t           device_id);
5448 
5449 /**
5450  * Get the next element of the iterator
5451  * @param i Pointer to a xcb_input_kbd_feedback_state_iterator_t
5452  *
5453  * Get the next element in the iterator. The member rem is
5454  * decreased by one. The member data points to the next
5455  * element. The member index is increased by sizeof(xcb_input_kbd_feedback_state_t)
5456  */
5457 void
5458 xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i);
5459 
5460 /**
5461  * Return the iterator pointing to the last element
5462  * @param i An xcb_input_kbd_feedback_state_iterator_t
5463  * @return  The iterator pointing to the last element
5464  *
5465  * Set the current element in the iterator to the last element.
5466  * The member rem is set to 0. The member data points to the
5467  * last element.
5468  */
5469 xcb_generic_iterator_t
5470 xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i);
5471 
5472 /**
5473  * Get the next element of the iterator
5474  * @param i Pointer to a xcb_input_ptr_feedback_state_iterator_t
5475  *
5476  * Get the next element in the iterator. The member rem is
5477  * decreased by one. The member data points to the next
5478  * element. The member index is increased by sizeof(xcb_input_ptr_feedback_state_t)
5479  */
5480 void
5481 xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i);
5482 
5483 /**
5484  * Return the iterator pointing to the last element
5485  * @param i An xcb_input_ptr_feedback_state_iterator_t
5486  * @return  The iterator pointing to the last element
5487  *
5488  * Set the current element in the iterator to the last element.
5489  * The member rem is set to 0. The member data points to the
5490  * last element.
5491  */
5492 xcb_generic_iterator_t
5493 xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i);
5494 
5495 /**
5496  * Get the next element of the iterator
5497  * @param i Pointer to a xcb_input_integer_feedback_state_iterator_t
5498  *
5499  * Get the next element in the iterator. The member rem is
5500  * decreased by one. The member data points to the next
5501  * element. The member index is increased by sizeof(xcb_input_integer_feedback_state_t)
5502  */
5503 void
5504 xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i);
5505 
5506 /**
5507  * Return the iterator pointing to the last element
5508  * @param i An xcb_input_integer_feedback_state_iterator_t
5509  * @return  The iterator pointing to the last element
5510  *
5511  * Set the current element in the iterator to the last element.
5512  * The member rem is set to 0. The member data points to the
5513  * last element.
5514  */
5515 xcb_generic_iterator_t
5516 xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i);
5517 
5518 int
5519 xcb_input_string_feedback_state_sizeof (const void  *_buffer);
5520 
5521 xcb_keysym_t *
5522 xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R);
5523 
5524 int
5525 xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R);
5526 
5527 xcb_generic_iterator_t
5528 xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R);
5529 
5530 /**
5531  * Get the next element of the iterator
5532  * @param i Pointer to a xcb_input_string_feedback_state_iterator_t
5533  *
5534  * Get the next element in the iterator. The member rem is
5535  * decreased by one. The member data points to the next
5536  * element. The member index is increased by sizeof(xcb_input_string_feedback_state_t)
5537  */
5538 void
5539 xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i);
5540 
5541 /**
5542  * Return the iterator pointing to the last element
5543  * @param i An xcb_input_string_feedback_state_iterator_t
5544  * @return  The iterator pointing to the last element
5545  *
5546  * Set the current element in the iterator to the last element.
5547  * The member rem is set to 0. The member data points to the
5548  * last element.
5549  */
5550 xcb_generic_iterator_t
5551 xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i);
5552 
5553 /**
5554  * Get the next element of the iterator
5555  * @param i Pointer to a xcb_input_bell_feedback_state_iterator_t
5556  *
5557  * Get the next element in the iterator. The member rem is
5558  * decreased by one. The member data points to the next
5559  * element. The member index is increased by sizeof(xcb_input_bell_feedback_state_t)
5560  */
5561 void
5562 xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i);
5563 
5564 /**
5565  * Return the iterator pointing to the last element
5566  * @param i An xcb_input_bell_feedback_state_iterator_t
5567  * @return  The iterator pointing to the last element
5568  *
5569  * Set the current element in the iterator to the last element.
5570  * The member rem is set to 0. The member data points to the
5571  * last element.
5572  */
5573 xcb_generic_iterator_t
5574 xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i);
5575 
5576 /**
5577  * Get the next element of the iterator
5578  * @param i Pointer to a xcb_input_led_feedback_state_iterator_t
5579  *
5580  * Get the next element in the iterator. The member rem is
5581  * decreased by one. The member data points to the next
5582  * element. The member index is increased by sizeof(xcb_input_led_feedback_state_t)
5583  */
5584 void
5585 xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i);
5586 
5587 /**
5588  * Return the iterator pointing to the last element
5589  * @param i An xcb_input_led_feedback_state_iterator_t
5590  * @return  The iterator pointing to the last element
5591  *
5592  * Set the current element in the iterator to the last element.
5593  * The member rem is set to 0. The member data points to the
5594  * last element.
5595  */
5596 xcb_generic_iterator_t
5597 xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i);
5598 
5599 xcb_keysym_t *
5600 xcb_input_feedback_state_data_string_keysyms (const xcb_input_feedback_state_data_t *S);
5601 
5602 int
5603 xcb_input_feedback_state_data_string_keysyms_length (const xcb_input_feedback_state_t *R,
5604                                                      const xcb_input_feedback_state_data_t *S);
5605 
5606 xcb_generic_iterator_t
5607 xcb_input_feedback_state_data_string_keysyms_end (const xcb_input_feedback_state_t *R,
5608                                                   const xcb_input_feedback_state_data_t *S);
5609 
5610 int
5611 xcb_input_feedback_state_data_serialize (void                                  **_buffer,
5612                                          uint8_t                                 class_id,
5613                                          const xcb_input_feedback_state_data_t  *_aux);
5614 
5615 int
5616 xcb_input_feedback_state_data_unpack (const void                       *_buffer,
5617                                       uint8_t                           class_id,
5618                                       xcb_input_feedback_state_data_t  *_aux);
5619 
5620 int
5621 xcb_input_feedback_state_data_sizeof (const void  *_buffer,
5622                                       uint8_t      class_id);
5623 
5624 int
5625 xcb_input_feedback_state_sizeof (const void  *_buffer);
5626 
5627 /**
5628  * Get the next element of the iterator
5629  * @param i Pointer to a xcb_input_feedback_state_iterator_t
5630  *
5631  * Get the next element in the iterator. The member rem is
5632  * decreased by one. The member data points to the next
5633  * element. The member index is increased by sizeof(xcb_input_feedback_state_t)
5634  */
5635 void
5636 xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i);
5637 
5638 /**
5639  * Return the iterator pointing to the last element
5640  * @param i An xcb_input_feedback_state_iterator_t
5641  * @return  The iterator pointing to the last element
5642  *
5643  * Set the current element in the iterator to the last element.
5644  * The member rem is set to 0. The member data points to the
5645  * last element.
5646  */
5647 xcb_generic_iterator_t
5648 xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i);
5649 
5650 int
5651 xcb_input_get_feedback_control_sizeof (const void  *_buffer);
5652 
5653 /**
5654  *
5655  * @param c The connection
5656  * @return A cookie
5657  *
5658  * Delivers a request to the X server.
5659  *
5660  */
5661 xcb_input_get_feedback_control_cookie_t
5662 xcb_input_get_feedback_control (xcb_connection_t *c,
5663                                 uint8_t           device_id);
5664 
5665 /**
5666  *
5667  * @param c The connection
5668  * @return A cookie
5669  *
5670  * Delivers a request to the X server.
5671  *
5672  * This form can be used only if the request will cause
5673  * a reply to be generated. Any returned error will be
5674  * placed in the event queue.
5675  */
5676 xcb_input_get_feedback_control_cookie_t
5677 xcb_input_get_feedback_control_unchecked (xcb_connection_t *c,
5678                                           uint8_t           device_id);
5679 
5680 int
5681 xcb_input_get_feedback_control_feedbacks_length (const xcb_input_get_feedback_control_reply_t *R);
5682 
5683 xcb_input_feedback_state_iterator_t
5684 xcb_input_get_feedback_control_feedbacks_iterator (const xcb_input_get_feedback_control_reply_t *R);
5685 
5686 /**
5687  * Return the reply
5688  * @param c      The connection
5689  * @param cookie The cookie
5690  * @param e      The xcb_generic_error_t supplied
5691  *
5692  * Returns the reply of the request asked by
5693  *
5694  * The parameter @p e supplied to this function must be NULL if
5695  * xcb_input_get_feedback_control_unchecked(). is used.
5696  * Otherwise, it stores the error if any.
5697  *
5698  * The returned value must be freed by the caller using free().
5699  */
5700 xcb_input_get_feedback_control_reply_t *
5701 xcb_input_get_feedback_control_reply (xcb_connection_t                         *c,
5702                                       xcb_input_get_feedback_control_cookie_t   cookie  /**< */,
5703                                       xcb_generic_error_t                     **e);
5704 
5705 /**
5706  * Get the next element of the iterator
5707  * @param i Pointer to a xcb_input_kbd_feedback_ctl_iterator_t
5708  *
5709  * Get the next element in the iterator. The member rem is
5710  * decreased by one. The member data points to the next
5711  * element. The member index is increased by sizeof(xcb_input_kbd_feedback_ctl_t)
5712  */
5713 void
5714 xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i);
5715 
5716 /**
5717  * Return the iterator pointing to the last element
5718  * @param i An xcb_input_kbd_feedback_ctl_iterator_t
5719  * @return  The iterator pointing to the last element
5720  *
5721  * Set the current element in the iterator to the last element.
5722  * The member rem is set to 0. The member data points to the
5723  * last element.
5724  */
5725 xcb_generic_iterator_t
5726 xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i);
5727 
5728 /**
5729  * Get the next element of the iterator
5730  * @param i Pointer to a xcb_input_ptr_feedback_ctl_iterator_t
5731  *
5732  * Get the next element in the iterator. The member rem is
5733  * decreased by one. The member data points to the next
5734  * element. The member index is increased by sizeof(xcb_input_ptr_feedback_ctl_t)
5735  */
5736 void
5737 xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i);
5738 
5739 /**
5740  * Return the iterator pointing to the last element
5741  * @param i An xcb_input_ptr_feedback_ctl_iterator_t
5742  * @return  The iterator pointing to the last element
5743  *
5744  * Set the current element in the iterator to the last element.
5745  * The member rem is set to 0. The member data points to the
5746  * last element.
5747  */
5748 xcb_generic_iterator_t
5749 xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i);
5750 
5751 /**
5752  * Get the next element of the iterator
5753  * @param i Pointer to a xcb_input_integer_feedback_ctl_iterator_t
5754  *
5755  * Get the next element in the iterator. The member rem is
5756  * decreased by one. The member data points to the next
5757  * element. The member index is increased by sizeof(xcb_input_integer_feedback_ctl_t)
5758  */
5759 void
5760 xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i);
5761 
5762 /**
5763  * Return the iterator pointing to the last element
5764  * @param i An xcb_input_integer_feedback_ctl_iterator_t
5765  * @return  The iterator pointing to the last element
5766  *
5767  * Set the current element in the iterator to the last element.
5768  * The member rem is set to 0. The member data points to the
5769  * last element.
5770  */
5771 xcb_generic_iterator_t
5772 xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i);
5773 
5774 int
5775 xcb_input_string_feedback_ctl_sizeof (const void  *_buffer);
5776 
5777 xcb_keysym_t *
5778 xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R);
5779 
5780 int
5781 xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R);
5782 
5783 xcb_generic_iterator_t
5784 xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R);
5785 
5786 /**
5787  * Get the next element of the iterator
5788  * @param i Pointer to a xcb_input_string_feedback_ctl_iterator_t
5789  *
5790  * Get the next element in the iterator. The member rem is
5791  * decreased by one. The member data points to the next
5792  * element. The member index is increased by sizeof(xcb_input_string_feedback_ctl_t)
5793  */
5794 void
5795 xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i);
5796 
5797 /**
5798  * Return the iterator pointing to the last element
5799  * @param i An xcb_input_string_feedback_ctl_iterator_t
5800  * @return  The iterator pointing to the last element
5801  *
5802  * Set the current element in the iterator to the last element.
5803  * The member rem is set to 0. The member data points to the
5804  * last element.
5805  */
5806 xcb_generic_iterator_t
5807 xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i);
5808 
5809 /**
5810  * Get the next element of the iterator
5811  * @param i Pointer to a xcb_input_bell_feedback_ctl_iterator_t
5812  *
5813  * Get the next element in the iterator. The member rem is
5814  * decreased by one. The member data points to the next
5815  * element. The member index is increased by sizeof(xcb_input_bell_feedback_ctl_t)
5816  */
5817 void
5818 xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i);
5819 
5820 /**
5821  * Return the iterator pointing to the last element
5822  * @param i An xcb_input_bell_feedback_ctl_iterator_t
5823  * @return  The iterator pointing to the last element
5824  *
5825  * Set the current element in the iterator to the last element.
5826  * The member rem is set to 0. The member data points to the
5827  * last element.
5828  */
5829 xcb_generic_iterator_t
5830 xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i);
5831 
5832 /**
5833  * Get the next element of the iterator
5834  * @param i Pointer to a xcb_input_led_feedback_ctl_iterator_t
5835  *
5836  * Get the next element in the iterator. The member rem is
5837  * decreased by one. The member data points to the next
5838  * element. The member index is increased by sizeof(xcb_input_led_feedback_ctl_t)
5839  */
5840 void
5841 xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i);
5842 
5843 /**
5844  * Return the iterator pointing to the last element
5845  * @param i An xcb_input_led_feedback_ctl_iterator_t
5846  * @return  The iterator pointing to the last element
5847  *
5848  * Set the current element in the iterator to the last element.
5849  * The member rem is set to 0. The member data points to the
5850  * last element.
5851  */
5852 xcb_generic_iterator_t
5853 xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i);
5854 
5855 xcb_keysym_t *
5856 xcb_input_feedback_ctl_data_string_keysyms (const xcb_input_feedback_ctl_data_t *S);
5857 
5858 int
5859 xcb_input_feedback_ctl_data_string_keysyms_length (const xcb_input_feedback_ctl_t *R,
5860                                                    const xcb_input_feedback_ctl_data_t *S);
5861 
5862 xcb_generic_iterator_t
5863 xcb_input_feedback_ctl_data_string_keysyms_end (const xcb_input_feedback_ctl_t *R,
5864                                                 const xcb_input_feedback_ctl_data_t *S);
5865 
5866 int
5867 xcb_input_feedback_ctl_data_serialize (void                                **_buffer,
5868                                        uint8_t                               class_id,
5869                                        const xcb_input_feedback_ctl_data_t  *_aux);
5870 
5871 int
5872 xcb_input_feedback_ctl_data_unpack (const void                     *_buffer,
5873                                     uint8_t                         class_id,
5874                                     xcb_input_feedback_ctl_data_t  *_aux);
5875 
5876 int
5877 xcb_input_feedback_ctl_data_sizeof (const void  *_buffer,
5878                                     uint8_t      class_id);
5879 
5880 int
5881 xcb_input_feedback_ctl_sizeof (const void  *_buffer);
5882 
5883 /**
5884  * Get the next element of the iterator
5885  * @param i Pointer to a xcb_input_feedback_ctl_iterator_t
5886  *
5887  * Get the next element in the iterator. The member rem is
5888  * decreased by one. The member data points to the next
5889  * element. The member index is increased by sizeof(xcb_input_feedback_ctl_t)
5890  */
5891 void
5892 xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i);
5893 
5894 /**
5895  * Return the iterator pointing to the last element
5896  * @param i An xcb_input_feedback_ctl_iterator_t
5897  * @return  The iterator pointing to the last element
5898  *
5899  * Set the current element in the iterator to the last element.
5900  * The member rem is set to 0. The member data points to the
5901  * last element.
5902  */
5903 xcb_generic_iterator_t
5904 xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i);
5905 
5906 int
5907 xcb_input_change_feedback_control_sizeof (const void  *_buffer);
5908 
5909 /**
5910  *
5911  * @param c The connection
5912  * @return A cookie
5913  *
5914  * Delivers a request to the X server.
5915  *
5916  * This form can be used only if the request will not cause
5917  * a reply to be generated. Any returned error will be
5918  * saved for handling by xcb_request_check().
5919  */
5920 xcb_void_cookie_t
5921 xcb_input_change_feedback_control_checked (xcb_connection_t         *c,
5922                                            uint32_t                  mask,
5923                                            uint8_t                   device_id,
5924                                            uint8_t                   feedback_id,
5925                                            xcb_input_feedback_ctl_t *feedback);
5926 
5927 /**
5928  *
5929  * @param c The connection
5930  * @return A cookie
5931  *
5932  * Delivers a request to the X server.
5933  *
5934  */
5935 xcb_void_cookie_t
5936 xcb_input_change_feedback_control (xcb_connection_t         *c,
5937                                    uint32_t                  mask,
5938                                    uint8_t                   device_id,
5939                                    uint8_t                   feedback_id,
5940                                    xcb_input_feedback_ctl_t *feedback);
5941 
5942 xcb_input_feedback_ctl_t *
5943 xcb_input_change_feedback_control_feedback (const xcb_input_change_feedback_control_request_t *R);
5944 
5945 int
5946 xcb_input_get_device_key_mapping_sizeof (const void  *_buffer);
5947 
5948 /**
5949  *
5950  * @param c The connection
5951  * @return A cookie
5952  *
5953  * Delivers a request to the X server.
5954  *
5955  */
5956 xcb_input_get_device_key_mapping_cookie_t
5957 xcb_input_get_device_key_mapping (xcb_connection_t     *c,
5958                                   uint8_t               device_id,
5959                                   xcb_input_key_code_t  first_keycode,
5960                                   uint8_t               count);
5961 
5962 /**
5963  *
5964  * @param c The connection
5965  * @return A cookie
5966  *
5967  * Delivers a request to the X server.
5968  *
5969  * This form can be used only if the request will cause
5970  * a reply to be generated. Any returned error will be
5971  * placed in the event queue.
5972  */
5973 xcb_input_get_device_key_mapping_cookie_t
5974 xcb_input_get_device_key_mapping_unchecked (xcb_connection_t     *c,
5975                                             uint8_t               device_id,
5976                                             xcb_input_key_code_t  first_keycode,
5977                                             uint8_t               count);
5978 
5979 xcb_keysym_t *
5980 xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R);
5981 
5982 int
5983 xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R);
5984 
5985 xcb_generic_iterator_t
5986 xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R);
5987 
5988 /**
5989  * Return the reply
5990  * @param c      The connection
5991  * @param cookie The cookie
5992  * @param e      The xcb_generic_error_t supplied
5993  *
5994  * Returns the reply of the request asked by
5995  *
5996  * The parameter @p e supplied to this function must be NULL if
5997  * xcb_input_get_device_key_mapping_unchecked(). is used.
5998  * Otherwise, it stores the error if any.
5999  *
6000  * The returned value must be freed by the caller using free().
6001  */
6002 xcb_input_get_device_key_mapping_reply_t *
6003 xcb_input_get_device_key_mapping_reply (xcb_connection_t                           *c,
6004                                         xcb_input_get_device_key_mapping_cookie_t   cookie  /**< */,
6005                                         xcb_generic_error_t                       **e);
6006 
6007 int
6008 xcb_input_change_device_key_mapping_sizeof (const void  *_buffer);
6009 
6010 /**
6011  *
6012  * @param c The connection
6013  * @return A cookie
6014  *
6015  * Delivers a request to the X server.
6016  *
6017  * This form can be used only if the request will not cause
6018  * a reply to be generated. Any returned error will be
6019  * saved for handling by xcb_request_check().
6020  */
6021 xcb_void_cookie_t
6022 xcb_input_change_device_key_mapping_checked (xcb_connection_t     *c,
6023                                              uint8_t               device_id,
6024                                              xcb_input_key_code_t  first_keycode,
6025                                              uint8_t               keysyms_per_keycode,
6026                                              uint8_t               keycode_count,
6027                                              const xcb_keysym_t   *keysyms);
6028 
6029 /**
6030  *
6031  * @param c The connection
6032  * @return A cookie
6033  *
6034  * Delivers a request to the X server.
6035  *
6036  */
6037 xcb_void_cookie_t
6038 xcb_input_change_device_key_mapping (xcb_connection_t     *c,
6039                                      uint8_t               device_id,
6040                                      xcb_input_key_code_t  first_keycode,
6041                                      uint8_t               keysyms_per_keycode,
6042                                      uint8_t               keycode_count,
6043                                      const xcb_keysym_t   *keysyms);
6044 
6045 xcb_keysym_t *
6046 xcb_input_change_device_key_mapping_keysyms (const xcb_input_change_device_key_mapping_request_t *R);
6047 
6048 int
6049 xcb_input_change_device_key_mapping_keysyms_length (const xcb_input_change_device_key_mapping_request_t *R);
6050 
6051 xcb_generic_iterator_t
6052 xcb_input_change_device_key_mapping_keysyms_end (const xcb_input_change_device_key_mapping_request_t *R);
6053 
6054 int
6055 xcb_input_get_device_modifier_mapping_sizeof (const void  *_buffer);
6056 
6057 /**
6058  *
6059  * @param c The connection
6060  * @return A cookie
6061  *
6062  * Delivers a request to the X server.
6063  *
6064  */
6065 xcb_input_get_device_modifier_mapping_cookie_t
6066 xcb_input_get_device_modifier_mapping (xcb_connection_t *c,
6067                                        uint8_t           device_id);
6068 
6069 /**
6070  *
6071  * @param c The connection
6072  * @return A cookie
6073  *
6074  * Delivers a request to the X server.
6075  *
6076  * This form can be used only if the request will cause
6077  * a reply to be generated. Any returned error will be
6078  * placed in the event queue.
6079  */
6080 xcb_input_get_device_modifier_mapping_cookie_t
6081 xcb_input_get_device_modifier_mapping_unchecked (xcb_connection_t *c,
6082                                                  uint8_t           device_id);
6083 
6084 uint8_t *
6085 xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R);
6086 
6087 int
6088 xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R);
6089 
6090 xcb_generic_iterator_t
6091 xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R);
6092 
6093 /**
6094  * Return the reply
6095  * @param c      The connection
6096  * @param cookie The cookie
6097  * @param e      The xcb_generic_error_t supplied
6098  *
6099  * Returns the reply of the request asked by
6100  *
6101  * The parameter @p e supplied to this function must be NULL if
6102  * xcb_input_get_device_modifier_mapping_unchecked(). is used.
6103  * Otherwise, it stores the error if any.
6104  *
6105  * The returned value must be freed by the caller using free().
6106  */
6107 xcb_input_get_device_modifier_mapping_reply_t *
6108 xcb_input_get_device_modifier_mapping_reply (xcb_connection_t                                *c,
6109                                              xcb_input_get_device_modifier_mapping_cookie_t   cookie  /**< */,
6110                                              xcb_generic_error_t                            **e);
6111 
6112 int
6113 xcb_input_set_device_modifier_mapping_sizeof (const void  *_buffer);
6114 
6115 /**
6116  *
6117  * @param c The connection
6118  * @return A cookie
6119  *
6120  * Delivers a request to the X server.
6121  *
6122  */
6123 xcb_input_set_device_modifier_mapping_cookie_t
6124 xcb_input_set_device_modifier_mapping (xcb_connection_t *c,
6125                                        uint8_t           device_id,
6126                                        uint8_t           keycodes_per_modifier,
6127                                        const uint8_t    *keymaps);
6128 
6129 /**
6130  *
6131  * @param c The connection
6132  * @return A cookie
6133  *
6134  * Delivers a request to the X server.
6135  *
6136  * This form can be used only if the request will cause
6137  * a reply to be generated. Any returned error will be
6138  * placed in the event queue.
6139  */
6140 xcb_input_set_device_modifier_mapping_cookie_t
6141 xcb_input_set_device_modifier_mapping_unchecked (xcb_connection_t *c,
6142                                                  uint8_t           device_id,
6143                                                  uint8_t           keycodes_per_modifier,
6144                                                  const uint8_t    *keymaps);
6145 
6146 /**
6147  * Return the reply
6148  * @param c      The connection
6149  * @param cookie The cookie
6150  * @param e      The xcb_generic_error_t supplied
6151  *
6152  * Returns the reply of the request asked by
6153  *
6154  * The parameter @p e supplied to this function must be NULL if
6155  * xcb_input_set_device_modifier_mapping_unchecked(). is used.
6156  * Otherwise, it stores the error if any.
6157  *
6158  * The returned value must be freed by the caller using free().
6159  */
6160 xcb_input_set_device_modifier_mapping_reply_t *
6161 xcb_input_set_device_modifier_mapping_reply (xcb_connection_t                                *c,
6162                                              xcb_input_set_device_modifier_mapping_cookie_t   cookie  /**< */,
6163                                              xcb_generic_error_t                            **e);
6164 
6165 int
6166 xcb_input_get_device_button_mapping_sizeof (const void  *_buffer);
6167 
6168 /**
6169  *
6170  * @param c The connection
6171  * @return A cookie
6172  *
6173  * Delivers a request to the X server.
6174  *
6175  */
6176 xcb_input_get_device_button_mapping_cookie_t
6177 xcb_input_get_device_button_mapping (xcb_connection_t *c,
6178                                      uint8_t           device_id);
6179 
6180 /**
6181  *
6182  * @param c The connection
6183  * @return A cookie
6184  *
6185  * Delivers a request to the X server.
6186  *
6187  * This form can be used only if the request will cause
6188  * a reply to be generated. Any returned error will be
6189  * placed in the event queue.
6190  */
6191 xcb_input_get_device_button_mapping_cookie_t
6192 xcb_input_get_device_button_mapping_unchecked (xcb_connection_t *c,
6193                                                uint8_t           device_id);
6194 
6195 uint8_t *
6196 xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R);
6197 
6198 int
6199 xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R);
6200 
6201 xcb_generic_iterator_t
6202 xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R);
6203 
6204 /**
6205  * Return the reply
6206  * @param c      The connection
6207  * @param cookie The cookie
6208  * @param e      The xcb_generic_error_t supplied
6209  *
6210  * Returns the reply of the request asked by
6211  *
6212  * The parameter @p e supplied to this function must be NULL if
6213  * xcb_input_get_device_button_mapping_unchecked(). is used.
6214  * Otherwise, it stores the error if any.
6215  *
6216  * The returned value must be freed by the caller using free().
6217  */
6218 xcb_input_get_device_button_mapping_reply_t *
6219 xcb_input_get_device_button_mapping_reply (xcb_connection_t                              *c,
6220                                            xcb_input_get_device_button_mapping_cookie_t   cookie  /**< */,
6221                                            xcb_generic_error_t                          **e);
6222 
6223 int
6224 xcb_input_set_device_button_mapping_sizeof (const void  *_buffer);
6225 
6226 /**
6227  *
6228  * @param c The connection
6229  * @return A cookie
6230  *
6231  * Delivers a request to the X server.
6232  *
6233  */
6234 xcb_input_set_device_button_mapping_cookie_t
6235 xcb_input_set_device_button_mapping (xcb_connection_t *c,
6236                                      uint8_t           device_id,
6237                                      uint8_t           map_size,
6238                                      const uint8_t    *map);
6239 
6240 /**
6241  *
6242  * @param c The connection
6243  * @return A cookie
6244  *
6245  * Delivers a request to the X server.
6246  *
6247  * This form can be used only if the request will cause
6248  * a reply to be generated. Any returned error will be
6249  * placed in the event queue.
6250  */
6251 xcb_input_set_device_button_mapping_cookie_t
6252 xcb_input_set_device_button_mapping_unchecked (xcb_connection_t *c,
6253                                                uint8_t           device_id,
6254                                                uint8_t           map_size,
6255                                                const uint8_t    *map);
6256 
6257 /**
6258  * Return the reply
6259  * @param c      The connection
6260  * @param cookie The cookie
6261  * @param e      The xcb_generic_error_t supplied
6262  *
6263  * Returns the reply of the request asked by
6264  *
6265  * The parameter @p e supplied to this function must be NULL if
6266  * xcb_input_set_device_button_mapping_unchecked(). is used.
6267  * Otherwise, it stores the error if any.
6268  *
6269  * The returned value must be freed by the caller using free().
6270  */
6271 xcb_input_set_device_button_mapping_reply_t *
6272 xcb_input_set_device_button_mapping_reply (xcb_connection_t                              *c,
6273                                            xcb_input_set_device_button_mapping_cookie_t   cookie  /**< */,
6274                                            xcb_generic_error_t                          **e);
6275 
6276 /**
6277  * Get the next element of the iterator
6278  * @param i Pointer to a xcb_input_key_state_iterator_t
6279  *
6280  * Get the next element in the iterator. The member rem is
6281  * decreased by one. The member data points to the next
6282  * element. The member index is increased by sizeof(xcb_input_key_state_t)
6283  */
6284 void
6285 xcb_input_key_state_next (xcb_input_key_state_iterator_t *i);
6286 
6287 /**
6288  * Return the iterator pointing to the last element
6289  * @param i An xcb_input_key_state_iterator_t
6290  * @return  The iterator pointing to the last element
6291  *
6292  * Set the current element in the iterator to the last element.
6293  * The member rem is set to 0. The member data points to the
6294  * last element.
6295  */
6296 xcb_generic_iterator_t
6297 xcb_input_key_state_end (xcb_input_key_state_iterator_t i);
6298 
6299 /**
6300  * Get the next element of the iterator
6301  * @param i Pointer to a xcb_input_button_state_iterator_t
6302  *
6303  * Get the next element in the iterator. The member rem is
6304  * decreased by one. The member data points to the next
6305  * element. The member index is increased by sizeof(xcb_input_button_state_t)
6306  */
6307 void
6308 xcb_input_button_state_next (xcb_input_button_state_iterator_t *i);
6309 
6310 /**
6311  * Return the iterator pointing to the last element
6312  * @param i An xcb_input_button_state_iterator_t
6313  * @return  The iterator pointing to the last element
6314  *
6315  * Set the current element in the iterator to the last element.
6316  * The member rem is set to 0. The member data points to the
6317  * last element.
6318  */
6319 xcb_generic_iterator_t
6320 xcb_input_button_state_end (xcb_input_button_state_iterator_t i);
6321 
6322 int
6323 xcb_input_valuator_state_sizeof (const void  *_buffer);
6324 
6325 int32_t *
6326 xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R);
6327 
6328 int
6329 xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R);
6330 
6331 xcb_generic_iterator_t
6332 xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R);
6333 
6334 /**
6335  * Get the next element of the iterator
6336  * @param i Pointer to a xcb_input_valuator_state_iterator_t
6337  *
6338  * Get the next element in the iterator. The member rem is
6339  * decreased by one. The member data points to the next
6340  * element. The member index is increased by sizeof(xcb_input_valuator_state_t)
6341  */
6342 void
6343 xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i);
6344 
6345 /**
6346  * Return the iterator pointing to the last element
6347  * @param i An xcb_input_valuator_state_iterator_t
6348  * @return  The iterator pointing to the last element
6349  *
6350  * Set the current element in the iterator to the last element.
6351  * The member rem is set to 0. The member data points to the
6352  * last element.
6353  */
6354 xcb_generic_iterator_t
6355 xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i);
6356 
6357 int32_t *
6358 xcb_input_input_state_data_valuator_valuators (const xcb_input_input_state_data_t *S);
6359 
6360 int
6361 xcb_input_input_state_data_valuator_valuators_length (const xcb_input_input_state_t *R,
6362                                                       const xcb_input_input_state_data_t *S);
6363 
6364 xcb_generic_iterator_t
6365 xcb_input_input_state_data_valuator_valuators_end (const xcb_input_input_state_t *R,
6366                                                    const xcb_input_input_state_data_t *S);
6367 
6368 int
6369 xcb_input_input_state_data_serialize (void                               **_buffer,
6370                                       uint8_t                              class_id,
6371                                       const xcb_input_input_state_data_t  *_aux);
6372 
6373 int
6374 xcb_input_input_state_data_unpack (const void                    *_buffer,
6375                                    uint8_t                        class_id,
6376                                    xcb_input_input_state_data_t  *_aux);
6377 
6378 int
6379 xcb_input_input_state_data_sizeof (const void  *_buffer,
6380                                    uint8_t      class_id);
6381 
6382 int
6383 xcb_input_input_state_sizeof (const void  *_buffer);
6384 
6385 /**
6386  * Get the next element of the iterator
6387  * @param i Pointer to a xcb_input_input_state_iterator_t
6388  *
6389  * Get the next element in the iterator. The member rem is
6390  * decreased by one. The member data points to the next
6391  * element. The member index is increased by sizeof(xcb_input_input_state_t)
6392  */
6393 void
6394 xcb_input_input_state_next (xcb_input_input_state_iterator_t *i);
6395 
6396 /**
6397  * Return the iterator pointing to the last element
6398  * @param i An xcb_input_input_state_iterator_t
6399  * @return  The iterator pointing to the last element
6400  *
6401  * Set the current element in the iterator to the last element.
6402  * The member rem is set to 0. The member data points to the
6403  * last element.
6404  */
6405 xcb_generic_iterator_t
6406 xcb_input_input_state_end (xcb_input_input_state_iterator_t i);
6407 
6408 int
6409 xcb_input_query_device_state_sizeof (const void  *_buffer);
6410 
6411 /**
6412  *
6413  * @param c The connection
6414  * @return A cookie
6415  *
6416  * Delivers a request to the X server.
6417  *
6418  */
6419 xcb_input_query_device_state_cookie_t
6420 xcb_input_query_device_state (xcb_connection_t *c,
6421                               uint8_t           device_id);
6422 
6423 /**
6424  *
6425  * @param c The connection
6426  * @return A cookie
6427  *
6428  * Delivers a request to the X server.
6429  *
6430  * This form can be used only if the request will cause
6431  * a reply to be generated. Any returned error will be
6432  * placed in the event queue.
6433  */
6434 xcb_input_query_device_state_cookie_t
6435 xcb_input_query_device_state_unchecked (xcb_connection_t *c,
6436                                         uint8_t           device_id);
6437 
6438 int
6439 xcb_input_query_device_state_classes_length (const xcb_input_query_device_state_reply_t *R);
6440 
6441 xcb_input_input_state_iterator_t
6442 xcb_input_query_device_state_classes_iterator (const xcb_input_query_device_state_reply_t *R);
6443 
6444 /**
6445  * Return the reply
6446  * @param c      The connection
6447  * @param cookie The cookie
6448  * @param e      The xcb_generic_error_t supplied
6449  *
6450  * Returns the reply of the request asked by
6451  *
6452  * The parameter @p e supplied to this function must be NULL if
6453  * xcb_input_query_device_state_unchecked(). is used.
6454  * Otherwise, it stores the error if any.
6455  *
6456  * The returned value must be freed by the caller using free().
6457  */
6458 xcb_input_query_device_state_reply_t *
6459 xcb_input_query_device_state_reply (xcb_connection_t                       *c,
6460                                     xcb_input_query_device_state_cookie_t   cookie  /**< */,
6461                                     xcb_generic_error_t                   **e);
6462 
6463 /**
6464  *
6465  * @param c The connection
6466  * @return A cookie
6467  *
6468  * Delivers a request to the X server.
6469  *
6470  * This form can be used only if the request will not cause
6471  * a reply to be generated. Any returned error will be
6472  * saved for handling by xcb_request_check().
6473  */
6474 xcb_void_cookie_t
6475 xcb_input_device_bell_checked (xcb_connection_t *c,
6476                                uint8_t           device_id,
6477                                uint8_t           feedback_id,
6478                                uint8_t           feedback_class,
6479                                int8_t            percent);
6480 
6481 /**
6482  *
6483  * @param c The connection
6484  * @return A cookie
6485  *
6486  * Delivers a request to the X server.
6487  *
6488  */
6489 xcb_void_cookie_t
6490 xcb_input_device_bell (xcb_connection_t *c,
6491                        uint8_t           device_id,
6492                        uint8_t           feedback_id,
6493                        uint8_t           feedback_class,
6494                        int8_t            percent);
6495 
6496 int
6497 xcb_input_set_device_valuators_sizeof (const void  *_buffer);
6498 
6499 /**
6500  *
6501  * @param c The connection
6502  * @return A cookie
6503  *
6504  * Delivers a request to the X server.
6505  *
6506  */
6507 xcb_input_set_device_valuators_cookie_t
6508 xcb_input_set_device_valuators (xcb_connection_t *c,
6509                                 uint8_t           device_id,
6510                                 uint8_t           first_valuator,
6511                                 uint8_t           num_valuators,
6512                                 const int32_t    *valuators);
6513 
6514 /**
6515  *
6516  * @param c The connection
6517  * @return A cookie
6518  *
6519  * Delivers a request to the X server.
6520  *
6521  * This form can be used only if the request will cause
6522  * a reply to be generated. Any returned error will be
6523  * placed in the event queue.
6524  */
6525 xcb_input_set_device_valuators_cookie_t
6526 xcb_input_set_device_valuators_unchecked (xcb_connection_t *c,
6527                                           uint8_t           device_id,
6528                                           uint8_t           first_valuator,
6529                                           uint8_t           num_valuators,
6530                                           const int32_t    *valuators);
6531 
6532 /**
6533  * Return the reply
6534  * @param c      The connection
6535  * @param cookie The cookie
6536  * @param e      The xcb_generic_error_t supplied
6537  *
6538  * Returns the reply of the request asked by
6539  *
6540  * The parameter @p e supplied to this function must be NULL if
6541  * xcb_input_set_device_valuators_unchecked(). is used.
6542  * Otherwise, it stores the error if any.
6543  *
6544  * The returned value must be freed by the caller using free().
6545  */
6546 xcb_input_set_device_valuators_reply_t *
6547 xcb_input_set_device_valuators_reply (xcb_connection_t                         *c,
6548                                       xcb_input_set_device_valuators_cookie_t   cookie  /**< */,
6549                                       xcb_generic_error_t                     **e);
6550 
6551 int
6552 xcb_input_device_resolution_state_sizeof (const void  *_buffer);
6553 
6554 uint32_t *
6555 xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R);
6556 
6557 int
6558 xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R);
6559 
6560 xcb_generic_iterator_t
6561 xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R);
6562 
6563 uint32_t *
6564 xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R);
6565 
6566 int
6567 xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R);
6568 
6569 xcb_generic_iterator_t
6570 xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R);
6571 
6572 uint32_t *
6573 xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R);
6574 
6575 int
6576 xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R);
6577 
6578 xcb_generic_iterator_t
6579 xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R);
6580 
6581 /**
6582  * Get the next element of the iterator
6583  * @param i Pointer to a xcb_input_device_resolution_state_iterator_t
6584  *
6585  * Get the next element in the iterator. The member rem is
6586  * decreased by one. The member data points to the next
6587  * element. The member index is increased by sizeof(xcb_input_device_resolution_state_t)
6588  */
6589 void
6590 xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i);
6591 
6592 /**
6593  * Return the iterator pointing to the last element
6594  * @param i An xcb_input_device_resolution_state_iterator_t
6595  * @return  The iterator pointing to the last element
6596  *
6597  * Set the current element in the iterator to the last element.
6598  * The member rem is set to 0. The member data points to the
6599  * last element.
6600  */
6601 xcb_generic_iterator_t
6602 xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i);
6603 
6604 /**
6605  * Get the next element of the iterator
6606  * @param i Pointer to a xcb_input_device_abs_calib_state_iterator_t
6607  *
6608  * Get the next element in the iterator. The member rem is
6609  * decreased by one. The member data points to the next
6610  * element. The member index is increased by sizeof(xcb_input_device_abs_calib_state_t)
6611  */
6612 void
6613 xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i);
6614 
6615 /**
6616  * Return the iterator pointing to the last element
6617  * @param i An xcb_input_device_abs_calib_state_iterator_t
6618  * @return  The iterator pointing to the last element
6619  *
6620  * Set the current element in the iterator to the last element.
6621  * The member rem is set to 0. The member data points to the
6622  * last element.
6623  */
6624 xcb_generic_iterator_t
6625 xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i);
6626 
6627 /**
6628  * Get the next element of the iterator
6629  * @param i Pointer to a xcb_input_device_abs_area_state_iterator_t
6630  *
6631  * Get the next element in the iterator. The member rem is
6632  * decreased by one. The member data points to the next
6633  * element. The member index is increased by sizeof(xcb_input_device_abs_area_state_t)
6634  */
6635 void
6636 xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i);
6637 
6638 /**
6639  * Return the iterator pointing to the last element
6640  * @param i An xcb_input_device_abs_area_state_iterator_t
6641  * @return  The iterator pointing to the last element
6642  *
6643  * Set the current element in the iterator to the last element.
6644  * The member rem is set to 0. The member data points to the
6645  * last element.
6646  */
6647 xcb_generic_iterator_t
6648 xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i);
6649 
6650 /**
6651  * Get the next element of the iterator
6652  * @param i Pointer to a xcb_input_device_core_state_iterator_t
6653  *
6654  * Get the next element in the iterator. The member rem is
6655  * decreased by one. The member data points to the next
6656  * element. The member index is increased by sizeof(xcb_input_device_core_state_t)
6657  */
6658 void
6659 xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i);
6660 
6661 /**
6662  * Return the iterator pointing to the last element
6663  * @param i An xcb_input_device_core_state_iterator_t
6664  * @return  The iterator pointing to the last element
6665  *
6666  * Set the current element in the iterator to the last element.
6667  * The member rem is set to 0. The member data points to the
6668  * last element.
6669  */
6670 xcb_generic_iterator_t
6671 xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i);
6672 
6673 /**
6674  * Get the next element of the iterator
6675  * @param i Pointer to a xcb_input_device_enable_state_iterator_t
6676  *
6677  * Get the next element in the iterator. The member rem is
6678  * decreased by one. The member data points to the next
6679  * element. The member index is increased by sizeof(xcb_input_device_enable_state_t)
6680  */
6681 void
6682 xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i);
6683 
6684 /**
6685  * Return the iterator pointing to the last element
6686  * @param i An xcb_input_device_enable_state_iterator_t
6687  * @return  The iterator pointing to the last element
6688  *
6689  * Set the current element in the iterator to the last element.
6690  * The member rem is set to 0. The member data points to the
6691  * last element.
6692  */
6693 xcb_generic_iterator_t
6694 xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i);
6695 
6696 uint32_t *
6697 xcb_input_device_state_data_resolution_resolution_values (const xcb_input_device_state_data_t *S);
6698 
6699 int
6700 xcb_input_device_state_data_resolution_resolution_values_length (const xcb_input_device_state_t *R,
6701                                                                  const xcb_input_device_state_data_t *S);
6702 
6703 xcb_generic_iterator_t
6704 xcb_input_device_state_data_resolution_resolution_values_end (const xcb_input_device_state_t *R,
6705                                                               const xcb_input_device_state_data_t *S);
6706 
6707 uint32_t *
6708 xcb_input_device_state_data_resolution_resolution_min (const xcb_input_device_state_data_t *S);
6709 
6710 int
6711 xcb_input_device_state_data_resolution_resolution_min_length (const xcb_input_device_state_t *R,
6712                                                               const xcb_input_device_state_data_t *S);
6713 
6714 xcb_generic_iterator_t
6715 xcb_input_device_state_data_resolution_resolution_min_end (const xcb_input_device_state_t *R,
6716                                                            const xcb_input_device_state_data_t *S);
6717 
6718 uint32_t *
6719 xcb_input_device_state_data_resolution_resolution_max (const xcb_input_device_state_data_t *S);
6720 
6721 int
6722 xcb_input_device_state_data_resolution_resolution_max_length (const xcb_input_device_state_t *R,
6723                                                               const xcb_input_device_state_data_t *S);
6724 
6725 xcb_generic_iterator_t
6726 xcb_input_device_state_data_resolution_resolution_max_end (const xcb_input_device_state_t *R,
6727                                                            const xcb_input_device_state_data_t *S);
6728 
6729 int
6730 xcb_input_device_state_data_serialize (void                                **_buffer,
6731                                        uint16_t                              control_id,
6732                                        const xcb_input_device_state_data_t  *_aux);
6733 
6734 int
6735 xcb_input_device_state_data_unpack (const void                     *_buffer,
6736                                     uint16_t                        control_id,
6737                                     xcb_input_device_state_data_t  *_aux);
6738 
6739 int
6740 xcb_input_device_state_data_sizeof (const void  *_buffer,
6741                                     uint16_t     control_id);
6742 
6743 int
6744 xcb_input_device_state_sizeof (const void  *_buffer);
6745 
6746 /**
6747  * Get the next element of the iterator
6748  * @param i Pointer to a xcb_input_device_state_iterator_t
6749  *
6750  * Get the next element in the iterator. The member rem is
6751  * decreased by one. The member data points to the next
6752  * element. The member index is increased by sizeof(xcb_input_device_state_t)
6753  */
6754 void
6755 xcb_input_device_state_next (xcb_input_device_state_iterator_t *i);
6756 
6757 /**
6758  * Return the iterator pointing to the last element
6759  * @param i An xcb_input_device_state_iterator_t
6760  * @return  The iterator pointing to the last element
6761  *
6762  * Set the current element in the iterator to the last element.
6763  * The member rem is set to 0. The member data points to the
6764  * last element.
6765  */
6766 xcb_generic_iterator_t
6767 xcb_input_device_state_end (xcb_input_device_state_iterator_t i);
6768 
6769 int
6770 xcb_input_get_device_control_sizeof (const void  *_buffer);
6771 
6772 /**
6773  *
6774  * @param c The connection
6775  * @return A cookie
6776  *
6777  * Delivers a request to the X server.
6778  *
6779  */
6780 xcb_input_get_device_control_cookie_t
6781 xcb_input_get_device_control (xcb_connection_t *c,
6782                               uint16_t          control_id,
6783                               uint8_t           device_id);
6784 
6785 /**
6786  *
6787  * @param c The connection
6788  * @return A cookie
6789  *
6790  * Delivers a request to the X server.
6791  *
6792  * This form can be used only if the request will cause
6793  * a reply to be generated. Any returned error will be
6794  * placed in the event queue.
6795  */
6796 xcb_input_get_device_control_cookie_t
6797 xcb_input_get_device_control_unchecked (xcb_connection_t *c,
6798                                         uint16_t          control_id,
6799                                         uint8_t           device_id);
6800 
6801 xcb_input_device_state_t *
6802 xcb_input_get_device_control_control (const xcb_input_get_device_control_reply_t *R);
6803 
6804 /**
6805  * Return the reply
6806  * @param c      The connection
6807  * @param cookie The cookie
6808  * @param e      The xcb_generic_error_t supplied
6809  *
6810  * Returns the reply of the request asked by
6811  *
6812  * The parameter @p e supplied to this function must be NULL if
6813  * xcb_input_get_device_control_unchecked(). is used.
6814  * Otherwise, it stores the error if any.
6815  *
6816  * The returned value must be freed by the caller using free().
6817  */
6818 xcb_input_get_device_control_reply_t *
6819 xcb_input_get_device_control_reply (xcb_connection_t                       *c,
6820                                     xcb_input_get_device_control_cookie_t   cookie  /**< */,
6821                                     xcb_generic_error_t                   **e);
6822 
6823 int
6824 xcb_input_device_resolution_ctl_sizeof (const void  *_buffer);
6825 
6826 uint32_t *
6827 xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R);
6828 
6829 int
6830 xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R);
6831 
6832 xcb_generic_iterator_t
6833 xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R);
6834 
6835 /**
6836  * Get the next element of the iterator
6837  * @param i Pointer to a xcb_input_device_resolution_ctl_iterator_t
6838  *
6839  * Get the next element in the iterator. The member rem is
6840  * decreased by one. The member data points to the next
6841  * element. The member index is increased by sizeof(xcb_input_device_resolution_ctl_t)
6842  */
6843 void
6844 xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i);
6845 
6846 /**
6847  * Return the iterator pointing to the last element
6848  * @param i An xcb_input_device_resolution_ctl_iterator_t
6849  * @return  The iterator pointing to the last element
6850  *
6851  * Set the current element in the iterator to the last element.
6852  * The member rem is set to 0. The member data points to the
6853  * last element.
6854  */
6855 xcb_generic_iterator_t
6856 xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i);
6857 
6858 /**
6859  * Get the next element of the iterator
6860  * @param i Pointer to a xcb_input_device_abs_calib_ctl_iterator_t
6861  *
6862  * Get the next element in the iterator. The member rem is
6863  * decreased by one. The member data points to the next
6864  * element. The member index is increased by sizeof(xcb_input_device_abs_calib_ctl_t)
6865  */
6866 void
6867 xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i);
6868 
6869 /**
6870  * Return the iterator pointing to the last element
6871  * @param i An xcb_input_device_abs_calib_ctl_iterator_t
6872  * @return  The iterator pointing to the last element
6873  *
6874  * Set the current element in the iterator to the last element.
6875  * The member rem is set to 0. The member data points to the
6876  * last element.
6877  */
6878 xcb_generic_iterator_t
6879 xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i);
6880 
6881 /**
6882  * Get the next element of the iterator
6883  * @param i Pointer to a xcb_input_device_abs_area_ctrl_iterator_t
6884  *
6885  * Get the next element in the iterator. The member rem is
6886  * decreased by one. The member data points to the next
6887  * element. The member index is increased by sizeof(xcb_input_device_abs_area_ctrl_t)
6888  */
6889 void
6890 xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i);
6891 
6892 /**
6893  * Return the iterator pointing to the last element
6894  * @param i An xcb_input_device_abs_area_ctrl_iterator_t
6895  * @return  The iterator pointing to the last element
6896  *
6897  * Set the current element in the iterator to the last element.
6898  * The member rem is set to 0. The member data points to the
6899  * last element.
6900  */
6901 xcb_generic_iterator_t
6902 xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i);
6903 
6904 /**
6905  * Get the next element of the iterator
6906  * @param i Pointer to a xcb_input_device_core_ctrl_iterator_t
6907  *
6908  * Get the next element in the iterator. The member rem is
6909  * decreased by one. The member data points to the next
6910  * element. The member index is increased by sizeof(xcb_input_device_core_ctrl_t)
6911  */
6912 void
6913 xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i);
6914 
6915 /**
6916  * Return the iterator pointing to the last element
6917  * @param i An xcb_input_device_core_ctrl_iterator_t
6918  * @return  The iterator pointing to the last element
6919  *
6920  * Set the current element in the iterator to the last element.
6921  * The member rem is set to 0. The member data points to the
6922  * last element.
6923  */
6924 xcb_generic_iterator_t
6925 xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i);
6926 
6927 /**
6928  * Get the next element of the iterator
6929  * @param i Pointer to a xcb_input_device_enable_ctrl_iterator_t
6930  *
6931  * Get the next element in the iterator. The member rem is
6932  * decreased by one. The member data points to the next
6933  * element. The member index is increased by sizeof(xcb_input_device_enable_ctrl_t)
6934  */
6935 void
6936 xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i);
6937 
6938 /**
6939  * Return the iterator pointing to the last element
6940  * @param i An xcb_input_device_enable_ctrl_iterator_t
6941  * @return  The iterator pointing to the last element
6942  *
6943  * Set the current element in the iterator to the last element.
6944  * The member rem is set to 0. The member data points to the
6945  * last element.
6946  */
6947 xcb_generic_iterator_t
6948 xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i);
6949 
6950 uint32_t *
6951 xcb_input_device_ctl_data_resolution_resolution_values (const xcb_input_device_ctl_data_t *S);
6952 
6953 int
6954 xcb_input_device_ctl_data_resolution_resolution_values_length (const xcb_input_device_ctl_t *R,
6955                                                                const xcb_input_device_ctl_data_t *S);
6956 
6957 xcb_generic_iterator_t
6958 xcb_input_device_ctl_data_resolution_resolution_values_end (const xcb_input_device_ctl_t *R,
6959                                                             const xcb_input_device_ctl_data_t *S);
6960 
6961 int
6962 xcb_input_device_ctl_data_serialize (void                              **_buffer,
6963                                      uint16_t                            control_id,
6964                                      const xcb_input_device_ctl_data_t  *_aux);
6965 
6966 int
6967 xcb_input_device_ctl_data_unpack (const void                   *_buffer,
6968                                   uint16_t                      control_id,
6969                                   xcb_input_device_ctl_data_t  *_aux);
6970 
6971 int
6972 xcb_input_device_ctl_data_sizeof (const void  *_buffer,
6973                                   uint16_t     control_id);
6974 
6975 int
6976 xcb_input_device_ctl_sizeof (const void  *_buffer);
6977 
6978 /**
6979  * Get the next element of the iterator
6980  * @param i Pointer to a xcb_input_device_ctl_iterator_t
6981  *
6982  * Get the next element in the iterator. The member rem is
6983  * decreased by one. The member data points to the next
6984  * element. The member index is increased by sizeof(xcb_input_device_ctl_t)
6985  */
6986 void
6987 xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i);
6988 
6989 /**
6990  * Return the iterator pointing to the last element
6991  * @param i An xcb_input_device_ctl_iterator_t
6992  * @return  The iterator pointing to the last element
6993  *
6994  * Set the current element in the iterator to the last element.
6995  * The member rem is set to 0. The member data points to the
6996  * last element.
6997  */
6998 xcb_generic_iterator_t
6999 xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i);
7000 
7001 int
7002 xcb_input_change_device_control_sizeof (const void  *_buffer);
7003 
7004 /**
7005  *
7006  * @param c The connection
7007  * @return A cookie
7008  *
7009  * Delivers a request to the X server.
7010  *
7011  */
7012 xcb_input_change_device_control_cookie_t
7013 xcb_input_change_device_control (xcb_connection_t       *c,
7014                                  uint16_t                control_id,
7015                                  uint8_t                 device_id,
7016                                  xcb_input_device_ctl_t *control);
7017 
7018 /**
7019  *
7020  * @param c The connection
7021  * @return A cookie
7022  *
7023  * Delivers a request to the X server.
7024  *
7025  * This form can be used only if the request will cause
7026  * a reply to be generated. Any returned error will be
7027  * placed in the event queue.
7028  */
7029 xcb_input_change_device_control_cookie_t
7030 xcb_input_change_device_control_unchecked (xcb_connection_t       *c,
7031                                            uint16_t                control_id,
7032                                            uint8_t                 device_id,
7033                                            xcb_input_device_ctl_t *control);
7034 
7035 /**
7036  * Return the reply
7037  * @param c      The connection
7038  * @param cookie The cookie
7039  * @param e      The xcb_generic_error_t supplied
7040  *
7041  * Returns the reply of the request asked by
7042  *
7043  * The parameter @p e supplied to this function must be NULL if
7044  * xcb_input_change_device_control_unchecked(). is used.
7045  * Otherwise, it stores the error if any.
7046  *
7047  * The returned value must be freed by the caller using free().
7048  */
7049 xcb_input_change_device_control_reply_t *
7050 xcb_input_change_device_control_reply (xcb_connection_t                          *c,
7051                                        xcb_input_change_device_control_cookie_t   cookie  /**< */,
7052                                        xcb_generic_error_t                      **e);
7053 
7054 int
7055 xcb_input_list_device_properties_sizeof (const void  *_buffer);
7056 
7057 /**
7058  *
7059  * @param c The connection
7060  * @return A cookie
7061  *
7062  * Delivers a request to the X server.
7063  *
7064  */
7065 xcb_input_list_device_properties_cookie_t
7066 xcb_input_list_device_properties (xcb_connection_t *c,
7067                                   uint8_t           device_id);
7068 
7069 /**
7070  *
7071  * @param c The connection
7072  * @return A cookie
7073  *
7074  * Delivers a request to the X server.
7075  *
7076  * This form can be used only if the request will cause
7077  * a reply to be generated. Any returned error will be
7078  * placed in the event queue.
7079  */
7080 xcb_input_list_device_properties_cookie_t
7081 xcb_input_list_device_properties_unchecked (xcb_connection_t *c,
7082                                             uint8_t           device_id);
7083 
7084 xcb_atom_t *
7085 xcb_input_list_device_properties_atoms (const xcb_input_list_device_properties_reply_t *R);
7086 
7087 int
7088 xcb_input_list_device_properties_atoms_length (const xcb_input_list_device_properties_reply_t *R);
7089 
7090 xcb_generic_iterator_t
7091 xcb_input_list_device_properties_atoms_end (const xcb_input_list_device_properties_reply_t *R);
7092 
7093 /**
7094  * Return the reply
7095  * @param c      The connection
7096  * @param cookie The cookie
7097  * @param e      The xcb_generic_error_t supplied
7098  *
7099  * Returns the reply of the request asked by
7100  *
7101  * The parameter @p e supplied to this function must be NULL if
7102  * xcb_input_list_device_properties_unchecked(). is used.
7103  * Otherwise, it stores the error if any.
7104  *
7105  * The returned value must be freed by the caller using free().
7106  */
7107 xcb_input_list_device_properties_reply_t *
7108 xcb_input_list_device_properties_reply (xcb_connection_t                           *c,
7109                                         xcb_input_list_device_properties_cookie_t   cookie  /**< */,
7110                                         xcb_generic_error_t                       **e);
7111 
7112 uint8_t *
7113 xcb_input_change_device_property_items_data_8 (const xcb_input_change_device_property_items_t *S);
7114 
7115 int
7116 xcb_input_change_device_property_items_data_8_length (const xcb_input_change_device_property_request_t *R,
7117                                                       const xcb_input_change_device_property_items_t *S);
7118 
7119 xcb_generic_iterator_t
7120 xcb_input_change_device_property_items_data_8_end (const xcb_input_change_device_property_request_t *R,
7121                                                    const xcb_input_change_device_property_items_t *S);
7122 
7123 uint16_t *
7124 xcb_input_change_device_property_items_data_16 (const xcb_input_change_device_property_items_t *S);
7125 
7126 int
7127 xcb_input_change_device_property_items_data_16_length (const xcb_input_change_device_property_request_t *R,
7128                                                        const xcb_input_change_device_property_items_t *S);
7129 
7130 xcb_generic_iterator_t
7131 xcb_input_change_device_property_items_data_16_end (const xcb_input_change_device_property_request_t *R,
7132                                                     const xcb_input_change_device_property_items_t *S);
7133 
7134 uint32_t *
7135 xcb_input_change_device_property_items_data_32 (const xcb_input_change_device_property_items_t *S);
7136 
7137 int
7138 xcb_input_change_device_property_items_data_32_length (const xcb_input_change_device_property_request_t *R,
7139                                                        const xcb_input_change_device_property_items_t *S);
7140 
7141 xcb_generic_iterator_t
7142 xcb_input_change_device_property_items_data_32_end (const xcb_input_change_device_property_request_t *R,
7143                                                     const xcb_input_change_device_property_items_t *S);
7144 
7145 int
7146 xcb_input_change_device_property_items_serialize (void                                           **_buffer,
7147                                                   uint32_t                                         num_items,
7148                                                   uint8_t                                          format,
7149                                                   const xcb_input_change_device_property_items_t  *_aux);
7150 
7151 int
7152 xcb_input_change_device_property_items_unpack (const void                                *_buffer,
7153                                                uint32_t                                   num_items,
7154                                                uint8_t                                    format,
7155                                                xcb_input_change_device_property_items_t  *_aux);
7156 
7157 int
7158 xcb_input_change_device_property_items_sizeof (const void  *_buffer,
7159                                                uint32_t     num_items,
7160                                                uint8_t      format);
7161 
7162 int
7163 xcb_input_change_device_property_sizeof (const void  *_buffer);
7164 
7165 /**
7166  *
7167  * @param c The connection
7168  * @return A cookie
7169  *
7170  * Delivers a request to the X server.
7171  *
7172  * This form can be used only if the request will not cause
7173  * a reply to be generated. Any returned error will be
7174  * saved for handling by xcb_request_check().
7175  */
7176 xcb_void_cookie_t
7177 xcb_input_change_device_property_checked (xcb_connection_t *c,
7178                                           xcb_atom_t        property,
7179                                           xcb_atom_t        type,
7180                                           uint8_t           device_id,
7181                                           uint8_t           format,
7182                                           uint8_t           mode,
7183                                           uint32_t          num_items,
7184                                           const void       *items);
7185 
7186 /**
7187  *
7188  * @param c The connection
7189  * @return A cookie
7190  *
7191  * Delivers a request to the X server.
7192  *
7193  */
7194 xcb_void_cookie_t
7195 xcb_input_change_device_property (xcb_connection_t *c,
7196                                   xcb_atom_t        property,
7197                                   xcb_atom_t        type,
7198                                   uint8_t           device_id,
7199                                   uint8_t           format,
7200                                   uint8_t           mode,
7201                                   uint32_t          num_items,
7202                                   const void       *items);
7203 
7204 /**
7205  *
7206  * @param c The connection
7207  * @return A cookie
7208  *
7209  * Delivers a request to the X server.
7210  *
7211  * This form can be used only if the request will not cause
7212  * a reply to be generated. Any returned error will be
7213  * saved for handling by xcb_request_check().
7214  */
7215 xcb_void_cookie_t
7216 xcb_input_change_device_property_aux_checked (xcb_connection_t                               *c,
7217                                               xcb_atom_t                                      property,
7218                                               xcb_atom_t                                      type,
7219                                               uint8_t                                         device_id,
7220                                               uint8_t                                         format,
7221                                               uint8_t                                         mode,
7222                                               uint32_t                                        num_items,
7223                                               const xcb_input_change_device_property_items_t *items);
7224 
7225 /**
7226  *
7227  * @param c The connection
7228  * @return A cookie
7229  *
7230  * Delivers a request to the X server.
7231  *
7232  */
7233 xcb_void_cookie_t
7234 xcb_input_change_device_property_aux (xcb_connection_t                               *c,
7235                                       xcb_atom_t                                      property,
7236                                       xcb_atom_t                                      type,
7237                                       uint8_t                                         device_id,
7238                                       uint8_t                                         format,
7239                                       uint8_t                                         mode,
7240                                       uint32_t                                        num_items,
7241                                       const xcb_input_change_device_property_items_t *items);
7242 
7243 void *
7244 xcb_input_change_device_property_items (const xcb_input_change_device_property_request_t *R);
7245 
7246 /**
7247  *
7248  * @param c The connection
7249  * @return A cookie
7250  *
7251  * Delivers a request to the X server.
7252  *
7253  * This form can be used only if the request will not cause
7254  * a reply to be generated. Any returned error will be
7255  * saved for handling by xcb_request_check().
7256  */
7257 xcb_void_cookie_t
7258 xcb_input_delete_device_property_checked (xcb_connection_t *c,
7259                                           xcb_atom_t        property,
7260                                           uint8_t           device_id);
7261 
7262 /**
7263  *
7264  * @param c The connection
7265  * @return A cookie
7266  *
7267  * Delivers a request to the X server.
7268  *
7269  */
7270 xcb_void_cookie_t
7271 xcb_input_delete_device_property (xcb_connection_t *c,
7272                                   xcb_atom_t        property,
7273                                   uint8_t           device_id);
7274 
7275 uint8_t *
7276 xcb_input_get_device_property_items_data_8 (const xcb_input_get_device_property_items_t *S);
7277 
7278 int
7279 xcb_input_get_device_property_items_data_8_length (const xcb_input_get_device_property_reply_t *R,
7280                                                    const xcb_input_get_device_property_items_t *S);
7281 
7282 xcb_generic_iterator_t
7283 xcb_input_get_device_property_items_data_8_end (const xcb_input_get_device_property_reply_t *R,
7284                                                 const xcb_input_get_device_property_items_t *S);
7285 
7286 uint16_t *
7287 xcb_input_get_device_property_items_data_16 (const xcb_input_get_device_property_items_t *S);
7288 
7289 int
7290 xcb_input_get_device_property_items_data_16_length (const xcb_input_get_device_property_reply_t *R,
7291                                                     const xcb_input_get_device_property_items_t *S);
7292 
7293 xcb_generic_iterator_t
7294 xcb_input_get_device_property_items_data_16_end (const xcb_input_get_device_property_reply_t *R,
7295                                                  const xcb_input_get_device_property_items_t *S);
7296 
7297 uint32_t *
7298 xcb_input_get_device_property_items_data_32 (const xcb_input_get_device_property_items_t *S);
7299 
7300 int
7301 xcb_input_get_device_property_items_data_32_length (const xcb_input_get_device_property_reply_t *R,
7302                                                     const xcb_input_get_device_property_items_t *S);
7303 
7304 xcb_generic_iterator_t
7305 xcb_input_get_device_property_items_data_32_end (const xcb_input_get_device_property_reply_t *R,
7306                                                  const xcb_input_get_device_property_items_t *S);
7307 
7308 int
7309 xcb_input_get_device_property_items_serialize (void                                        **_buffer,
7310                                                uint32_t                                      num_items,
7311                                                uint8_t                                       format,
7312                                                const xcb_input_get_device_property_items_t  *_aux);
7313 
7314 int
7315 xcb_input_get_device_property_items_unpack (const void                             *_buffer,
7316                                             uint32_t                                num_items,
7317                                             uint8_t                                 format,
7318                                             xcb_input_get_device_property_items_t  *_aux);
7319 
7320 int
7321 xcb_input_get_device_property_items_sizeof (const void  *_buffer,
7322                                             uint32_t     num_items,
7323                                             uint8_t      format);
7324 
7325 int
7326 xcb_input_get_device_property_sizeof (const void  *_buffer);
7327 
7328 /**
7329  *
7330  * @param c The connection
7331  * @return A cookie
7332  *
7333  * Delivers a request to the X server.
7334  *
7335  */
7336 xcb_input_get_device_property_cookie_t
7337 xcb_input_get_device_property (xcb_connection_t *c,
7338                                xcb_atom_t        property,
7339                                xcb_atom_t        type,
7340                                uint32_t          offset,
7341                                uint32_t          len,
7342                                uint8_t           device_id,
7343                                uint8_t           _delete);
7344 
7345 /**
7346  *
7347  * @param c The connection
7348  * @return A cookie
7349  *
7350  * Delivers a request to the X server.
7351  *
7352  * This form can be used only if the request will cause
7353  * a reply to be generated. Any returned error will be
7354  * placed in the event queue.
7355  */
7356 xcb_input_get_device_property_cookie_t
7357 xcb_input_get_device_property_unchecked (xcb_connection_t *c,
7358                                          xcb_atom_t        property,
7359                                          xcb_atom_t        type,
7360                                          uint32_t          offset,
7361                                          uint32_t          len,
7362                                          uint8_t           device_id,
7363                                          uint8_t           _delete);
7364 
7365 void *
7366 xcb_input_get_device_property_items (const xcb_input_get_device_property_reply_t *R);
7367 
7368 /**
7369  * Return the reply
7370  * @param c      The connection
7371  * @param cookie The cookie
7372  * @param e      The xcb_generic_error_t supplied
7373  *
7374  * Returns the reply of the request asked by
7375  *
7376  * The parameter @p e supplied to this function must be NULL if
7377  * xcb_input_get_device_property_unchecked(). is used.
7378  * Otherwise, it stores the error if any.
7379  *
7380  * The returned value must be freed by the caller using free().
7381  */
7382 xcb_input_get_device_property_reply_t *
7383 xcb_input_get_device_property_reply (xcb_connection_t                        *c,
7384                                      xcb_input_get_device_property_cookie_t   cookie  /**< */,
7385                                      xcb_generic_error_t                    **e);
7386 
7387 /**
7388  * Get the next element of the iterator
7389  * @param i Pointer to a xcb_input_group_info_iterator_t
7390  *
7391  * Get the next element in the iterator. The member rem is
7392  * decreased by one. The member data points to the next
7393  * element. The member index is increased by sizeof(xcb_input_group_info_t)
7394  */
7395 void
7396 xcb_input_group_info_next (xcb_input_group_info_iterator_t *i);
7397 
7398 /**
7399  * Return the iterator pointing to the last element
7400  * @param i An xcb_input_group_info_iterator_t
7401  * @return  The iterator pointing to the last element
7402  *
7403  * Set the current element in the iterator to the last element.
7404  * The member rem is set to 0. The member data points to the
7405  * last element.
7406  */
7407 xcb_generic_iterator_t
7408 xcb_input_group_info_end (xcb_input_group_info_iterator_t i);
7409 
7410 /**
7411  * Get the next element of the iterator
7412  * @param i Pointer to a xcb_input_modifier_info_iterator_t
7413  *
7414  * Get the next element in the iterator. The member rem is
7415  * decreased by one. The member data points to the next
7416  * element. The member index is increased by sizeof(xcb_input_modifier_info_t)
7417  */
7418 void
7419 xcb_input_modifier_info_next (xcb_input_modifier_info_iterator_t *i);
7420 
7421 /**
7422  * Return the iterator pointing to the last element
7423  * @param i An xcb_input_modifier_info_iterator_t
7424  * @return  The iterator pointing to the last element
7425  *
7426  * Set the current element in the iterator to the last element.
7427  * The member rem is set to 0. The member data points to the
7428  * last element.
7429  */
7430 xcb_generic_iterator_t
7431 xcb_input_modifier_info_end (xcb_input_modifier_info_iterator_t i);
7432 
7433 int
7434 xcb_input_xi_query_pointer_sizeof (const void  *_buffer);
7435 
7436 /**
7437  *
7438  * @param c The connection
7439  * @return A cookie
7440  *
7441  * Delivers a request to the X server.
7442  *
7443  */
7444 xcb_input_xi_query_pointer_cookie_t
7445 xcb_input_xi_query_pointer (xcb_connection_t      *c,
7446                             xcb_window_t           window,
7447                             xcb_input_device_id_t  deviceid);
7448 
7449 /**
7450  *
7451  * @param c The connection
7452  * @return A cookie
7453  *
7454  * Delivers a request to the X server.
7455  *
7456  * This form can be used only if the request will cause
7457  * a reply to be generated. Any returned error will be
7458  * placed in the event queue.
7459  */
7460 xcb_input_xi_query_pointer_cookie_t
7461 xcb_input_xi_query_pointer_unchecked (xcb_connection_t      *c,
7462                                       xcb_window_t           window,
7463                                       xcb_input_device_id_t  deviceid);
7464 
7465 uint32_t *
7466 xcb_input_xi_query_pointer_buttons (const xcb_input_xi_query_pointer_reply_t *R);
7467 
7468 int
7469 xcb_input_xi_query_pointer_buttons_length (const xcb_input_xi_query_pointer_reply_t *R);
7470 
7471 xcb_generic_iterator_t
7472 xcb_input_xi_query_pointer_buttons_end (const xcb_input_xi_query_pointer_reply_t *R);
7473 
7474 /**
7475  * Return the reply
7476  * @param c      The connection
7477  * @param cookie The cookie
7478  * @param e      The xcb_generic_error_t supplied
7479  *
7480  * Returns the reply of the request asked by
7481  *
7482  * The parameter @p e supplied to this function must be NULL if
7483  * xcb_input_xi_query_pointer_unchecked(). is used.
7484  * Otherwise, it stores the error if any.
7485  *
7486  * The returned value must be freed by the caller using free().
7487  */
7488 xcb_input_xi_query_pointer_reply_t *
7489 xcb_input_xi_query_pointer_reply (xcb_connection_t                     *c,
7490                                   xcb_input_xi_query_pointer_cookie_t   cookie  /**< */,
7491                                   xcb_generic_error_t                 **e);
7492 
7493 /**
7494  *
7495  * @param c The connection
7496  * @return A cookie
7497  *
7498  * Delivers a request to the X server.
7499  *
7500  * This form can be used only if the request will not cause
7501  * a reply to be generated. Any returned error will be
7502  * saved for handling by xcb_request_check().
7503  */
7504 xcb_void_cookie_t
7505 xcb_input_xi_warp_pointer_checked (xcb_connection_t      *c,
7506                                    xcb_window_t           src_win,
7507                                    xcb_window_t           dst_win,
7508                                    xcb_input_fp1616_t     src_x,
7509                                    xcb_input_fp1616_t     src_y,
7510                                    uint16_t               src_width,
7511                                    uint16_t               src_height,
7512                                    xcb_input_fp1616_t     dst_x,
7513                                    xcb_input_fp1616_t     dst_y,
7514                                    xcb_input_device_id_t  deviceid);
7515 
7516 /**
7517  *
7518  * @param c The connection
7519  * @return A cookie
7520  *
7521  * Delivers a request to the X server.
7522  *
7523  */
7524 xcb_void_cookie_t
7525 xcb_input_xi_warp_pointer (xcb_connection_t      *c,
7526                            xcb_window_t           src_win,
7527                            xcb_window_t           dst_win,
7528                            xcb_input_fp1616_t     src_x,
7529                            xcb_input_fp1616_t     src_y,
7530                            uint16_t               src_width,
7531                            uint16_t               src_height,
7532                            xcb_input_fp1616_t     dst_x,
7533                            xcb_input_fp1616_t     dst_y,
7534                            xcb_input_device_id_t  deviceid);
7535 
7536 /**
7537  *
7538  * @param c The connection
7539  * @return A cookie
7540  *
7541  * Delivers a request to the X server.
7542  *
7543  * This form can be used only if the request will not cause
7544  * a reply to be generated. Any returned error will be
7545  * saved for handling by xcb_request_check().
7546  */
7547 xcb_void_cookie_t
7548 xcb_input_xi_change_cursor_checked (xcb_connection_t      *c,
7549                                     xcb_window_t           window,
7550                                     xcb_cursor_t           cursor,
7551                                     xcb_input_device_id_t  deviceid);
7552 
7553 /**
7554  *
7555  * @param c The connection
7556  * @return A cookie
7557  *
7558  * Delivers a request to the X server.
7559  *
7560  */
7561 xcb_void_cookie_t
7562 xcb_input_xi_change_cursor (xcb_connection_t      *c,
7563                             xcb_window_t           window,
7564                             xcb_cursor_t           cursor,
7565                             xcb_input_device_id_t  deviceid);
7566 
7567 int
7568 xcb_input_add_master_sizeof (const void  *_buffer);
7569 
7570 char *
7571 xcb_input_add_master_name (const xcb_input_add_master_t *R);
7572 
7573 int
7574 xcb_input_add_master_name_length (const xcb_input_add_master_t *R);
7575 
7576 xcb_generic_iterator_t
7577 xcb_input_add_master_name_end (const xcb_input_add_master_t *R);
7578 
7579 /**
7580  * Get the next element of the iterator
7581  * @param i Pointer to a xcb_input_add_master_iterator_t
7582  *
7583  * Get the next element in the iterator. The member rem is
7584  * decreased by one. The member data points to the next
7585  * element. The member index is increased by sizeof(xcb_input_add_master_t)
7586  */
7587 void
7588 xcb_input_add_master_next (xcb_input_add_master_iterator_t *i);
7589 
7590 /**
7591  * Return the iterator pointing to the last element
7592  * @param i An xcb_input_add_master_iterator_t
7593  * @return  The iterator pointing to the last element
7594  *
7595  * Set the current element in the iterator to the last element.
7596  * The member rem is set to 0. The member data points to the
7597  * last element.
7598  */
7599 xcb_generic_iterator_t
7600 xcb_input_add_master_end (xcb_input_add_master_iterator_t i);
7601 
7602 /**
7603  * Get the next element of the iterator
7604  * @param i Pointer to a xcb_input_remove_master_iterator_t
7605  *
7606  * Get the next element in the iterator. The member rem is
7607  * decreased by one. The member data points to the next
7608  * element. The member index is increased by sizeof(xcb_input_remove_master_t)
7609  */
7610 void
7611 xcb_input_remove_master_next (xcb_input_remove_master_iterator_t *i);
7612 
7613 /**
7614  * Return the iterator pointing to the last element
7615  * @param i An xcb_input_remove_master_iterator_t
7616  * @return  The iterator pointing to the last element
7617  *
7618  * Set the current element in the iterator to the last element.
7619  * The member rem is set to 0. The member data points to the
7620  * last element.
7621  */
7622 xcb_generic_iterator_t
7623 xcb_input_remove_master_end (xcb_input_remove_master_iterator_t i);
7624 
7625 /**
7626  * Get the next element of the iterator
7627  * @param i Pointer to a xcb_input_attach_slave_iterator_t
7628  *
7629  * Get the next element in the iterator. The member rem is
7630  * decreased by one. The member data points to the next
7631  * element. The member index is increased by sizeof(xcb_input_attach_slave_t)
7632  */
7633 void
7634 xcb_input_attach_slave_next (xcb_input_attach_slave_iterator_t *i);
7635 
7636 /**
7637  * Return the iterator pointing to the last element
7638  * @param i An xcb_input_attach_slave_iterator_t
7639  * @return  The iterator pointing to the last element
7640  *
7641  * Set the current element in the iterator to the last element.
7642  * The member rem is set to 0. The member data points to the
7643  * last element.
7644  */
7645 xcb_generic_iterator_t
7646 xcb_input_attach_slave_end (xcb_input_attach_slave_iterator_t i);
7647 
7648 /**
7649  * Get the next element of the iterator
7650  * @param i Pointer to a xcb_input_detach_slave_iterator_t
7651  *
7652  * Get the next element in the iterator. The member rem is
7653  * decreased by one. The member data points to the next
7654  * element. The member index is increased by sizeof(xcb_input_detach_slave_t)
7655  */
7656 void
7657 xcb_input_detach_slave_next (xcb_input_detach_slave_iterator_t *i);
7658 
7659 /**
7660  * Return the iterator pointing to the last element
7661  * @param i An xcb_input_detach_slave_iterator_t
7662  * @return  The iterator pointing to the last element
7663  *
7664  * Set the current element in the iterator to the last element.
7665  * The member rem is set to 0. The member data points to the
7666  * last element.
7667  */
7668 xcb_generic_iterator_t
7669 xcb_input_detach_slave_end (xcb_input_detach_slave_iterator_t i);
7670 
7671 char *
7672 xcb_input_hierarchy_change_data_add_master_name (const xcb_input_hierarchy_change_data_t *S);
7673 
7674 int
7675 xcb_input_hierarchy_change_data_add_master_name_length (const xcb_input_hierarchy_change_t *R,
7676                                                         const xcb_input_hierarchy_change_data_t *S);
7677 
7678 xcb_generic_iterator_t
7679 xcb_input_hierarchy_change_data_add_master_name_end (const xcb_input_hierarchy_change_t *R,
7680                                                      const xcb_input_hierarchy_change_data_t *S);
7681 
7682 int
7683 xcb_input_hierarchy_change_data_serialize (void                                    **_buffer,
7684                                            uint16_t                                  type,
7685                                            const xcb_input_hierarchy_change_data_t  *_aux);
7686 
7687 int
7688 xcb_input_hierarchy_change_data_unpack (const void                         *_buffer,
7689                                         uint16_t                            type,
7690                                         xcb_input_hierarchy_change_data_t  *_aux);
7691 
7692 int
7693 xcb_input_hierarchy_change_data_sizeof (const void  *_buffer,
7694                                         uint16_t     type);
7695 
7696 int
7697 xcb_input_hierarchy_change_sizeof (const void  *_buffer);
7698 
7699 /**
7700  * Get the next element of the iterator
7701  * @param i Pointer to a xcb_input_hierarchy_change_iterator_t
7702  *
7703  * Get the next element in the iterator. The member rem is
7704  * decreased by one. The member data points to the next
7705  * element. The member index is increased by sizeof(xcb_input_hierarchy_change_t)
7706  */
7707 void
7708 xcb_input_hierarchy_change_next (xcb_input_hierarchy_change_iterator_t *i);
7709 
7710 /**
7711  * Return the iterator pointing to the last element
7712  * @param i An xcb_input_hierarchy_change_iterator_t
7713  * @return  The iterator pointing to the last element
7714  *
7715  * Set the current element in the iterator to the last element.
7716  * The member rem is set to 0. The member data points to the
7717  * last element.
7718  */
7719 xcb_generic_iterator_t
7720 xcb_input_hierarchy_change_end (xcb_input_hierarchy_change_iterator_t i);
7721 
7722 int
7723 xcb_input_xi_change_hierarchy_sizeof (const void  *_buffer);
7724 
7725 /**
7726  *
7727  * @param c The connection
7728  * @return A cookie
7729  *
7730  * Delivers a request to the X server.
7731  *
7732  * This form can be used only if the request will not cause
7733  * a reply to be generated. Any returned error will be
7734  * saved for handling by xcb_request_check().
7735  */
7736 xcb_void_cookie_t
7737 xcb_input_xi_change_hierarchy_checked (xcb_connection_t                   *c,
7738                                        uint8_t                             num_changes,
7739                                        const xcb_input_hierarchy_change_t *changes);
7740 
7741 /**
7742  *
7743  * @param c The connection
7744  * @return A cookie
7745  *
7746  * Delivers a request to the X server.
7747  *
7748  */
7749 xcb_void_cookie_t
7750 xcb_input_xi_change_hierarchy (xcb_connection_t                   *c,
7751                                uint8_t                             num_changes,
7752                                const xcb_input_hierarchy_change_t *changes);
7753 
7754 int
7755 xcb_input_xi_change_hierarchy_changes_length (const xcb_input_xi_change_hierarchy_request_t *R);
7756 
7757 xcb_input_hierarchy_change_iterator_t
7758 xcb_input_xi_change_hierarchy_changes_iterator (const xcb_input_xi_change_hierarchy_request_t *R);
7759 
7760 /**
7761  *
7762  * @param c The connection
7763  * @return A cookie
7764  *
7765  * Delivers a request to the X server.
7766  *
7767  * This form can be used only if the request will not cause
7768  * a reply to be generated. Any returned error will be
7769  * saved for handling by xcb_request_check().
7770  */
7771 xcb_void_cookie_t
7772 xcb_input_xi_set_client_pointer_checked (xcb_connection_t      *c,
7773                                          xcb_window_t           window,
7774                                          xcb_input_device_id_t  deviceid);
7775 
7776 /**
7777  *
7778  * @param c The connection
7779  * @return A cookie
7780  *
7781  * Delivers a request to the X server.
7782  *
7783  */
7784 xcb_void_cookie_t
7785 xcb_input_xi_set_client_pointer (xcb_connection_t      *c,
7786                                  xcb_window_t           window,
7787                                  xcb_input_device_id_t  deviceid);
7788 
7789 /**
7790  *
7791  * @param c The connection
7792  * @return A cookie
7793  *
7794  * Delivers a request to the X server.
7795  *
7796  */
7797 xcb_input_xi_get_client_pointer_cookie_t
7798 xcb_input_xi_get_client_pointer (xcb_connection_t *c,
7799                                  xcb_window_t      window);
7800 
7801 /**
7802  *
7803  * @param c The connection
7804  * @return A cookie
7805  *
7806  * Delivers a request to the X server.
7807  *
7808  * This form can be used only if the request will cause
7809  * a reply to be generated. Any returned error will be
7810  * placed in the event queue.
7811  */
7812 xcb_input_xi_get_client_pointer_cookie_t
7813 xcb_input_xi_get_client_pointer_unchecked (xcb_connection_t *c,
7814                                            xcb_window_t      window);
7815 
7816 /**
7817  * Return the reply
7818  * @param c      The connection
7819  * @param cookie The cookie
7820  * @param e      The xcb_generic_error_t supplied
7821  *
7822  * Returns the reply of the request asked by
7823  *
7824  * The parameter @p e supplied to this function must be NULL if
7825  * xcb_input_xi_get_client_pointer_unchecked(). is used.
7826  * Otherwise, it stores the error if any.
7827  *
7828  * The returned value must be freed by the caller using free().
7829  */
7830 xcb_input_xi_get_client_pointer_reply_t *
7831 xcb_input_xi_get_client_pointer_reply (xcb_connection_t                          *c,
7832                                        xcb_input_xi_get_client_pointer_cookie_t   cookie  /**< */,
7833                                        xcb_generic_error_t                      **e);
7834 
7835 int
7836 xcb_input_event_mask_sizeof (const void  *_buffer);
7837 
7838 uint32_t *
7839 xcb_input_event_mask_mask (const xcb_input_event_mask_t *R);
7840 
7841 int
7842 xcb_input_event_mask_mask_length (const xcb_input_event_mask_t *R);
7843 
7844 xcb_generic_iterator_t
7845 xcb_input_event_mask_mask_end (const xcb_input_event_mask_t *R);
7846 
7847 /**
7848  * Get the next element of the iterator
7849  * @param i Pointer to a xcb_input_event_mask_iterator_t
7850  *
7851  * Get the next element in the iterator. The member rem is
7852  * decreased by one. The member data points to the next
7853  * element. The member index is increased by sizeof(xcb_input_event_mask_t)
7854  */
7855 void
7856 xcb_input_event_mask_next (xcb_input_event_mask_iterator_t *i);
7857 
7858 /**
7859  * Return the iterator pointing to the last element
7860  * @param i An xcb_input_event_mask_iterator_t
7861  * @return  The iterator pointing to the last element
7862  *
7863  * Set the current element in the iterator to the last element.
7864  * The member rem is set to 0. The member data points to the
7865  * last element.
7866  */
7867 xcb_generic_iterator_t
7868 xcb_input_event_mask_end (xcb_input_event_mask_iterator_t i);
7869 
7870 int
7871 xcb_input_xi_select_events_sizeof (const void  *_buffer);
7872 
7873 /**
7874  *
7875  * @param c The connection
7876  * @return A cookie
7877  *
7878  * Delivers a request to the X server.
7879  *
7880  * This form can be used only if the request will not cause
7881  * a reply to be generated. Any returned error will be
7882  * saved for handling by xcb_request_check().
7883  */
7884 xcb_void_cookie_t
7885 xcb_input_xi_select_events_checked (xcb_connection_t             *c,
7886                                     xcb_window_t                  window,
7887                                     uint16_t                      num_mask,
7888                                     const xcb_input_event_mask_t *masks);
7889 
7890 /**
7891  *
7892  * @param c The connection
7893  * @return A cookie
7894  *
7895  * Delivers a request to the X server.
7896  *
7897  */
7898 xcb_void_cookie_t
7899 xcb_input_xi_select_events (xcb_connection_t             *c,
7900                             xcb_window_t                  window,
7901                             uint16_t                      num_mask,
7902                             const xcb_input_event_mask_t *masks);
7903 
7904 int
7905 xcb_input_xi_select_events_masks_length (const xcb_input_xi_select_events_request_t *R);
7906 
7907 xcb_input_event_mask_iterator_t
7908 xcb_input_xi_select_events_masks_iterator (const xcb_input_xi_select_events_request_t *R);
7909 
7910 /**
7911  *
7912  * @param c The connection
7913  * @return A cookie
7914  *
7915  * Delivers a request to the X server.
7916  *
7917  */
7918 xcb_input_xi_query_version_cookie_t
7919 xcb_input_xi_query_version (xcb_connection_t *c,
7920                             uint16_t          major_version,
7921                             uint16_t          minor_version);
7922 
7923 /**
7924  *
7925  * @param c The connection
7926  * @return A cookie
7927  *
7928  * Delivers a request to the X server.
7929  *
7930  * This form can be used only if the request will cause
7931  * a reply to be generated. Any returned error will be
7932  * placed in the event queue.
7933  */
7934 xcb_input_xi_query_version_cookie_t
7935 xcb_input_xi_query_version_unchecked (xcb_connection_t *c,
7936                                       uint16_t          major_version,
7937                                       uint16_t          minor_version);
7938 
7939 /**
7940  * Return the reply
7941  * @param c      The connection
7942  * @param cookie The cookie
7943  * @param e      The xcb_generic_error_t supplied
7944  *
7945  * Returns the reply of the request asked by
7946  *
7947  * The parameter @p e supplied to this function must be NULL if
7948  * xcb_input_xi_query_version_unchecked(). is used.
7949  * Otherwise, it stores the error if any.
7950  *
7951  * The returned value must be freed by the caller using free().
7952  */
7953 xcb_input_xi_query_version_reply_t *
7954 xcb_input_xi_query_version_reply (xcb_connection_t                     *c,
7955                                   xcb_input_xi_query_version_cookie_t   cookie  /**< */,
7956                                   xcb_generic_error_t                 **e);
7957 
7958 int
7959 xcb_input_button_class_sizeof (const void  *_buffer);
7960 
7961 uint32_t *
7962 xcb_input_button_class_state (const xcb_input_button_class_t *R);
7963 
7964 int
7965 xcb_input_button_class_state_length (const xcb_input_button_class_t *R);
7966 
7967 xcb_generic_iterator_t
7968 xcb_input_button_class_state_end (const xcb_input_button_class_t *R);
7969 
7970 xcb_atom_t *
7971 xcb_input_button_class_labels (const xcb_input_button_class_t *R);
7972 
7973 int
7974 xcb_input_button_class_labels_length (const xcb_input_button_class_t *R);
7975 
7976 xcb_generic_iterator_t
7977 xcb_input_button_class_labels_end (const xcb_input_button_class_t *R);
7978 
7979 /**
7980  * Get the next element of the iterator
7981  * @param i Pointer to a xcb_input_button_class_iterator_t
7982  *
7983  * Get the next element in the iterator. The member rem is
7984  * decreased by one. The member data points to the next
7985  * element. The member index is increased by sizeof(xcb_input_button_class_t)
7986  */
7987 void
7988 xcb_input_button_class_next (xcb_input_button_class_iterator_t *i);
7989 
7990 /**
7991  * Return the iterator pointing to the last element
7992  * @param i An xcb_input_button_class_iterator_t
7993  * @return  The iterator pointing to the last element
7994  *
7995  * Set the current element in the iterator to the last element.
7996  * The member rem is set to 0. The member data points to the
7997  * last element.
7998  */
7999 xcb_generic_iterator_t
8000 xcb_input_button_class_end (xcb_input_button_class_iterator_t i);
8001 
8002 int
8003 xcb_input_key_class_sizeof (const void  *_buffer);
8004 
8005 uint32_t *
8006 xcb_input_key_class_keys (const xcb_input_key_class_t *R);
8007 
8008 int
8009 xcb_input_key_class_keys_length (const xcb_input_key_class_t *R);
8010 
8011 xcb_generic_iterator_t
8012 xcb_input_key_class_keys_end (const xcb_input_key_class_t *R);
8013 
8014 /**
8015  * Get the next element of the iterator
8016  * @param i Pointer to a xcb_input_key_class_iterator_t
8017  *
8018  * Get the next element in the iterator. The member rem is
8019  * decreased by one. The member data points to the next
8020  * element. The member index is increased by sizeof(xcb_input_key_class_t)
8021  */
8022 void
8023 xcb_input_key_class_next (xcb_input_key_class_iterator_t *i);
8024 
8025 /**
8026  * Return the iterator pointing to the last element
8027  * @param i An xcb_input_key_class_iterator_t
8028  * @return  The iterator pointing to the last element
8029  *
8030  * Set the current element in the iterator to the last element.
8031  * The member rem is set to 0. The member data points to the
8032  * last element.
8033  */
8034 xcb_generic_iterator_t
8035 xcb_input_key_class_end (xcb_input_key_class_iterator_t i);
8036 
8037 /**
8038  * Get the next element of the iterator
8039  * @param i Pointer to a xcb_input_scroll_class_iterator_t
8040  *
8041  * Get the next element in the iterator. The member rem is
8042  * decreased by one. The member data points to the next
8043  * element. The member index is increased by sizeof(xcb_input_scroll_class_t)
8044  */
8045 void
8046 xcb_input_scroll_class_next (xcb_input_scroll_class_iterator_t *i);
8047 
8048 /**
8049  * Return the iterator pointing to the last element
8050  * @param i An xcb_input_scroll_class_iterator_t
8051  * @return  The iterator pointing to the last element
8052  *
8053  * Set the current element in the iterator to the last element.
8054  * The member rem is set to 0. The member data points to the
8055  * last element.
8056  */
8057 xcb_generic_iterator_t
8058 xcb_input_scroll_class_end (xcb_input_scroll_class_iterator_t i);
8059 
8060 /**
8061  * Get the next element of the iterator
8062  * @param i Pointer to a xcb_input_touch_class_iterator_t
8063  *
8064  * Get the next element in the iterator. The member rem is
8065  * decreased by one. The member data points to the next
8066  * element. The member index is increased by sizeof(xcb_input_touch_class_t)
8067  */
8068 void
8069 xcb_input_touch_class_next (xcb_input_touch_class_iterator_t *i);
8070 
8071 /**
8072  * Return the iterator pointing to the last element
8073  * @param i An xcb_input_touch_class_iterator_t
8074  * @return  The iterator pointing to the last element
8075  *
8076  * Set the current element in the iterator to the last element.
8077  * The member rem is set to 0. The member data points to the
8078  * last element.
8079  */
8080 xcb_generic_iterator_t
8081 xcb_input_touch_class_end (xcb_input_touch_class_iterator_t i);
8082 
8083 /**
8084  * Get the next element of the iterator
8085  * @param i Pointer to a xcb_input_valuator_class_iterator_t
8086  *
8087  * Get the next element in the iterator. The member rem is
8088  * decreased by one. The member data points to the next
8089  * element. The member index is increased by sizeof(xcb_input_valuator_class_t)
8090  */
8091 void
8092 xcb_input_valuator_class_next (xcb_input_valuator_class_iterator_t *i);
8093 
8094 /**
8095  * Return the iterator pointing to the last element
8096  * @param i An xcb_input_valuator_class_iterator_t
8097  * @return  The iterator pointing to the last element
8098  *
8099  * Set the current element in the iterator to the last element.
8100  * The member rem is set to 0. The member data points to the
8101  * last element.
8102  */
8103 xcb_generic_iterator_t
8104 xcb_input_valuator_class_end (xcb_input_valuator_class_iterator_t i);
8105 
8106 uint32_t *
8107 xcb_input_device_class_data_key_keys (const xcb_input_device_class_data_t *S);
8108 
8109 int
8110 xcb_input_device_class_data_key_keys_length (const xcb_input_device_class_t *R,
8111                                              const xcb_input_device_class_data_t *S);
8112 
8113 xcb_generic_iterator_t
8114 xcb_input_device_class_data_key_keys_end (const xcb_input_device_class_t *R,
8115                                           const xcb_input_device_class_data_t *S);
8116 
8117 uint32_t *
8118 xcb_input_device_class_data_button_state (const xcb_input_device_class_data_t *S);
8119 
8120 int
8121 xcb_input_device_class_data_button_state_length (const xcb_input_device_class_t *R,
8122                                                  const xcb_input_device_class_data_t *S);
8123 
8124 xcb_generic_iterator_t
8125 xcb_input_device_class_data_button_state_end (const xcb_input_device_class_t *R,
8126                                               const xcb_input_device_class_data_t *S);
8127 
8128 xcb_atom_t *
8129 xcb_input_device_class_data_button_labels (const xcb_input_device_class_data_t *S);
8130 
8131 int
8132 xcb_input_device_class_data_button_labels_length (const xcb_input_device_class_t *R,
8133                                                   const xcb_input_device_class_data_t *S);
8134 
8135 xcb_generic_iterator_t
8136 xcb_input_device_class_data_button_labels_end (const xcb_input_device_class_t *R,
8137                                                const xcb_input_device_class_data_t *S);
8138 
8139 int
8140 xcb_input_device_class_data_serialize (void                                **_buffer,
8141                                        uint16_t                              type,
8142                                        const xcb_input_device_class_data_t  *_aux);
8143 
8144 int
8145 xcb_input_device_class_data_unpack (const void                     *_buffer,
8146                                     uint16_t                        type,
8147                                     xcb_input_device_class_data_t  *_aux);
8148 
8149 int
8150 xcb_input_device_class_data_sizeof (const void  *_buffer,
8151                                     uint16_t     type);
8152 
8153 int
8154 xcb_input_device_class_sizeof (const void  *_buffer);
8155 
8156 /**
8157  * Get the next element of the iterator
8158  * @param i Pointer to a xcb_input_device_class_iterator_t
8159  *
8160  * Get the next element in the iterator. The member rem is
8161  * decreased by one. The member data points to the next
8162  * element. The member index is increased by sizeof(xcb_input_device_class_t)
8163  */
8164 void
8165 xcb_input_device_class_next (xcb_input_device_class_iterator_t *i);
8166 
8167 /**
8168  * Return the iterator pointing to the last element
8169  * @param i An xcb_input_device_class_iterator_t
8170  * @return  The iterator pointing to the last element
8171  *
8172  * Set the current element in the iterator to the last element.
8173  * The member rem is set to 0. The member data points to the
8174  * last element.
8175  */
8176 xcb_generic_iterator_t
8177 xcb_input_device_class_end (xcb_input_device_class_iterator_t i);
8178 
8179 int
8180 xcb_input_xi_device_info_sizeof (const void  *_buffer);
8181 
8182 char *
8183 xcb_input_xi_device_info_name (const xcb_input_xi_device_info_t *R);
8184 
8185 int
8186 xcb_input_xi_device_info_name_length (const xcb_input_xi_device_info_t *R);
8187 
8188 xcb_generic_iterator_t
8189 xcb_input_xi_device_info_name_end (const xcb_input_xi_device_info_t *R);
8190 
8191 int
8192 xcb_input_xi_device_info_classes_length (const xcb_input_xi_device_info_t *R);
8193 
8194 xcb_input_device_class_iterator_t
8195 xcb_input_xi_device_info_classes_iterator (const xcb_input_xi_device_info_t *R);
8196 
8197 /**
8198  * Get the next element of the iterator
8199  * @param i Pointer to a xcb_input_xi_device_info_iterator_t
8200  *
8201  * Get the next element in the iterator. The member rem is
8202  * decreased by one. The member data points to the next
8203  * element. The member index is increased by sizeof(xcb_input_xi_device_info_t)
8204  */
8205 void
8206 xcb_input_xi_device_info_next (xcb_input_xi_device_info_iterator_t *i);
8207 
8208 /**
8209  * Return the iterator pointing to the last element
8210  * @param i An xcb_input_xi_device_info_iterator_t
8211  * @return  The iterator pointing to the last element
8212  *
8213  * Set the current element in the iterator to the last element.
8214  * The member rem is set to 0. The member data points to the
8215  * last element.
8216  */
8217 xcb_generic_iterator_t
8218 xcb_input_xi_device_info_end (xcb_input_xi_device_info_iterator_t i);
8219 
8220 int
8221 xcb_input_xi_query_device_sizeof (const void  *_buffer);
8222 
8223 /**
8224  *
8225  * @param c The connection
8226  * @return A cookie
8227  *
8228  * Delivers a request to the X server.
8229  *
8230  */
8231 xcb_input_xi_query_device_cookie_t
8232 xcb_input_xi_query_device (xcb_connection_t      *c,
8233                            xcb_input_device_id_t  deviceid);
8234 
8235 /**
8236  *
8237  * @param c The connection
8238  * @return A cookie
8239  *
8240  * Delivers a request to the X server.
8241  *
8242  * This form can be used only if the request will cause
8243  * a reply to be generated. Any returned error will be
8244  * placed in the event queue.
8245  */
8246 xcb_input_xi_query_device_cookie_t
8247 xcb_input_xi_query_device_unchecked (xcb_connection_t      *c,
8248                                      xcb_input_device_id_t  deviceid);
8249 
8250 int
8251 xcb_input_xi_query_device_infos_length (const xcb_input_xi_query_device_reply_t *R);
8252 
8253 xcb_input_xi_device_info_iterator_t
8254 xcb_input_xi_query_device_infos_iterator (const xcb_input_xi_query_device_reply_t *R);
8255 
8256 /**
8257  * Return the reply
8258  * @param c      The connection
8259  * @param cookie The cookie
8260  * @param e      The xcb_generic_error_t supplied
8261  *
8262  * Returns the reply of the request asked by
8263  *
8264  * The parameter @p e supplied to this function must be NULL if
8265  * xcb_input_xi_query_device_unchecked(). is used.
8266  * Otherwise, it stores the error if any.
8267  *
8268  * The returned value must be freed by the caller using free().
8269  */
8270 xcb_input_xi_query_device_reply_t *
8271 xcb_input_xi_query_device_reply (xcb_connection_t                    *c,
8272                                  xcb_input_xi_query_device_cookie_t   cookie  /**< */,
8273                                  xcb_generic_error_t                **e);
8274 
8275 /**
8276  *
8277  * @param c The connection
8278  * @return A cookie
8279  *
8280  * Delivers a request to the X server.
8281  *
8282  * This form can be used only if the request will not cause
8283  * a reply to be generated. Any returned error will be
8284  * saved for handling by xcb_request_check().
8285  */
8286 xcb_void_cookie_t
8287 xcb_input_xi_set_focus_checked (xcb_connection_t      *c,
8288                                 xcb_window_t           window,
8289                                 xcb_timestamp_t        time,
8290                                 xcb_input_device_id_t  deviceid);
8291 
8292 /**
8293  *
8294  * @param c The connection
8295  * @return A cookie
8296  *
8297  * Delivers a request to the X server.
8298  *
8299  */
8300 xcb_void_cookie_t
8301 xcb_input_xi_set_focus (xcb_connection_t      *c,
8302                         xcb_window_t           window,
8303                         xcb_timestamp_t        time,
8304                         xcb_input_device_id_t  deviceid);
8305 
8306 /**
8307  *
8308  * @param c The connection
8309  * @return A cookie
8310  *
8311  * Delivers a request to the X server.
8312  *
8313  */
8314 xcb_input_xi_get_focus_cookie_t
8315 xcb_input_xi_get_focus (xcb_connection_t      *c,
8316                         xcb_input_device_id_t  deviceid);
8317 
8318 /**
8319  *
8320  * @param c The connection
8321  * @return A cookie
8322  *
8323  * Delivers a request to the X server.
8324  *
8325  * This form can be used only if the request will cause
8326  * a reply to be generated. Any returned error will be
8327  * placed in the event queue.
8328  */
8329 xcb_input_xi_get_focus_cookie_t
8330 xcb_input_xi_get_focus_unchecked (xcb_connection_t      *c,
8331                                   xcb_input_device_id_t  deviceid);
8332 
8333 /**
8334  * Return the reply
8335  * @param c      The connection
8336  * @param cookie The cookie
8337  * @param e      The xcb_generic_error_t supplied
8338  *
8339  * Returns the reply of the request asked by
8340  *
8341  * The parameter @p e supplied to this function must be NULL if
8342  * xcb_input_xi_get_focus_unchecked(). is used.
8343  * Otherwise, it stores the error if any.
8344  *
8345  * The returned value must be freed by the caller using free().
8346  */
8347 xcb_input_xi_get_focus_reply_t *
8348 xcb_input_xi_get_focus_reply (xcb_connection_t                 *c,
8349                               xcb_input_xi_get_focus_cookie_t   cookie  /**< */,
8350                               xcb_generic_error_t             **e);
8351 
8352 int
8353 xcb_input_xi_grab_device_sizeof (const void  *_buffer);
8354 
8355 /**
8356  *
8357  * @param c The connection
8358  * @return A cookie
8359  *
8360  * Delivers a request to the X server.
8361  *
8362  */
8363 xcb_input_xi_grab_device_cookie_t
8364 xcb_input_xi_grab_device (xcb_connection_t      *c,
8365                           xcb_window_t           window,
8366                           xcb_timestamp_t        time,
8367                           xcb_cursor_t           cursor,
8368                           xcb_input_device_id_t  deviceid,
8369                           uint8_t                mode,
8370                           uint8_t                paired_device_mode,
8371                           uint8_t                owner_events,
8372                           uint16_t               mask_len,
8373                           const uint32_t        *mask);
8374 
8375 /**
8376  *
8377  * @param c The connection
8378  * @return A cookie
8379  *
8380  * Delivers a request to the X server.
8381  *
8382  * This form can be used only if the request will cause
8383  * a reply to be generated. Any returned error will be
8384  * placed in the event queue.
8385  */
8386 xcb_input_xi_grab_device_cookie_t
8387 xcb_input_xi_grab_device_unchecked (xcb_connection_t      *c,
8388                                     xcb_window_t           window,
8389                                     xcb_timestamp_t        time,
8390                                     xcb_cursor_t           cursor,
8391                                     xcb_input_device_id_t  deviceid,
8392                                     uint8_t                mode,
8393                                     uint8_t                paired_device_mode,
8394                                     uint8_t                owner_events,
8395                                     uint16_t               mask_len,
8396                                     const uint32_t        *mask);
8397 
8398 /**
8399  * Return the reply
8400  * @param c      The connection
8401  * @param cookie The cookie
8402  * @param e      The xcb_generic_error_t supplied
8403  *
8404  * Returns the reply of the request asked by
8405  *
8406  * The parameter @p e supplied to this function must be NULL if
8407  * xcb_input_xi_grab_device_unchecked(). is used.
8408  * Otherwise, it stores the error if any.
8409  *
8410  * The returned value must be freed by the caller using free().
8411  */
8412 xcb_input_xi_grab_device_reply_t *
8413 xcb_input_xi_grab_device_reply (xcb_connection_t                   *c,
8414                                 xcb_input_xi_grab_device_cookie_t   cookie  /**< */,
8415                                 xcb_generic_error_t               **e);
8416 
8417 /**
8418  *
8419  * @param c The connection
8420  * @return A cookie
8421  *
8422  * Delivers a request to the X server.
8423  *
8424  * This form can be used only if the request will not cause
8425  * a reply to be generated. Any returned error will be
8426  * saved for handling by xcb_request_check().
8427  */
8428 xcb_void_cookie_t
8429 xcb_input_xi_ungrab_device_checked (xcb_connection_t      *c,
8430                                     xcb_timestamp_t        time,
8431                                     xcb_input_device_id_t  deviceid);
8432 
8433 /**
8434  *
8435  * @param c The connection
8436  * @return A cookie
8437  *
8438  * Delivers a request to the X server.
8439  *
8440  */
8441 xcb_void_cookie_t
8442 xcb_input_xi_ungrab_device (xcb_connection_t      *c,
8443                             xcb_timestamp_t        time,
8444                             xcb_input_device_id_t  deviceid);
8445 
8446 /**
8447  *
8448  * @param c The connection
8449  * @return A cookie
8450  *
8451  * Delivers a request to the X server.
8452  *
8453  * This form can be used only if the request will not cause
8454  * a reply to be generated. Any returned error will be
8455  * saved for handling by xcb_request_check().
8456  */
8457 xcb_void_cookie_t
8458 xcb_input_xi_allow_events_checked (xcb_connection_t      *c,
8459                                    xcb_timestamp_t        time,
8460                                    xcb_input_device_id_t  deviceid,
8461                                    uint8_t                event_mode,
8462                                    uint32_t               touchid,
8463                                    xcb_window_t           grab_window);
8464 
8465 /**
8466  *
8467  * @param c The connection
8468  * @return A cookie
8469  *
8470  * Delivers a request to the X server.
8471  *
8472  */
8473 xcb_void_cookie_t
8474 xcb_input_xi_allow_events (xcb_connection_t      *c,
8475                            xcb_timestamp_t        time,
8476                            xcb_input_device_id_t  deviceid,
8477                            uint8_t                event_mode,
8478                            uint32_t               touchid,
8479                            xcb_window_t           grab_window);
8480 
8481 /**
8482  * Get the next element of the iterator
8483  * @param i Pointer to a xcb_input_grab_modifier_info_iterator_t
8484  *
8485  * Get the next element in the iterator. The member rem is
8486  * decreased by one. The member data points to the next
8487  * element. The member index is increased by sizeof(xcb_input_grab_modifier_info_t)
8488  */
8489 void
8490 xcb_input_grab_modifier_info_next (xcb_input_grab_modifier_info_iterator_t *i);
8491 
8492 /**
8493  * Return the iterator pointing to the last element
8494  * @param i An xcb_input_grab_modifier_info_iterator_t
8495  * @return  The iterator pointing to the last element
8496  *
8497  * Set the current element in the iterator to the last element.
8498  * The member rem is set to 0. The member data points to the
8499  * last element.
8500  */
8501 xcb_generic_iterator_t
8502 xcb_input_grab_modifier_info_end (xcb_input_grab_modifier_info_iterator_t i);
8503 
8504 int
8505 xcb_input_xi_passive_grab_device_sizeof (const void  *_buffer);
8506 
8507 /**
8508  *
8509  * @param c The connection
8510  * @return A cookie
8511  *
8512  * Delivers a request to the X server.
8513  *
8514  */
8515 xcb_input_xi_passive_grab_device_cookie_t
8516 xcb_input_xi_passive_grab_device (xcb_connection_t      *c,
8517                                   xcb_timestamp_t        time,
8518                                   xcb_window_t           grab_window,
8519                                   xcb_cursor_t           cursor,
8520                                   uint32_t               detail,
8521                                   xcb_input_device_id_t  deviceid,
8522                                   uint16_t               num_modifiers,
8523                                   uint16_t               mask_len,
8524                                   uint8_t                grab_type,
8525                                   uint8_t                grab_mode,
8526                                   uint8_t                paired_device_mode,
8527                                   uint8_t                owner_events,
8528                                   const uint32_t        *mask,
8529                                   const uint32_t        *modifiers);
8530 
8531 /**
8532  *
8533  * @param c The connection
8534  * @return A cookie
8535  *
8536  * Delivers a request to the X server.
8537  *
8538  * This form can be used only if the request will cause
8539  * a reply to be generated. Any returned error will be
8540  * placed in the event queue.
8541  */
8542 xcb_input_xi_passive_grab_device_cookie_t
8543 xcb_input_xi_passive_grab_device_unchecked (xcb_connection_t      *c,
8544                                             xcb_timestamp_t        time,
8545                                             xcb_window_t           grab_window,
8546                                             xcb_cursor_t           cursor,
8547                                             uint32_t               detail,
8548                                             xcb_input_device_id_t  deviceid,
8549                                             uint16_t               num_modifiers,
8550                                             uint16_t               mask_len,
8551                                             uint8_t                grab_type,
8552                                             uint8_t                grab_mode,
8553                                             uint8_t                paired_device_mode,
8554                                             uint8_t                owner_events,
8555                                             const uint32_t        *mask,
8556                                             const uint32_t        *modifiers);
8557 
8558 xcb_input_grab_modifier_info_t *
8559 xcb_input_xi_passive_grab_device_modifiers (const xcb_input_xi_passive_grab_device_reply_t *R);
8560 
8561 int
8562 xcb_input_xi_passive_grab_device_modifiers_length (const xcb_input_xi_passive_grab_device_reply_t *R);
8563 
8564 xcb_input_grab_modifier_info_iterator_t
8565 xcb_input_xi_passive_grab_device_modifiers_iterator (const xcb_input_xi_passive_grab_device_reply_t *R);
8566 
8567 /**
8568  * Return the reply
8569  * @param c      The connection
8570  * @param cookie The cookie
8571  * @param e      The xcb_generic_error_t supplied
8572  *
8573  * Returns the reply of the request asked by
8574  *
8575  * The parameter @p e supplied to this function must be NULL if
8576  * xcb_input_xi_passive_grab_device_unchecked(). is used.
8577  * Otherwise, it stores the error if any.
8578  *
8579  * The returned value must be freed by the caller using free().
8580  */
8581 xcb_input_xi_passive_grab_device_reply_t *
8582 xcb_input_xi_passive_grab_device_reply (xcb_connection_t                           *c,
8583                                         xcb_input_xi_passive_grab_device_cookie_t   cookie  /**< */,
8584                                         xcb_generic_error_t                       **e);
8585 
8586 int
8587 xcb_input_xi_passive_ungrab_device_sizeof (const void  *_buffer);
8588 
8589 /**
8590  *
8591  * @param c The connection
8592  * @return A cookie
8593  *
8594  * Delivers a request to the X server.
8595  *
8596  * This form can be used only if the request will not cause
8597  * a reply to be generated. Any returned error will be
8598  * saved for handling by xcb_request_check().
8599  */
8600 xcb_void_cookie_t
8601 xcb_input_xi_passive_ungrab_device_checked (xcb_connection_t      *c,
8602                                             xcb_window_t           grab_window,
8603                                             uint32_t               detail,
8604                                             xcb_input_device_id_t  deviceid,
8605                                             uint16_t               num_modifiers,
8606                                             uint8_t                grab_type,
8607                                             const uint32_t        *modifiers);
8608 
8609 /**
8610  *
8611  * @param c The connection
8612  * @return A cookie
8613  *
8614  * Delivers a request to the X server.
8615  *
8616  */
8617 xcb_void_cookie_t
8618 xcb_input_xi_passive_ungrab_device (xcb_connection_t      *c,
8619                                     xcb_window_t           grab_window,
8620                                     uint32_t               detail,
8621                                     xcb_input_device_id_t  deviceid,
8622                                     uint16_t               num_modifiers,
8623                                     uint8_t                grab_type,
8624                                     const uint32_t        *modifiers);
8625 
8626 uint32_t *
8627 xcb_input_xi_passive_ungrab_device_modifiers (const xcb_input_xi_passive_ungrab_device_request_t *R);
8628 
8629 int
8630 xcb_input_xi_passive_ungrab_device_modifiers_length (const xcb_input_xi_passive_ungrab_device_request_t *R);
8631 
8632 xcb_generic_iterator_t
8633 xcb_input_xi_passive_ungrab_device_modifiers_end (const xcb_input_xi_passive_ungrab_device_request_t *R);
8634 
8635 int
8636 xcb_input_xi_list_properties_sizeof (const void  *_buffer);
8637 
8638 /**
8639  *
8640  * @param c The connection
8641  * @return A cookie
8642  *
8643  * Delivers a request to the X server.
8644  *
8645  */
8646 xcb_input_xi_list_properties_cookie_t
8647 xcb_input_xi_list_properties (xcb_connection_t      *c,
8648                               xcb_input_device_id_t  deviceid);
8649 
8650 /**
8651  *
8652  * @param c The connection
8653  * @return A cookie
8654  *
8655  * Delivers a request to the X server.
8656  *
8657  * This form can be used only if the request will cause
8658  * a reply to be generated. Any returned error will be
8659  * placed in the event queue.
8660  */
8661 xcb_input_xi_list_properties_cookie_t
8662 xcb_input_xi_list_properties_unchecked (xcb_connection_t      *c,
8663                                         xcb_input_device_id_t  deviceid);
8664 
8665 xcb_atom_t *
8666 xcb_input_xi_list_properties_properties (const xcb_input_xi_list_properties_reply_t *R);
8667 
8668 int
8669 xcb_input_xi_list_properties_properties_length (const xcb_input_xi_list_properties_reply_t *R);
8670 
8671 xcb_generic_iterator_t
8672 xcb_input_xi_list_properties_properties_end (const xcb_input_xi_list_properties_reply_t *R);
8673 
8674 /**
8675  * Return the reply
8676  * @param c      The connection
8677  * @param cookie The cookie
8678  * @param e      The xcb_generic_error_t supplied
8679  *
8680  * Returns the reply of the request asked by
8681  *
8682  * The parameter @p e supplied to this function must be NULL if
8683  * xcb_input_xi_list_properties_unchecked(). is used.
8684  * Otherwise, it stores the error if any.
8685  *
8686  * The returned value must be freed by the caller using free().
8687  */
8688 xcb_input_xi_list_properties_reply_t *
8689 xcb_input_xi_list_properties_reply (xcb_connection_t                       *c,
8690                                     xcb_input_xi_list_properties_cookie_t   cookie  /**< */,
8691                                     xcb_generic_error_t                   **e);
8692 
8693 uint8_t *
8694 xcb_input_xi_change_property_items_data_8 (const xcb_input_xi_change_property_items_t *S);
8695 
8696 int
8697 xcb_input_xi_change_property_items_data_8_length (const xcb_input_xi_change_property_request_t *R,
8698                                                   const xcb_input_xi_change_property_items_t *S);
8699 
8700 xcb_generic_iterator_t
8701 xcb_input_xi_change_property_items_data_8_end (const xcb_input_xi_change_property_request_t *R,
8702                                                const xcb_input_xi_change_property_items_t *S);
8703 
8704 uint16_t *
8705 xcb_input_xi_change_property_items_data_16 (const xcb_input_xi_change_property_items_t *S);
8706 
8707 int
8708 xcb_input_xi_change_property_items_data_16_length (const xcb_input_xi_change_property_request_t *R,
8709                                                    const xcb_input_xi_change_property_items_t *S);
8710 
8711 xcb_generic_iterator_t
8712 xcb_input_xi_change_property_items_data_16_end (const xcb_input_xi_change_property_request_t *R,
8713                                                 const xcb_input_xi_change_property_items_t *S);
8714 
8715 uint32_t *
8716 xcb_input_xi_change_property_items_data_32 (const xcb_input_xi_change_property_items_t *S);
8717 
8718 int
8719 xcb_input_xi_change_property_items_data_32_length (const xcb_input_xi_change_property_request_t *R,
8720                                                    const xcb_input_xi_change_property_items_t *S);
8721 
8722 xcb_generic_iterator_t
8723 xcb_input_xi_change_property_items_data_32_end (const xcb_input_xi_change_property_request_t *R,
8724                                                 const xcb_input_xi_change_property_items_t *S);
8725 
8726 int
8727 xcb_input_xi_change_property_items_serialize (void                                       **_buffer,
8728                                               uint32_t                                     num_items,
8729                                               uint8_t                                      format,
8730                                               const xcb_input_xi_change_property_items_t  *_aux);
8731 
8732 int
8733 xcb_input_xi_change_property_items_unpack (const void                            *_buffer,
8734                                            uint32_t                               num_items,
8735                                            uint8_t                                format,
8736                                            xcb_input_xi_change_property_items_t  *_aux);
8737 
8738 int
8739 xcb_input_xi_change_property_items_sizeof (const void  *_buffer,
8740                                            uint32_t     num_items,
8741                                            uint8_t      format);
8742 
8743 int
8744 xcb_input_xi_change_property_sizeof (const void  *_buffer);
8745 
8746 /**
8747  *
8748  * @param c The connection
8749  * @return A cookie
8750  *
8751  * Delivers a request to the X server.
8752  *
8753  * This form can be used only if the request will not cause
8754  * a reply to be generated. Any returned error will be
8755  * saved for handling by xcb_request_check().
8756  */
8757 xcb_void_cookie_t
8758 xcb_input_xi_change_property_checked (xcb_connection_t      *c,
8759                                       xcb_input_device_id_t  deviceid,
8760                                       uint8_t                mode,
8761                                       uint8_t                format,
8762                                       xcb_atom_t             property,
8763                                       xcb_atom_t             type,
8764                                       uint32_t               num_items,
8765                                       const void            *items);
8766 
8767 /**
8768  *
8769  * @param c The connection
8770  * @return A cookie
8771  *
8772  * Delivers a request to the X server.
8773  *
8774  */
8775 xcb_void_cookie_t
8776 xcb_input_xi_change_property (xcb_connection_t      *c,
8777                               xcb_input_device_id_t  deviceid,
8778                               uint8_t                mode,
8779                               uint8_t                format,
8780                               xcb_atom_t             property,
8781                               xcb_atom_t             type,
8782                               uint32_t               num_items,
8783                               const void            *items);
8784 
8785 /**
8786  *
8787  * @param c The connection
8788  * @return A cookie
8789  *
8790  * Delivers a request to the X server.
8791  *
8792  * This form can be used only if the request will not cause
8793  * a reply to be generated. Any returned error will be
8794  * saved for handling by xcb_request_check().
8795  */
8796 xcb_void_cookie_t
8797 xcb_input_xi_change_property_aux_checked (xcb_connection_t                           *c,
8798                                           xcb_input_device_id_t                       deviceid,
8799                                           uint8_t                                     mode,
8800                                           uint8_t                                     format,
8801                                           xcb_atom_t                                  property,
8802                                           xcb_atom_t                                  type,
8803                                           uint32_t                                    num_items,
8804                                           const xcb_input_xi_change_property_items_t *items);
8805 
8806 /**
8807  *
8808  * @param c The connection
8809  * @return A cookie
8810  *
8811  * Delivers a request to the X server.
8812  *
8813  */
8814 xcb_void_cookie_t
8815 xcb_input_xi_change_property_aux (xcb_connection_t                           *c,
8816                                   xcb_input_device_id_t                       deviceid,
8817                                   uint8_t                                     mode,
8818                                   uint8_t                                     format,
8819                                   xcb_atom_t                                  property,
8820                                   xcb_atom_t                                  type,
8821                                   uint32_t                                    num_items,
8822                                   const xcb_input_xi_change_property_items_t *items);
8823 
8824 void *
8825 xcb_input_xi_change_property_items (const xcb_input_xi_change_property_request_t *R);
8826 
8827 /**
8828  *
8829  * @param c The connection
8830  * @return A cookie
8831  *
8832  * Delivers a request to the X server.
8833  *
8834  * This form can be used only if the request will not cause
8835  * a reply to be generated. Any returned error will be
8836  * saved for handling by xcb_request_check().
8837  */
8838 xcb_void_cookie_t
8839 xcb_input_xi_delete_property_checked (xcb_connection_t      *c,
8840                                       xcb_input_device_id_t  deviceid,
8841                                       xcb_atom_t             property);
8842 
8843 /**
8844  *
8845  * @param c The connection
8846  * @return A cookie
8847  *
8848  * Delivers a request to the X server.
8849  *
8850  */
8851 xcb_void_cookie_t
8852 xcb_input_xi_delete_property (xcb_connection_t      *c,
8853                               xcb_input_device_id_t  deviceid,
8854                               xcb_atom_t             property);
8855 
8856 uint8_t *
8857 xcb_input_xi_get_property_items_data_8 (const xcb_input_xi_get_property_items_t *S);
8858 
8859 int
8860 xcb_input_xi_get_property_items_data_8_length (const xcb_input_xi_get_property_reply_t *R,
8861                                                const xcb_input_xi_get_property_items_t *S);
8862 
8863 xcb_generic_iterator_t
8864 xcb_input_xi_get_property_items_data_8_end (const xcb_input_xi_get_property_reply_t *R,
8865                                             const xcb_input_xi_get_property_items_t *S);
8866 
8867 uint16_t *
8868 xcb_input_xi_get_property_items_data_16 (const xcb_input_xi_get_property_items_t *S);
8869 
8870 int
8871 xcb_input_xi_get_property_items_data_16_length (const xcb_input_xi_get_property_reply_t *R,
8872                                                 const xcb_input_xi_get_property_items_t *S);
8873 
8874 xcb_generic_iterator_t
8875 xcb_input_xi_get_property_items_data_16_end (const xcb_input_xi_get_property_reply_t *R,
8876                                              const xcb_input_xi_get_property_items_t *S);
8877 
8878 uint32_t *
8879 xcb_input_xi_get_property_items_data_32 (const xcb_input_xi_get_property_items_t *S);
8880 
8881 int
8882 xcb_input_xi_get_property_items_data_32_length (const xcb_input_xi_get_property_reply_t *R,
8883                                                 const xcb_input_xi_get_property_items_t *S);
8884 
8885 xcb_generic_iterator_t
8886 xcb_input_xi_get_property_items_data_32_end (const xcb_input_xi_get_property_reply_t *R,
8887                                              const xcb_input_xi_get_property_items_t *S);
8888 
8889 int
8890 xcb_input_xi_get_property_items_serialize (void                                    **_buffer,
8891                                            uint32_t                                  num_items,
8892                                            uint8_t                                   format,
8893                                            const xcb_input_xi_get_property_items_t  *_aux);
8894 
8895 int
8896 xcb_input_xi_get_property_items_unpack (const void                         *_buffer,
8897                                         uint32_t                            num_items,
8898                                         uint8_t                             format,
8899                                         xcb_input_xi_get_property_items_t  *_aux);
8900 
8901 int
8902 xcb_input_xi_get_property_items_sizeof (const void  *_buffer,
8903                                         uint32_t     num_items,
8904                                         uint8_t      format);
8905 
8906 int
8907 xcb_input_xi_get_property_sizeof (const void  *_buffer);
8908 
8909 /**
8910  *
8911  * @param c The connection
8912  * @return A cookie
8913  *
8914  * Delivers a request to the X server.
8915  *
8916  */
8917 xcb_input_xi_get_property_cookie_t
8918 xcb_input_xi_get_property (xcb_connection_t      *c,
8919                            xcb_input_device_id_t  deviceid,
8920                            uint8_t                _delete,
8921                            xcb_atom_t             property,
8922                            xcb_atom_t             type,
8923                            uint32_t               offset,
8924                            uint32_t               len);
8925 
8926 /**
8927  *
8928  * @param c The connection
8929  * @return A cookie
8930  *
8931  * Delivers a request to the X server.
8932  *
8933  * This form can be used only if the request will cause
8934  * a reply to be generated. Any returned error will be
8935  * placed in the event queue.
8936  */
8937 xcb_input_xi_get_property_cookie_t
8938 xcb_input_xi_get_property_unchecked (xcb_connection_t      *c,
8939                                      xcb_input_device_id_t  deviceid,
8940                                      uint8_t                _delete,
8941                                      xcb_atom_t             property,
8942                                      xcb_atom_t             type,
8943                                      uint32_t               offset,
8944                                      uint32_t               len);
8945 
8946 void *
8947 xcb_input_xi_get_property_items (const xcb_input_xi_get_property_reply_t *R);
8948 
8949 /**
8950  * Return the reply
8951  * @param c      The connection
8952  * @param cookie The cookie
8953  * @param e      The xcb_generic_error_t supplied
8954  *
8955  * Returns the reply of the request asked by
8956  *
8957  * The parameter @p e supplied to this function must be NULL if
8958  * xcb_input_xi_get_property_unchecked(). is used.
8959  * Otherwise, it stores the error if any.
8960  *
8961  * The returned value must be freed by the caller using free().
8962  */
8963 xcb_input_xi_get_property_reply_t *
8964 xcb_input_xi_get_property_reply (xcb_connection_t                    *c,
8965                                  xcb_input_xi_get_property_cookie_t   cookie  /**< */,
8966                                  xcb_generic_error_t                **e);
8967 
8968 int
8969 xcb_input_xi_get_selected_events_sizeof (const void  *_buffer);
8970 
8971 /**
8972  *
8973  * @param c The connection
8974  * @return A cookie
8975  *
8976  * Delivers a request to the X server.
8977  *
8978  */
8979 xcb_input_xi_get_selected_events_cookie_t
8980 xcb_input_xi_get_selected_events (xcb_connection_t *c,
8981                                   xcb_window_t      window);
8982 
8983 /**
8984  *
8985  * @param c The connection
8986  * @return A cookie
8987  *
8988  * Delivers a request to the X server.
8989  *
8990  * This form can be used only if the request will cause
8991  * a reply to be generated. Any returned error will be
8992  * placed in the event queue.
8993  */
8994 xcb_input_xi_get_selected_events_cookie_t
8995 xcb_input_xi_get_selected_events_unchecked (xcb_connection_t *c,
8996                                             xcb_window_t      window);
8997 
8998 int
8999 xcb_input_xi_get_selected_events_masks_length (const xcb_input_xi_get_selected_events_reply_t *R);
9000 
9001 xcb_input_event_mask_iterator_t
9002 xcb_input_xi_get_selected_events_masks_iterator (const xcb_input_xi_get_selected_events_reply_t *R);
9003 
9004 /**
9005  * Return the reply
9006  * @param c      The connection
9007  * @param cookie The cookie
9008  * @param e      The xcb_generic_error_t supplied
9009  *
9010  * Returns the reply of the request asked by
9011  *
9012  * The parameter @p e supplied to this function must be NULL if
9013  * xcb_input_xi_get_selected_events_unchecked(). is used.
9014  * Otherwise, it stores the error if any.
9015  *
9016  * The returned value must be freed by the caller using free().
9017  */
9018 xcb_input_xi_get_selected_events_reply_t *
9019 xcb_input_xi_get_selected_events_reply (xcb_connection_t                           *c,
9020                                         xcb_input_xi_get_selected_events_cookie_t   cookie  /**< */,
9021                                         xcb_generic_error_t                       **e);
9022 
9023 int
9024 xcb_input_device_changed_sizeof (const void  *_buffer);
9025 
9026 int
9027 xcb_input_device_changed_classes_length (const xcb_input_device_changed_event_t *R);
9028 
9029 xcb_input_device_class_iterator_t
9030 xcb_input_device_changed_classes_iterator (const xcb_input_device_changed_event_t *R);
9031 
9032 int
9033 xcb_input_key_press_sizeof (const void  *_buffer);
9034 
9035 uint32_t *
9036 xcb_input_key_press_button_mask (const xcb_input_key_press_event_t *R);
9037 
9038 int
9039 xcb_input_key_press_button_mask_length (const xcb_input_key_press_event_t *R);
9040 
9041 xcb_generic_iterator_t
9042 xcb_input_key_press_button_mask_end (const xcb_input_key_press_event_t *R);
9043 
9044 uint32_t *
9045 xcb_input_key_press_valuator_mask (const xcb_input_key_press_event_t *R);
9046 
9047 int
9048 xcb_input_key_press_valuator_mask_length (const xcb_input_key_press_event_t *R);
9049 
9050 xcb_generic_iterator_t
9051 xcb_input_key_press_valuator_mask_end (const xcb_input_key_press_event_t *R);
9052 
9053 xcb_input_fp3232_t *
9054 xcb_input_key_press_axisvalues (const xcb_input_key_press_event_t *R);
9055 
9056 int
9057 xcb_input_key_press_axisvalues_length (const xcb_input_key_press_event_t *R);
9058 
9059 xcb_input_fp3232_iterator_t
9060 xcb_input_key_press_axisvalues_iterator (const xcb_input_key_press_event_t *R);
9061 
9062 int
9063 xcb_input_key_release_sizeof (const void  *_buffer  /**< */);
9064 
9065 int
9066 xcb_input_button_press_sizeof (const void  *_buffer);
9067 
9068 uint32_t *
9069 xcb_input_button_press_button_mask (const xcb_input_button_press_event_t *R);
9070 
9071 int
9072 xcb_input_button_press_button_mask_length (const xcb_input_button_press_event_t *R);
9073 
9074 xcb_generic_iterator_t
9075 xcb_input_button_press_button_mask_end (const xcb_input_button_press_event_t *R);
9076 
9077 uint32_t *
9078 xcb_input_button_press_valuator_mask (const xcb_input_button_press_event_t *R);
9079 
9080 int
9081 xcb_input_button_press_valuator_mask_length (const xcb_input_button_press_event_t *R);
9082 
9083 xcb_generic_iterator_t
9084 xcb_input_button_press_valuator_mask_end (const xcb_input_button_press_event_t *R);
9085 
9086 xcb_input_fp3232_t *
9087 xcb_input_button_press_axisvalues (const xcb_input_button_press_event_t *R);
9088 
9089 int
9090 xcb_input_button_press_axisvalues_length (const xcb_input_button_press_event_t *R);
9091 
9092 xcb_input_fp3232_iterator_t
9093 xcb_input_button_press_axisvalues_iterator (const xcb_input_button_press_event_t *R);
9094 
9095 int
9096 xcb_input_button_release_sizeof (const void  *_buffer  /**< */);
9097 
9098 int
9099 xcb_input_motion_sizeof (const void  *_buffer  /**< */);
9100 
9101 int
9102 xcb_input_enter_sizeof (const void  *_buffer);
9103 
9104 uint32_t *
9105 xcb_input_enter_buttons (const xcb_input_enter_event_t *R);
9106 
9107 int
9108 xcb_input_enter_buttons_length (const xcb_input_enter_event_t *R);
9109 
9110 xcb_generic_iterator_t
9111 xcb_input_enter_buttons_end (const xcb_input_enter_event_t *R);
9112 
9113 int
9114 xcb_input_leave_sizeof (const void  *_buffer  /**< */);
9115 
9116 int
9117 xcb_input_focus_in_sizeof (const void  *_buffer  /**< */);
9118 
9119 int
9120 xcb_input_focus_out_sizeof (const void  *_buffer  /**< */);
9121 
9122 /**
9123  * Get the next element of the iterator
9124  * @param i Pointer to a xcb_input_hierarchy_info_iterator_t
9125  *
9126  * Get the next element in the iterator. The member rem is
9127  * decreased by one. The member data points to the next
9128  * element. The member index is increased by sizeof(xcb_input_hierarchy_info_t)
9129  */
9130 void
9131 xcb_input_hierarchy_info_next (xcb_input_hierarchy_info_iterator_t *i);
9132 
9133 /**
9134  * Return the iterator pointing to the last element
9135  * @param i An xcb_input_hierarchy_info_iterator_t
9136  * @return  The iterator pointing to the last element
9137  *
9138  * Set the current element in the iterator to the last element.
9139  * The member rem is set to 0. The member data points to the
9140  * last element.
9141  */
9142 xcb_generic_iterator_t
9143 xcb_input_hierarchy_info_end (xcb_input_hierarchy_info_iterator_t i);
9144 
9145 int
9146 xcb_input_hierarchy_sizeof (const void  *_buffer);
9147 
9148 xcb_input_hierarchy_info_t *
9149 xcb_input_hierarchy_infos (const xcb_input_hierarchy_event_t *R);
9150 
9151 int
9152 xcb_input_hierarchy_infos_length (const xcb_input_hierarchy_event_t *R);
9153 
9154 xcb_input_hierarchy_info_iterator_t
9155 xcb_input_hierarchy_infos_iterator (const xcb_input_hierarchy_event_t *R);
9156 
9157 int
9158 xcb_input_raw_key_press_sizeof (const void  *_buffer);
9159 
9160 uint32_t *
9161 xcb_input_raw_key_press_valuator_mask (const xcb_input_raw_key_press_event_t *R);
9162 
9163 int
9164 xcb_input_raw_key_press_valuator_mask_length (const xcb_input_raw_key_press_event_t *R);
9165 
9166 xcb_generic_iterator_t
9167 xcb_input_raw_key_press_valuator_mask_end (const xcb_input_raw_key_press_event_t *R);
9168 
9169 xcb_input_fp3232_t *
9170 xcb_input_raw_key_press_axisvalues (const xcb_input_raw_key_press_event_t *R);
9171 
9172 int
9173 xcb_input_raw_key_press_axisvalues_length (const xcb_input_raw_key_press_event_t *R);
9174 
9175 xcb_input_fp3232_iterator_t
9176 xcb_input_raw_key_press_axisvalues_iterator (const xcb_input_raw_key_press_event_t *R);
9177 
9178 xcb_input_fp3232_t *
9179 xcb_input_raw_key_press_axisvalues_raw (const xcb_input_raw_key_press_event_t *R);
9180 
9181 int
9182 xcb_input_raw_key_press_axisvalues_raw_length (const xcb_input_raw_key_press_event_t *R);
9183 
9184 xcb_input_fp3232_iterator_t
9185 xcb_input_raw_key_press_axisvalues_raw_iterator (const xcb_input_raw_key_press_event_t *R);
9186 
9187 int
9188 xcb_input_raw_key_release_sizeof (const void  *_buffer  /**< */);
9189 
9190 int
9191 xcb_input_raw_button_press_sizeof (const void  *_buffer);
9192 
9193 uint32_t *
9194 xcb_input_raw_button_press_valuator_mask (const xcb_input_raw_button_press_event_t *R);
9195 
9196 int
9197 xcb_input_raw_button_press_valuator_mask_length (const xcb_input_raw_button_press_event_t *R);
9198 
9199 xcb_generic_iterator_t
9200 xcb_input_raw_button_press_valuator_mask_end (const xcb_input_raw_button_press_event_t *R);
9201 
9202 xcb_input_fp3232_t *
9203 xcb_input_raw_button_press_axisvalues (const xcb_input_raw_button_press_event_t *R);
9204 
9205 int
9206 xcb_input_raw_button_press_axisvalues_length (const xcb_input_raw_button_press_event_t *R);
9207 
9208 xcb_input_fp3232_iterator_t
9209 xcb_input_raw_button_press_axisvalues_iterator (const xcb_input_raw_button_press_event_t *R);
9210 
9211 xcb_input_fp3232_t *
9212 xcb_input_raw_button_press_axisvalues_raw (const xcb_input_raw_button_press_event_t *R);
9213 
9214 int
9215 xcb_input_raw_button_press_axisvalues_raw_length (const xcb_input_raw_button_press_event_t *R);
9216 
9217 xcb_input_fp3232_iterator_t
9218 xcb_input_raw_button_press_axisvalues_raw_iterator (const xcb_input_raw_button_press_event_t *R);
9219 
9220 int
9221 xcb_input_raw_button_release_sizeof (const void  *_buffer  /**< */);
9222 
9223 int
9224 xcb_input_raw_motion_sizeof (const void  *_buffer  /**< */);
9225 
9226 int
9227 xcb_input_touch_begin_sizeof (const void  *_buffer);
9228 
9229 uint32_t *
9230 xcb_input_touch_begin_button_mask (const xcb_input_touch_begin_event_t *R);
9231 
9232 int
9233 xcb_input_touch_begin_button_mask_length (const xcb_input_touch_begin_event_t *R);
9234 
9235 xcb_generic_iterator_t
9236 xcb_input_touch_begin_button_mask_end (const xcb_input_touch_begin_event_t *R);
9237 
9238 uint32_t *
9239 xcb_input_touch_begin_valuator_mask (const xcb_input_touch_begin_event_t *R);
9240 
9241 int
9242 xcb_input_touch_begin_valuator_mask_length (const xcb_input_touch_begin_event_t *R);
9243 
9244 xcb_generic_iterator_t
9245 xcb_input_touch_begin_valuator_mask_end (const xcb_input_touch_begin_event_t *R);
9246 
9247 xcb_input_fp3232_t *
9248 xcb_input_touch_begin_axisvalues (const xcb_input_touch_begin_event_t *R);
9249 
9250 int
9251 xcb_input_touch_begin_axisvalues_length (const xcb_input_touch_begin_event_t *R);
9252 
9253 xcb_input_fp3232_iterator_t
9254 xcb_input_touch_begin_axisvalues_iterator (const xcb_input_touch_begin_event_t *R);
9255 
9256 int
9257 xcb_input_touch_update_sizeof (const void  *_buffer  /**< */);
9258 
9259 int
9260 xcb_input_touch_end_sizeof (const void  *_buffer  /**< */);
9261 
9262 int
9263 xcb_input_raw_touch_begin_sizeof (const void  *_buffer);
9264 
9265 uint32_t *
9266 xcb_input_raw_touch_begin_valuator_mask (const xcb_input_raw_touch_begin_event_t *R);
9267 
9268 int
9269 xcb_input_raw_touch_begin_valuator_mask_length (const xcb_input_raw_touch_begin_event_t *R);
9270 
9271 xcb_generic_iterator_t
9272 xcb_input_raw_touch_begin_valuator_mask_end (const xcb_input_raw_touch_begin_event_t *R);
9273 
9274 xcb_input_fp3232_t *
9275 xcb_input_raw_touch_begin_axisvalues (const xcb_input_raw_touch_begin_event_t *R);
9276 
9277 int
9278 xcb_input_raw_touch_begin_axisvalues_length (const xcb_input_raw_touch_begin_event_t *R);
9279 
9280 xcb_input_fp3232_iterator_t
9281 xcb_input_raw_touch_begin_axisvalues_iterator (const xcb_input_raw_touch_begin_event_t *R);
9282 
9283 xcb_input_fp3232_t *
9284 xcb_input_raw_touch_begin_axisvalues_raw (const xcb_input_raw_touch_begin_event_t *R);
9285 
9286 int
9287 xcb_input_raw_touch_begin_axisvalues_raw_length (const xcb_input_raw_touch_begin_event_t *R);
9288 
9289 xcb_input_fp3232_iterator_t
9290 xcb_input_raw_touch_begin_axisvalues_raw_iterator (const xcb_input_raw_touch_begin_event_t *R);
9291 
9292 int
9293 xcb_input_raw_touch_update_sizeof (const void  *_buffer  /**< */);
9294 
9295 int
9296 xcb_input_raw_touch_end_sizeof (const void  *_buffer  /**< */);
9297 
9298 #ifdef __cplusplus
9299 }
9300 #endif
9301 
9302 #endif
9303 
9304 /**
9305  * @}
9306  */
9307