xref: /netbsd/external/mit/xorg/lib/libxcb/files/xinput.h (revision 9a467d0f)
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.h"
16 #include "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 4
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_GESTURE = 9
2676 } xcb_input_device_class_type_t;
2677 
2678 typedef enum xcb_input_device_type_t {
2679     XCB_INPUT_DEVICE_TYPE_MASTER_POINTER = 1,
2680     XCB_INPUT_DEVICE_TYPE_MASTER_KEYBOARD = 2,
2681     XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER = 3,
2682     XCB_INPUT_DEVICE_TYPE_SLAVE_KEYBOARD = 4,
2683     XCB_INPUT_DEVICE_TYPE_FLOATING_SLAVE = 5
2684 } xcb_input_device_type_t;
2685 
2686 typedef enum xcb_input_scroll_flags_t {
2687     XCB_INPUT_SCROLL_FLAGS_NO_EMULATION = 1,
2688     XCB_INPUT_SCROLL_FLAGS_PREFERRED = 2
2689 } xcb_input_scroll_flags_t;
2690 
2691 typedef enum xcb_input_scroll_type_t {
2692     XCB_INPUT_SCROLL_TYPE_VERTICAL = 1,
2693     XCB_INPUT_SCROLL_TYPE_HORIZONTAL = 2
2694 } xcb_input_scroll_type_t;
2695 
2696 typedef enum xcb_input_touch_mode_t {
2697     XCB_INPUT_TOUCH_MODE_DIRECT = 1,
2698     XCB_INPUT_TOUCH_MODE_DEPENDENT = 2
2699 } xcb_input_touch_mode_t;
2700 
2701 /**
2702  * @brief xcb_input_button_class_t
2703  **/
2704 typedef struct xcb_input_button_class_t {
2705     uint16_t              type;
2706     uint16_t              len;
2707     xcb_input_device_id_t sourceid;
2708     uint16_t              num_buttons;
2709 } xcb_input_button_class_t;
2710 
2711 /**
2712  * @brief xcb_input_button_class_iterator_t
2713  **/
2714 typedef struct xcb_input_button_class_iterator_t {
2715     xcb_input_button_class_t *data;
2716     int                       rem;
2717     int                       index;
2718 } xcb_input_button_class_iterator_t;
2719 
2720 /**
2721  * @brief xcb_input_key_class_t
2722  **/
2723 typedef struct xcb_input_key_class_t {
2724     uint16_t              type;
2725     uint16_t              len;
2726     xcb_input_device_id_t sourceid;
2727     uint16_t              num_keys;
2728 } xcb_input_key_class_t;
2729 
2730 /**
2731  * @brief xcb_input_key_class_iterator_t
2732  **/
2733 typedef struct xcb_input_key_class_iterator_t {
2734     xcb_input_key_class_t *data;
2735     int                    rem;
2736     int                    index;
2737 } xcb_input_key_class_iterator_t;
2738 
2739 /**
2740  * @brief xcb_input_scroll_class_t
2741  **/
2742 typedef struct xcb_input_scroll_class_t {
2743     uint16_t              type;
2744     uint16_t              len;
2745     xcb_input_device_id_t sourceid;
2746     uint16_t              number;
2747     uint16_t              scroll_type;
2748     uint8_t               pad0[2];
2749     uint32_t              flags;
2750     xcb_input_fp3232_t    increment;
2751 } xcb_input_scroll_class_t;
2752 
2753 /**
2754  * @brief xcb_input_scroll_class_iterator_t
2755  **/
2756 typedef struct xcb_input_scroll_class_iterator_t {
2757     xcb_input_scroll_class_t *data;
2758     int                       rem;
2759     int                       index;
2760 } xcb_input_scroll_class_iterator_t;
2761 
2762 /**
2763  * @brief xcb_input_touch_class_t
2764  **/
2765 typedef struct xcb_input_touch_class_t {
2766     uint16_t              type;
2767     uint16_t              len;
2768     xcb_input_device_id_t sourceid;
2769     uint8_t               mode;
2770     uint8_t               num_touches;
2771 } xcb_input_touch_class_t;
2772 
2773 /**
2774  * @brief xcb_input_touch_class_iterator_t
2775  **/
2776 typedef struct xcb_input_touch_class_iterator_t {
2777     xcb_input_touch_class_t *data;
2778     int                      rem;
2779     int                      index;
2780 } xcb_input_touch_class_iterator_t;
2781 
2782 /**
2783  * @brief xcb_input_gesture_class_t
2784  **/
2785 typedef struct xcb_input_gesture_class_t {
2786     uint16_t              type;
2787     uint16_t              len;
2788     xcb_input_device_id_t sourceid;
2789     uint8_t               num_touches;
2790     uint8_t               pad0;
2791 } xcb_input_gesture_class_t;
2792 
2793 /**
2794  * @brief xcb_input_gesture_class_iterator_t
2795  **/
2796 typedef struct xcb_input_gesture_class_iterator_t {
2797     xcb_input_gesture_class_t *data;
2798     int                        rem;
2799     int                        index;
2800 } xcb_input_gesture_class_iterator_t;
2801 
2802 /**
2803  * @brief xcb_input_valuator_class_t
2804  **/
2805 typedef struct xcb_input_valuator_class_t {
2806     uint16_t              type;
2807     uint16_t              len;
2808     xcb_input_device_id_t sourceid;
2809     uint16_t              number;
2810     xcb_atom_t            label;
2811     xcb_input_fp3232_t    min;
2812     xcb_input_fp3232_t    max;
2813     xcb_input_fp3232_t    value;
2814     uint32_t              resolution;
2815     uint8_t               mode;
2816     uint8_t               pad0[3];
2817 } xcb_input_valuator_class_t;
2818 
2819 /**
2820  * @brief xcb_input_valuator_class_iterator_t
2821  **/
2822 typedef struct xcb_input_valuator_class_iterator_t {
2823     xcb_input_valuator_class_t *data;
2824     int                         rem;
2825     int                         index;
2826 } xcb_input_valuator_class_iterator_t;
2827 
2828 /**
2829  * @brief xcb_input_device_class_data_t
2830  **/
2831 typedef struct xcb_input_device_class_data_t {
2832     struct {
2833         uint16_t           num_keys;
2834         uint32_t          *keys;
2835     } key;
2836     struct {
2837         uint16_t           num_buttons;
2838         uint32_t          *state;
2839         xcb_atom_t        *labels;
2840     } button;
2841     struct {
2842         uint16_t           number;
2843         xcb_atom_t         label;
2844         xcb_input_fp3232_t min;
2845         xcb_input_fp3232_t max;
2846         xcb_input_fp3232_t value;
2847         uint32_t           resolution;
2848         uint8_t            mode;
2849         uint8_t            pad0[3];
2850     } valuator;
2851     struct {
2852         uint16_t           number;
2853         uint16_t           scroll_type;
2854         uint8_t            pad1[2];
2855         uint32_t           flags;
2856         xcb_input_fp3232_t increment;
2857     } scroll;
2858     struct {
2859         uint8_t            mode;
2860         uint8_t            num_touches;
2861     } touch;
2862     struct {
2863         uint8_t            num_touches;
2864         uint8_t            pad2;
2865     } gesture;
2866 } xcb_input_device_class_data_t;
2867 
2868 /**
2869  * @brief xcb_input_device_class_t
2870  **/
2871 typedef struct xcb_input_device_class_t {
2872     uint16_t              type;
2873     uint16_t              len;
2874     xcb_input_device_id_t sourceid;
2875 } xcb_input_device_class_t;
2876 
2877 void *
2878 xcb_input_device_class_data (const xcb_input_device_class_t *R);
2879 
2880 /**
2881  * @brief xcb_input_device_class_iterator_t
2882  **/
2883 typedef struct xcb_input_device_class_iterator_t {
2884     xcb_input_device_class_t *data;
2885     int                       rem;
2886     int                       index;
2887 } xcb_input_device_class_iterator_t;
2888 
2889 /**
2890  * @brief xcb_input_xi_device_info_t
2891  **/
2892 typedef struct xcb_input_xi_device_info_t {
2893     xcb_input_device_id_t deviceid;
2894     uint16_t              type;
2895     xcb_input_device_id_t attachment;
2896     uint16_t              num_classes;
2897     uint16_t              name_len;
2898     uint8_t               enabled;
2899     uint8_t               pad0;
2900 } xcb_input_xi_device_info_t;
2901 
2902 /**
2903  * @brief xcb_input_xi_device_info_iterator_t
2904  **/
2905 typedef struct xcb_input_xi_device_info_iterator_t {
2906     xcb_input_xi_device_info_t *data;
2907     int                         rem;
2908     int                         index;
2909 } xcb_input_xi_device_info_iterator_t;
2910 
2911 /**
2912  * @brief xcb_input_xi_query_device_cookie_t
2913  **/
2914 typedef struct xcb_input_xi_query_device_cookie_t {
2915     unsigned int sequence;
2916 } xcb_input_xi_query_device_cookie_t;
2917 
2918 /** Opcode for xcb_input_xi_query_device. */
2919 #define XCB_INPUT_XI_QUERY_DEVICE 48
2920 
2921 /**
2922  * @brief xcb_input_xi_query_device_request_t
2923  **/
2924 typedef struct xcb_input_xi_query_device_request_t {
2925     uint8_t               major_opcode;
2926     uint8_t               minor_opcode;
2927     uint16_t              length;
2928     xcb_input_device_id_t deviceid;
2929     uint8_t               pad0[2];
2930 } xcb_input_xi_query_device_request_t;
2931 
2932 /**
2933  * @brief xcb_input_xi_query_device_reply_t
2934  **/
2935 typedef struct xcb_input_xi_query_device_reply_t {
2936     uint8_t  response_type;
2937     uint8_t  pad0;
2938     uint16_t sequence;
2939     uint32_t length;
2940     uint16_t num_infos;
2941     uint8_t  pad1[22];
2942 } xcb_input_xi_query_device_reply_t;
2943 
2944 /** Opcode for xcb_input_xi_set_focus. */
2945 #define XCB_INPUT_XI_SET_FOCUS 49
2946 
2947 /**
2948  * @brief xcb_input_xi_set_focus_request_t
2949  **/
2950 typedef struct xcb_input_xi_set_focus_request_t {
2951     uint8_t               major_opcode;
2952     uint8_t               minor_opcode;
2953     uint16_t              length;
2954     xcb_window_t          window;
2955     xcb_timestamp_t       time;
2956     xcb_input_device_id_t deviceid;
2957     uint8_t               pad0[2];
2958 } xcb_input_xi_set_focus_request_t;
2959 
2960 /**
2961  * @brief xcb_input_xi_get_focus_cookie_t
2962  **/
2963 typedef struct xcb_input_xi_get_focus_cookie_t {
2964     unsigned int sequence;
2965 } xcb_input_xi_get_focus_cookie_t;
2966 
2967 /** Opcode for xcb_input_xi_get_focus. */
2968 #define XCB_INPUT_XI_GET_FOCUS 50
2969 
2970 /**
2971  * @brief xcb_input_xi_get_focus_request_t
2972  **/
2973 typedef struct xcb_input_xi_get_focus_request_t {
2974     uint8_t               major_opcode;
2975     uint8_t               minor_opcode;
2976     uint16_t              length;
2977     xcb_input_device_id_t deviceid;
2978     uint8_t               pad0[2];
2979 } xcb_input_xi_get_focus_request_t;
2980 
2981 /**
2982  * @brief xcb_input_xi_get_focus_reply_t
2983  **/
2984 typedef struct xcb_input_xi_get_focus_reply_t {
2985     uint8_t      response_type;
2986     uint8_t      pad0;
2987     uint16_t     sequence;
2988     uint32_t     length;
2989     xcb_window_t focus;
2990     uint8_t      pad1[20];
2991 } xcb_input_xi_get_focus_reply_t;
2992 
2993 typedef enum xcb_input_grab_owner_t {
2994     XCB_INPUT_GRAB_OWNER_NO_OWNER = 0,
2995     XCB_INPUT_GRAB_OWNER_OWNER = 1
2996 } xcb_input_grab_owner_t;
2997 
2998 /**
2999  * @brief xcb_input_xi_grab_device_cookie_t
3000  **/
3001 typedef struct xcb_input_xi_grab_device_cookie_t {
3002     unsigned int sequence;
3003 } xcb_input_xi_grab_device_cookie_t;
3004 
3005 /** Opcode for xcb_input_xi_grab_device. */
3006 #define XCB_INPUT_XI_GRAB_DEVICE 51
3007 
3008 /**
3009  * @brief xcb_input_xi_grab_device_request_t
3010  **/
3011 typedef struct xcb_input_xi_grab_device_request_t {
3012     uint8_t               major_opcode;
3013     uint8_t               minor_opcode;
3014     uint16_t              length;
3015     xcb_window_t          window;
3016     xcb_timestamp_t       time;
3017     xcb_cursor_t          cursor;
3018     xcb_input_device_id_t deviceid;
3019     uint8_t               mode;
3020     uint8_t               paired_device_mode;
3021     uint8_t               owner_events;
3022     uint8_t               pad0;
3023     uint16_t              mask_len;
3024 } xcb_input_xi_grab_device_request_t;
3025 
3026 /**
3027  * @brief xcb_input_xi_grab_device_reply_t
3028  **/
3029 typedef struct xcb_input_xi_grab_device_reply_t {
3030     uint8_t  response_type;
3031     uint8_t  pad0;
3032     uint16_t sequence;
3033     uint32_t length;
3034     uint8_t  status;
3035     uint8_t  pad1[23];
3036 } xcb_input_xi_grab_device_reply_t;
3037 
3038 /** Opcode for xcb_input_xi_ungrab_device. */
3039 #define XCB_INPUT_XI_UNGRAB_DEVICE 52
3040 
3041 /**
3042  * @brief xcb_input_xi_ungrab_device_request_t
3043  **/
3044 typedef struct xcb_input_xi_ungrab_device_request_t {
3045     uint8_t               major_opcode;
3046     uint8_t               minor_opcode;
3047     uint16_t              length;
3048     xcb_timestamp_t       time;
3049     xcb_input_device_id_t deviceid;
3050     uint8_t               pad0[2];
3051 } xcb_input_xi_ungrab_device_request_t;
3052 
3053 typedef enum xcb_input_event_mode_t {
3054     XCB_INPUT_EVENT_MODE_ASYNC_DEVICE = 0,
3055     XCB_INPUT_EVENT_MODE_SYNC_DEVICE = 1,
3056     XCB_INPUT_EVENT_MODE_REPLAY_DEVICE = 2,
3057     XCB_INPUT_EVENT_MODE_ASYNC_PAIRED_DEVICE = 3,
3058     XCB_INPUT_EVENT_MODE_ASYNC_PAIR = 4,
3059     XCB_INPUT_EVENT_MODE_SYNC_PAIR = 5,
3060     XCB_INPUT_EVENT_MODE_ACCEPT_TOUCH = 6,
3061     XCB_INPUT_EVENT_MODE_REJECT_TOUCH = 7
3062 } xcb_input_event_mode_t;
3063 
3064 /** Opcode for xcb_input_xi_allow_events. */
3065 #define XCB_INPUT_XI_ALLOW_EVENTS 53
3066 
3067 /**
3068  * @brief xcb_input_xi_allow_events_request_t
3069  **/
3070 typedef struct xcb_input_xi_allow_events_request_t {
3071     uint8_t               major_opcode;
3072     uint8_t               minor_opcode;
3073     uint16_t              length;
3074     xcb_timestamp_t       time;
3075     xcb_input_device_id_t deviceid;
3076     uint8_t               event_mode;
3077     uint8_t               pad0;
3078     uint32_t              touchid;
3079     xcb_window_t          grab_window;
3080 } xcb_input_xi_allow_events_request_t;
3081 
3082 typedef enum xcb_input_grab_mode_22_t {
3083     XCB_INPUT_GRAB_MODE_22_SYNC = 0,
3084     XCB_INPUT_GRAB_MODE_22_ASYNC = 1,
3085     XCB_INPUT_GRAB_MODE_22_TOUCH = 2
3086 } xcb_input_grab_mode_22_t;
3087 
3088 typedef enum xcb_input_grab_type_t {
3089     XCB_INPUT_GRAB_TYPE_BUTTON = 0,
3090     XCB_INPUT_GRAB_TYPE_KEYCODE = 1,
3091     XCB_INPUT_GRAB_TYPE_ENTER = 2,
3092     XCB_INPUT_GRAB_TYPE_FOCUS_IN = 3,
3093     XCB_INPUT_GRAB_TYPE_TOUCH_BEGIN = 4,
3094     XCB_INPUT_GRAB_TYPE_GESTURE_PINCH_BEGIN = 5,
3095     XCB_INPUT_GRAB_TYPE_GESTURE_SWIPE_BEGIN = 6
3096 } xcb_input_grab_type_t;
3097 
3098 typedef enum xcb_input_modifier_mask_t {
3099     XCB_INPUT_MODIFIER_MASK_ANY = 2147483648
3100 } xcb_input_modifier_mask_t;
3101 
3102 /**
3103  * @brief xcb_input_grab_modifier_info_t
3104  **/
3105 typedef struct xcb_input_grab_modifier_info_t {
3106     uint32_t modifiers;
3107     uint8_t  status;
3108     uint8_t  pad0[3];
3109 } xcb_input_grab_modifier_info_t;
3110 
3111 /**
3112  * @brief xcb_input_grab_modifier_info_iterator_t
3113  **/
3114 typedef struct xcb_input_grab_modifier_info_iterator_t {
3115     xcb_input_grab_modifier_info_t *data;
3116     int                             rem;
3117     int                             index;
3118 } xcb_input_grab_modifier_info_iterator_t;
3119 
3120 /**
3121  * @brief xcb_input_xi_passive_grab_device_cookie_t
3122  **/
3123 typedef struct xcb_input_xi_passive_grab_device_cookie_t {
3124     unsigned int sequence;
3125 } xcb_input_xi_passive_grab_device_cookie_t;
3126 
3127 /** Opcode for xcb_input_xi_passive_grab_device. */
3128 #define XCB_INPUT_XI_PASSIVE_GRAB_DEVICE 54
3129 
3130 /**
3131  * @brief xcb_input_xi_passive_grab_device_request_t
3132  **/
3133 typedef struct xcb_input_xi_passive_grab_device_request_t {
3134     uint8_t               major_opcode;
3135     uint8_t               minor_opcode;
3136     uint16_t              length;
3137     xcb_timestamp_t       time;
3138     xcb_window_t          grab_window;
3139     xcb_cursor_t          cursor;
3140     uint32_t              detail;
3141     xcb_input_device_id_t deviceid;
3142     uint16_t              num_modifiers;
3143     uint16_t              mask_len;
3144     uint8_t               grab_type;
3145     uint8_t               grab_mode;
3146     uint8_t               paired_device_mode;
3147     uint8_t               owner_events;
3148     uint8_t               pad0[2];
3149 } xcb_input_xi_passive_grab_device_request_t;
3150 
3151 /**
3152  * @brief xcb_input_xi_passive_grab_device_reply_t
3153  **/
3154 typedef struct xcb_input_xi_passive_grab_device_reply_t {
3155     uint8_t  response_type;
3156     uint8_t  pad0;
3157     uint16_t sequence;
3158     uint32_t length;
3159     uint16_t num_modifiers;
3160     uint8_t  pad1[22];
3161 } xcb_input_xi_passive_grab_device_reply_t;
3162 
3163 /** Opcode for xcb_input_xi_passive_ungrab_device. */
3164 #define XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE 55
3165 
3166 /**
3167  * @brief xcb_input_xi_passive_ungrab_device_request_t
3168  **/
3169 typedef struct xcb_input_xi_passive_ungrab_device_request_t {
3170     uint8_t               major_opcode;
3171     uint8_t               minor_opcode;
3172     uint16_t              length;
3173     xcb_window_t          grab_window;
3174     uint32_t              detail;
3175     xcb_input_device_id_t deviceid;
3176     uint16_t              num_modifiers;
3177     uint8_t               grab_type;
3178     uint8_t               pad0[3];
3179 } xcb_input_xi_passive_ungrab_device_request_t;
3180 
3181 /**
3182  * @brief xcb_input_xi_list_properties_cookie_t
3183  **/
3184 typedef struct xcb_input_xi_list_properties_cookie_t {
3185     unsigned int sequence;
3186 } xcb_input_xi_list_properties_cookie_t;
3187 
3188 /** Opcode for xcb_input_xi_list_properties. */
3189 #define XCB_INPUT_XI_LIST_PROPERTIES 56
3190 
3191 /**
3192  * @brief xcb_input_xi_list_properties_request_t
3193  **/
3194 typedef struct xcb_input_xi_list_properties_request_t {
3195     uint8_t               major_opcode;
3196     uint8_t               minor_opcode;
3197     uint16_t              length;
3198     xcb_input_device_id_t deviceid;
3199     uint8_t               pad0[2];
3200 } xcb_input_xi_list_properties_request_t;
3201 
3202 /**
3203  * @brief xcb_input_xi_list_properties_reply_t
3204  **/
3205 typedef struct xcb_input_xi_list_properties_reply_t {
3206     uint8_t  response_type;
3207     uint8_t  pad0;
3208     uint16_t sequence;
3209     uint32_t length;
3210     uint16_t num_properties;
3211     uint8_t  pad1[22];
3212 } xcb_input_xi_list_properties_reply_t;
3213 
3214 /**
3215  * @brief xcb_input_xi_change_property_items_t
3216  **/
3217 typedef struct xcb_input_xi_change_property_items_t {
3218     uint8_t  *data8;
3219     uint16_t *data16;
3220     uint32_t *data32;
3221 } xcb_input_xi_change_property_items_t;
3222 
3223 /** Opcode for xcb_input_xi_change_property. */
3224 #define XCB_INPUT_XI_CHANGE_PROPERTY 57
3225 
3226 /**
3227  * @brief xcb_input_xi_change_property_request_t
3228  **/
3229 typedef struct xcb_input_xi_change_property_request_t {
3230     uint8_t               major_opcode;
3231     uint8_t               minor_opcode;
3232     uint16_t              length;
3233     xcb_input_device_id_t deviceid;
3234     uint8_t               mode;
3235     uint8_t               format;
3236     xcb_atom_t            property;
3237     xcb_atom_t            type;
3238     uint32_t              num_items;
3239 } xcb_input_xi_change_property_request_t;
3240 
3241 /** Opcode for xcb_input_xi_delete_property. */
3242 #define XCB_INPUT_XI_DELETE_PROPERTY 58
3243 
3244 /**
3245  * @brief xcb_input_xi_delete_property_request_t
3246  **/
3247 typedef struct xcb_input_xi_delete_property_request_t {
3248     uint8_t               major_opcode;
3249     uint8_t               minor_opcode;
3250     uint16_t              length;
3251     xcb_input_device_id_t deviceid;
3252     uint8_t               pad0[2];
3253     xcb_atom_t            property;
3254 } xcb_input_xi_delete_property_request_t;
3255 
3256 /**
3257  * @brief xcb_input_xi_get_property_cookie_t
3258  **/
3259 typedef struct xcb_input_xi_get_property_cookie_t {
3260     unsigned int sequence;
3261 } xcb_input_xi_get_property_cookie_t;
3262 
3263 /** Opcode for xcb_input_xi_get_property. */
3264 #define XCB_INPUT_XI_GET_PROPERTY 59
3265 
3266 /**
3267  * @brief xcb_input_xi_get_property_request_t
3268  **/
3269 typedef struct xcb_input_xi_get_property_request_t {
3270     uint8_t               major_opcode;
3271     uint8_t               minor_opcode;
3272     uint16_t              length;
3273     xcb_input_device_id_t deviceid;
3274     uint8_t               _delete;
3275     uint8_t               pad0;
3276     xcb_atom_t            property;
3277     xcb_atom_t            type;
3278     uint32_t              offset;
3279     uint32_t              len;
3280 } xcb_input_xi_get_property_request_t;
3281 
3282 /**
3283  * @brief xcb_input_xi_get_property_items_t
3284  **/
3285 typedef struct xcb_input_xi_get_property_items_t {
3286     uint8_t  *data8;
3287     uint16_t *data16;
3288     uint32_t *data32;
3289 } xcb_input_xi_get_property_items_t;
3290 
3291 /**
3292  * @brief xcb_input_xi_get_property_reply_t
3293  **/
3294 typedef struct xcb_input_xi_get_property_reply_t {
3295     uint8_t    response_type;
3296     uint8_t    pad0;
3297     uint16_t   sequence;
3298     uint32_t   length;
3299     xcb_atom_t type;
3300     uint32_t   bytes_after;
3301     uint32_t   num_items;
3302     uint8_t    format;
3303     uint8_t    pad1[11];
3304 } xcb_input_xi_get_property_reply_t;
3305 
3306 /**
3307  * @brief xcb_input_xi_get_selected_events_cookie_t
3308  **/
3309 typedef struct xcb_input_xi_get_selected_events_cookie_t {
3310     unsigned int sequence;
3311 } xcb_input_xi_get_selected_events_cookie_t;
3312 
3313 /** Opcode for xcb_input_xi_get_selected_events. */
3314 #define XCB_INPUT_XI_GET_SELECTED_EVENTS 60
3315 
3316 /**
3317  * @brief xcb_input_xi_get_selected_events_request_t
3318  **/
3319 typedef struct xcb_input_xi_get_selected_events_request_t {
3320     uint8_t      major_opcode;
3321     uint8_t      minor_opcode;
3322     uint16_t     length;
3323     xcb_window_t window;
3324 } xcb_input_xi_get_selected_events_request_t;
3325 
3326 /**
3327  * @brief xcb_input_xi_get_selected_events_reply_t
3328  **/
3329 typedef struct xcb_input_xi_get_selected_events_reply_t {
3330     uint8_t  response_type;
3331     uint8_t  pad0;
3332     uint16_t sequence;
3333     uint32_t length;
3334     uint16_t num_masks;
3335     uint8_t  pad1[22];
3336 } xcb_input_xi_get_selected_events_reply_t;
3337 
3338 /**
3339  * @brief xcb_input_barrier_release_pointer_info_t
3340  **/
3341 typedef struct xcb_input_barrier_release_pointer_info_t {
3342     xcb_input_device_id_t deviceid;
3343     uint8_t               pad0[2];
3344     xcb_xfixes_barrier_t  barrier;
3345     uint32_t              eventid;
3346 } xcb_input_barrier_release_pointer_info_t;
3347 
3348 /**
3349  * @brief xcb_input_barrier_release_pointer_info_iterator_t
3350  **/
3351 typedef struct xcb_input_barrier_release_pointer_info_iterator_t {
3352     xcb_input_barrier_release_pointer_info_t *data;
3353     int                                       rem;
3354     int                                       index;
3355 } xcb_input_barrier_release_pointer_info_iterator_t;
3356 
3357 /** Opcode for xcb_input_xi_barrier_release_pointer. */
3358 #define XCB_INPUT_XI_BARRIER_RELEASE_POINTER 61
3359 
3360 /**
3361  * @brief xcb_input_xi_barrier_release_pointer_request_t
3362  **/
3363 typedef struct xcb_input_xi_barrier_release_pointer_request_t {
3364     uint8_t  major_opcode;
3365     uint8_t  minor_opcode;
3366     uint16_t length;
3367     uint32_t num_barriers;
3368 } xcb_input_xi_barrier_release_pointer_request_t;
3369 
3370 /** Opcode for xcb_input_device_valuator. */
3371 #define XCB_INPUT_DEVICE_VALUATOR 0
3372 
3373 /**
3374  * @brief xcb_input_device_valuator_event_t
3375  **/
3376 typedef struct xcb_input_device_valuator_event_t {
3377     uint8_t  response_type;
3378     uint8_t  device_id;
3379     uint16_t sequence;
3380     uint16_t device_state;
3381     uint8_t  num_valuators;
3382     uint8_t  first_valuator;
3383     int32_t  valuators[6];
3384 } xcb_input_device_valuator_event_t;
3385 
3386 typedef enum xcb_input_more_events_mask_t {
3387     XCB_INPUT_MORE_EVENTS_MASK_MORE_EVENTS = 128
3388 } xcb_input_more_events_mask_t;
3389 
3390 /** Opcode for xcb_input_device_key_press. */
3391 #define XCB_INPUT_DEVICE_KEY_PRESS 1
3392 
3393 /**
3394  * @brief xcb_input_device_key_press_event_t
3395  **/
3396 typedef struct xcb_input_device_key_press_event_t {
3397     uint8_t         response_type;
3398     uint8_t         detail;
3399     uint16_t        sequence;
3400     xcb_timestamp_t time;
3401     xcb_window_t    root;
3402     xcb_window_t    event;
3403     xcb_window_t    child;
3404     int16_t         root_x;
3405     int16_t         root_y;
3406     int16_t         event_x;
3407     int16_t         event_y;
3408     uint16_t        state;
3409     uint8_t         same_screen;
3410     uint8_t         device_id;
3411 } xcb_input_device_key_press_event_t;
3412 
3413 /** Opcode for xcb_input_device_key_release. */
3414 #define XCB_INPUT_DEVICE_KEY_RELEASE 2
3415 
3416 typedef xcb_input_device_key_press_event_t xcb_input_device_key_release_event_t;
3417 
3418 /** Opcode for xcb_input_device_button_press. */
3419 #define XCB_INPUT_DEVICE_BUTTON_PRESS 3
3420 
3421 typedef xcb_input_device_key_press_event_t xcb_input_device_button_press_event_t;
3422 
3423 /** Opcode for xcb_input_device_button_release. */
3424 #define XCB_INPUT_DEVICE_BUTTON_RELEASE 4
3425 
3426 typedef xcb_input_device_key_press_event_t xcb_input_device_button_release_event_t;
3427 
3428 /** Opcode for xcb_input_device_motion_notify. */
3429 #define XCB_INPUT_DEVICE_MOTION_NOTIFY 5
3430 
3431 typedef xcb_input_device_key_press_event_t xcb_input_device_motion_notify_event_t;
3432 
3433 /** Opcode for xcb_input_device_focus_in. */
3434 #define XCB_INPUT_DEVICE_FOCUS_IN 6
3435 
3436 /**
3437  * @brief xcb_input_device_focus_in_event_t
3438  **/
3439 typedef struct xcb_input_device_focus_in_event_t {
3440     uint8_t         response_type;
3441     uint8_t         detail;
3442     uint16_t        sequence;
3443     xcb_timestamp_t time;
3444     xcb_window_t    window;
3445     uint8_t         mode;
3446     uint8_t         device_id;
3447     uint8_t         pad0[18];
3448 } xcb_input_device_focus_in_event_t;
3449 
3450 /** Opcode for xcb_input_device_focus_out. */
3451 #define XCB_INPUT_DEVICE_FOCUS_OUT 7
3452 
3453 typedef xcb_input_device_focus_in_event_t xcb_input_device_focus_out_event_t;
3454 
3455 /** Opcode for xcb_input_proximity_in. */
3456 #define XCB_INPUT_PROXIMITY_IN 8
3457 
3458 typedef xcb_input_device_key_press_event_t xcb_input_proximity_in_event_t;
3459 
3460 /** Opcode for xcb_input_proximity_out. */
3461 #define XCB_INPUT_PROXIMITY_OUT 9
3462 
3463 typedef xcb_input_device_key_press_event_t xcb_input_proximity_out_event_t;
3464 
3465 typedef enum xcb_input_classes_reported_mask_t {
3466     XCB_INPUT_CLASSES_REPORTED_MASK_OUT_OF_PROXIMITY = 128,
3467     XCB_INPUT_CLASSES_REPORTED_MASK_DEVICE_MODE_ABSOLUTE = 64,
3468     XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_VALUATORS = 4,
3469     XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_BUTTONS = 2,
3470     XCB_INPUT_CLASSES_REPORTED_MASK_REPORTING_KEYS = 1
3471 } xcb_input_classes_reported_mask_t;
3472 
3473 /** Opcode for xcb_input_device_state_notify. */
3474 #define XCB_INPUT_DEVICE_STATE_NOTIFY 10
3475 
3476 /**
3477  * @brief xcb_input_device_state_notify_event_t
3478  **/
3479 typedef struct xcb_input_device_state_notify_event_t {
3480     uint8_t         response_type;
3481     uint8_t         device_id;
3482     uint16_t        sequence;
3483     xcb_timestamp_t time;
3484     uint8_t         num_keys;
3485     uint8_t         num_buttons;
3486     uint8_t         num_valuators;
3487     uint8_t         classes_reported;
3488     uint8_t         buttons[4];
3489     uint8_t         keys[4];
3490     uint32_t        valuators[3];
3491 } xcb_input_device_state_notify_event_t;
3492 
3493 /** Opcode for xcb_input_device_mapping_notify. */
3494 #define XCB_INPUT_DEVICE_MAPPING_NOTIFY 11
3495 
3496 /**
3497  * @brief xcb_input_device_mapping_notify_event_t
3498  **/
3499 typedef struct xcb_input_device_mapping_notify_event_t {
3500     uint8_t              response_type;
3501     uint8_t              device_id;
3502     uint16_t             sequence;
3503     uint8_t              request;
3504     xcb_input_key_code_t first_keycode;
3505     uint8_t              count;
3506     uint8_t              pad0;
3507     xcb_timestamp_t      time;
3508     uint8_t              pad1[20];
3509 } xcb_input_device_mapping_notify_event_t;
3510 
3511 typedef enum xcb_input_change_device_t {
3512     XCB_INPUT_CHANGE_DEVICE_NEW_POINTER = 0,
3513     XCB_INPUT_CHANGE_DEVICE_NEW_KEYBOARD = 1
3514 } xcb_input_change_device_t;
3515 
3516 /** Opcode for xcb_input_change_device_notify. */
3517 #define XCB_INPUT_CHANGE_DEVICE_NOTIFY 12
3518 
3519 /**
3520  * @brief xcb_input_change_device_notify_event_t
3521  **/
3522 typedef struct xcb_input_change_device_notify_event_t {
3523     uint8_t         response_type;
3524     uint8_t         device_id;
3525     uint16_t        sequence;
3526     xcb_timestamp_t time;
3527     uint8_t         request;
3528     uint8_t         pad0[23];
3529 } xcb_input_change_device_notify_event_t;
3530 
3531 /** Opcode for xcb_input_device_key_state_notify. */
3532 #define XCB_INPUT_DEVICE_KEY_STATE_NOTIFY 13
3533 
3534 /**
3535  * @brief xcb_input_device_key_state_notify_event_t
3536  **/
3537 typedef struct xcb_input_device_key_state_notify_event_t {
3538     uint8_t  response_type;
3539     uint8_t  device_id;
3540     uint16_t sequence;
3541     uint8_t  keys[28];
3542 } xcb_input_device_key_state_notify_event_t;
3543 
3544 /** Opcode for xcb_input_device_button_state_notify. */
3545 #define XCB_INPUT_DEVICE_BUTTON_STATE_NOTIFY 14
3546 
3547 /**
3548  * @brief xcb_input_device_button_state_notify_event_t
3549  **/
3550 typedef struct xcb_input_device_button_state_notify_event_t {
3551     uint8_t  response_type;
3552     uint8_t  device_id;
3553     uint16_t sequence;
3554     uint8_t  buttons[28];
3555 } xcb_input_device_button_state_notify_event_t;
3556 
3557 typedef enum xcb_input_device_change_t {
3558     XCB_INPUT_DEVICE_CHANGE_ADDED = 0,
3559     XCB_INPUT_DEVICE_CHANGE_REMOVED = 1,
3560     XCB_INPUT_DEVICE_CHANGE_ENABLED = 2,
3561     XCB_INPUT_DEVICE_CHANGE_DISABLED = 3,
3562     XCB_INPUT_DEVICE_CHANGE_UNRECOVERABLE = 4,
3563     XCB_INPUT_DEVICE_CHANGE_CONTROL_CHANGED = 5
3564 } xcb_input_device_change_t;
3565 
3566 /** Opcode for xcb_input_device_presence_notify. */
3567 #define XCB_INPUT_DEVICE_PRESENCE_NOTIFY 15
3568 
3569 /**
3570  * @brief xcb_input_device_presence_notify_event_t
3571  **/
3572 typedef struct xcb_input_device_presence_notify_event_t {
3573     uint8_t         response_type;
3574     uint8_t         pad0;
3575     uint16_t        sequence;
3576     xcb_timestamp_t time;
3577     uint8_t         devchange;
3578     uint8_t         device_id;
3579     uint16_t        control;
3580     uint8_t         pad1[20];
3581 } xcb_input_device_presence_notify_event_t;
3582 
3583 /** Opcode for xcb_input_device_property_notify. */
3584 #define XCB_INPUT_DEVICE_PROPERTY_NOTIFY 16
3585 
3586 /**
3587  * @brief xcb_input_device_property_notify_event_t
3588  **/
3589 typedef struct xcb_input_device_property_notify_event_t {
3590     uint8_t         response_type;
3591     uint8_t         state;
3592     uint16_t        sequence;
3593     xcb_timestamp_t time;
3594     xcb_atom_t      property;
3595     uint8_t         pad0[19];
3596     uint8_t         device_id;
3597 } xcb_input_device_property_notify_event_t;
3598 
3599 typedef enum xcb_input_change_reason_t {
3600     XCB_INPUT_CHANGE_REASON_SLAVE_SWITCH = 1,
3601     XCB_INPUT_CHANGE_REASON_DEVICE_CHANGE = 2
3602 } xcb_input_change_reason_t;
3603 
3604 /** Opcode for xcb_input_device_changed. */
3605 #define XCB_INPUT_DEVICE_CHANGED 1
3606 
3607 /**
3608  * @brief xcb_input_device_changed_event_t
3609  **/
3610 typedef struct xcb_input_device_changed_event_t {
3611     uint8_t               response_type;
3612     uint8_t               extension;
3613     uint16_t              sequence;
3614     uint32_t              length;
3615     uint16_t              event_type;
3616     xcb_input_device_id_t deviceid;
3617     xcb_timestamp_t       time;
3618     uint16_t              num_classes;
3619     xcb_input_device_id_t sourceid;
3620     uint8_t               reason;
3621     uint8_t               pad0[11];
3622     uint32_t              full_sequence;
3623 } xcb_input_device_changed_event_t;
3624 
3625 typedef enum xcb_input_key_event_flags_t {
3626     XCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT = 65536
3627 } xcb_input_key_event_flags_t;
3628 
3629 /** Opcode for xcb_input_key_press. */
3630 #define XCB_INPUT_KEY_PRESS 2
3631 
3632 /**
3633  * @brief xcb_input_key_press_event_t
3634  **/
3635 typedef struct xcb_input_key_press_event_t {
3636     uint8_t                   response_type;
3637     uint8_t                   extension;
3638     uint16_t                  sequence;
3639     uint32_t                  length;
3640     uint16_t                  event_type;
3641     xcb_input_device_id_t     deviceid;
3642     xcb_timestamp_t           time;
3643     uint32_t                  detail;
3644     xcb_window_t              root;
3645     xcb_window_t              event;
3646     xcb_window_t              child;
3647     uint32_t                  full_sequence;
3648     xcb_input_fp1616_t        root_x;
3649     xcb_input_fp1616_t        root_y;
3650     xcb_input_fp1616_t        event_x;
3651     xcb_input_fp1616_t        event_y;
3652     uint16_t                  buttons_len;
3653     uint16_t                  valuators_len;
3654     xcb_input_device_id_t     sourceid;
3655     uint8_t                   pad0[2];
3656     uint32_t                  flags;
3657     xcb_input_modifier_info_t mods;
3658     xcb_input_group_info_t    group;
3659 } xcb_input_key_press_event_t;
3660 
3661 /** Opcode for xcb_input_key_release. */
3662 #define XCB_INPUT_KEY_RELEASE 3
3663 
3664 typedef xcb_input_key_press_event_t xcb_input_key_release_event_t;
3665 
3666 typedef enum xcb_input_pointer_event_flags_t {
3667     XCB_INPUT_POINTER_EVENT_FLAGS_POINTER_EMULATED = 65536
3668 } xcb_input_pointer_event_flags_t;
3669 
3670 /** Opcode for xcb_input_button_press. */
3671 #define XCB_INPUT_BUTTON_PRESS 4
3672 
3673 /**
3674  * @brief xcb_input_button_press_event_t
3675  **/
3676 typedef struct xcb_input_button_press_event_t {
3677     uint8_t                   response_type;
3678     uint8_t                   extension;
3679     uint16_t                  sequence;
3680     uint32_t                  length;
3681     uint16_t                  event_type;
3682     xcb_input_device_id_t     deviceid;
3683     xcb_timestamp_t           time;
3684     uint32_t                  detail;
3685     xcb_window_t              root;
3686     xcb_window_t              event;
3687     xcb_window_t              child;
3688     uint32_t                  full_sequence;
3689     xcb_input_fp1616_t        root_x;
3690     xcb_input_fp1616_t        root_y;
3691     xcb_input_fp1616_t        event_x;
3692     xcb_input_fp1616_t        event_y;
3693     uint16_t                  buttons_len;
3694     uint16_t                  valuators_len;
3695     xcb_input_device_id_t     sourceid;
3696     uint8_t                   pad0[2];
3697     uint32_t                  flags;
3698     xcb_input_modifier_info_t mods;
3699     xcb_input_group_info_t    group;
3700 } xcb_input_button_press_event_t;
3701 
3702 /** Opcode for xcb_input_button_release. */
3703 #define XCB_INPUT_BUTTON_RELEASE 5
3704 
3705 typedef xcb_input_button_press_event_t xcb_input_button_release_event_t;
3706 
3707 /** Opcode for xcb_input_motion. */
3708 #define XCB_INPUT_MOTION 6
3709 
3710 typedef xcb_input_button_press_event_t xcb_input_motion_event_t;
3711 
3712 typedef enum xcb_input_notify_mode_t {
3713     XCB_INPUT_NOTIFY_MODE_NORMAL = 0,
3714     XCB_INPUT_NOTIFY_MODE_GRAB = 1,
3715     XCB_INPUT_NOTIFY_MODE_UNGRAB = 2,
3716     XCB_INPUT_NOTIFY_MODE_WHILE_GRABBED = 3,
3717     XCB_INPUT_NOTIFY_MODE_PASSIVE_GRAB = 4,
3718     XCB_INPUT_NOTIFY_MODE_PASSIVE_UNGRAB = 5
3719 } xcb_input_notify_mode_t;
3720 
3721 typedef enum xcb_input_notify_detail_t {
3722     XCB_INPUT_NOTIFY_DETAIL_ANCESTOR = 0,
3723     XCB_INPUT_NOTIFY_DETAIL_VIRTUAL = 1,
3724     XCB_INPUT_NOTIFY_DETAIL_INFERIOR = 2,
3725     XCB_INPUT_NOTIFY_DETAIL_NONLINEAR = 3,
3726     XCB_INPUT_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,
3727     XCB_INPUT_NOTIFY_DETAIL_POINTER = 5,
3728     XCB_INPUT_NOTIFY_DETAIL_POINTER_ROOT = 6,
3729     XCB_INPUT_NOTIFY_DETAIL_NONE = 7
3730 } xcb_input_notify_detail_t;
3731 
3732 /** Opcode for xcb_input_enter. */
3733 #define XCB_INPUT_ENTER 7
3734 
3735 /**
3736  * @brief xcb_input_enter_event_t
3737  **/
3738 typedef struct xcb_input_enter_event_t {
3739     uint8_t                   response_type;
3740     uint8_t                   extension;
3741     uint16_t                  sequence;
3742     uint32_t                  length;
3743     uint16_t                  event_type;
3744     xcb_input_device_id_t     deviceid;
3745     xcb_timestamp_t           time;
3746     xcb_input_device_id_t     sourceid;
3747     uint8_t                   mode;
3748     uint8_t                   detail;
3749     xcb_window_t              root;
3750     xcb_window_t              event;
3751     xcb_window_t              child;
3752     uint32_t                  full_sequence;
3753     xcb_input_fp1616_t        root_x;
3754     xcb_input_fp1616_t        root_y;
3755     xcb_input_fp1616_t        event_x;
3756     xcb_input_fp1616_t        event_y;
3757     uint8_t                   same_screen;
3758     uint8_t                   focus;
3759     uint16_t                  buttons_len;
3760     xcb_input_modifier_info_t mods;
3761     xcb_input_group_info_t    group;
3762 } xcb_input_enter_event_t;
3763 
3764 /** Opcode for xcb_input_leave. */
3765 #define XCB_INPUT_LEAVE 8
3766 
3767 typedef xcb_input_enter_event_t xcb_input_leave_event_t;
3768 
3769 /** Opcode for xcb_input_focus_in. */
3770 #define XCB_INPUT_FOCUS_IN 9
3771 
3772 typedef xcb_input_enter_event_t xcb_input_focus_in_event_t;
3773 
3774 /** Opcode for xcb_input_focus_out. */
3775 #define XCB_INPUT_FOCUS_OUT 10
3776 
3777 typedef xcb_input_enter_event_t xcb_input_focus_out_event_t;
3778 
3779 typedef enum xcb_input_hierarchy_mask_t {
3780     XCB_INPUT_HIERARCHY_MASK_MASTER_ADDED = 1,
3781     XCB_INPUT_HIERARCHY_MASK_MASTER_REMOVED = 2,
3782     XCB_INPUT_HIERARCHY_MASK_SLAVE_ADDED = 4,
3783     XCB_INPUT_HIERARCHY_MASK_SLAVE_REMOVED = 8,
3784     XCB_INPUT_HIERARCHY_MASK_SLAVE_ATTACHED = 16,
3785     XCB_INPUT_HIERARCHY_MASK_SLAVE_DETACHED = 32,
3786     XCB_INPUT_HIERARCHY_MASK_DEVICE_ENABLED = 64,
3787     XCB_INPUT_HIERARCHY_MASK_DEVICE_DISABLED = 128
3788 } xcb_input_hierarchy_mask_t;
3789 
3790 /**
3791  * @brief xcb_input_hierarchy_info_t
3792  **/
3793 typedef struct xcb_input_hierarchy_info_t {
3794     xcb_input_device_id_t deviceid;
3795     xcb_input_device_id_t attachment;
3796     uint8_t               type;
3797     uint8_t               enabled;
3798     uint8_t               pad0[2];
3799     uint32_t              flags;
3800 } xcb_input_hierarchy_info_t;
3801 
3802 /**
3803  * @brief xcb_input_hierarchy_info_iterator_t
3804  **/
3805 typedef struct xcb_input_hierarchy_info_iterator_t {
3806     xcb_input_hierarchy_info_t *data;
3807     int                         rem;
3808     int                         index;
3809 } xcb_input_hierarchy_info_iterator_t;
3810 
3811 /** Opcode for xcb_input_hierarchy. */
3812 #define XCB_INPUT_HIERARCHY 11
3813 
3814 /**
3815  * @brief xcb_input_hierarchy_event_t
3816  **/
3817 typedef struct xcb_input_hierarchy_event_t {
3818     uint8_t               response_type;
3819     uint8_t               extension;
3820     uint16_t              sequence;
3821     uint32_t              length;
3822     uint16_t              event_type;
3823     xcb_input_device_id_t deviceid;
3824     xcb_timestamp_t       time;
3825     uint32_t              flags;
3826     uint16_t              num_infos;
3827     uint8_t               pad0[10];
3828     uint32_t              full_sequence;
3829 } xcb_input_hierarchy_event_t;
3830 
3831 typedef enum xcb_input_property_flag_t {
3832     XCB_INPUT_PROPERTY_FLAG_DELETED = 0,
3833     XCB_INPUT_PROPERTY_FLAG_CREATED = 1,
3834     XCB_INPUT_PROPERTY_FLAG_MODIFIED = 2
3835 } xcb_input_property_flag_t;
3836 
3837 /** Opcode for xcb_input_property. */
3838 #define XCB_INPUT_PROPERTY 12
3839 
3840 /**
3841  * @brief xcb_input_property_event_t
3842  **/
3843 typedef struct xcb_input_property_event_t {
3844     uint8_t               response_type;
3845     uint8_t               extension;
3846     uint16_t              sequence;
3847     uint32_t              length;
3848     uint16_t              event_type;
3849     xcb_input_device_id_t deviceid;
3850     xcb_timestamp_t       time;
3851     xcb_atom_t            property;
3852     uint8_t               what;
3853     uint8_t               pad0[11];
3854     uint32_t              full_sequence;
3855 } xcb_input_property_event_t;
3856 
3857 /** Opcode for xcb_input_raw_key_press. */
3858 #define XCB_INPUT_RAW_KEY_PRESS 13
3859 
3860 /**
3861  * @brief xcb_input_raw_key_press_event_t
3862  **/
3863 typedef struct xcb_input_raw_key_press_event_t {
3864     uint8_t               response_type;
3865     uint8_t               extension;
3866     uint16_t              sequence;
3867     uint32_t              length;
3868     uint16_t              event_type;
3869     xcb_input_device_id_t deviceid;
3870     xcb_timestamp_t       time;
3871     uint32_t              detail;
3872     xcb_input_device_id_t sourceid;
3873     uint16_t              valuators_len;
3874     uint32_t              flags;
3875     uint8_t               pad0[4];
3876     uint32_t              full_sequence;
3877 } xcb_input_raw_key_press_event_t;
3878 
3879 /** Opcode for xcb_input_raw_key_release. */
3880 #define XCB_INPUT_RAW_KEY_RELEASE 14
3881 
3882 typedef xcb_input_raw_key_press_event_t xcb_input_raw_key_release_event_t;
3883 
3884 /** Opcode for xcb_input_raw_button_press. */
3885 #define XCB_INPUT_RAW_BUTTON_PRESS 15
3886 
3887 /**
3888  * @brief xcb_input_raw_button_press_event_t
3889  **/
3890 typedef struct xcb_input_raw_button_press_event_t {
3891     uint8_t               response_type;
3892     uint8_t               extension;
3893     uint16_t              sequence;
3894     uint32_t              length;
3895     uint16_t              event_type;
3896     xcb_input_device_id_t deviceid;
3897     xcb_timestamp_t       time;
3898     uint32_t              detail;
3899     xcb_input_device_id_t sourceid;
3900     uint16_t              valuators_len;
3901     uint32_t              flags;
3902     uint8_t               pad0[4];
3903     uint32_t              full_sequence;
3904 } xcb_input_raw_button_press_event_t;
3905 
3906 /** Opcode for xcb_input_raw_button_release. */
3907 #define XCB_INPUT_RAW_BUTTON_RELEASE 16
3908 
3909 typedef xcb_input_raw_button_press_event_t xcb_input_raw_button_release_event_t;
3910 
3911 /** Opcode for xcb_input_raw_motion. */
3912 #define XCB_INPUT_RAW_MOTION 17
3913 
3914 typedef xcb_input_raw_button_press_event_t xcb_input_raw_motion_event_t;
3915 
3916 typedef enum xcb_input_touch_event_flags_t {
3917     XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_PENDING_END = 65536,
3918     XCB_INPUT_TOUCH_EVENT_FLAGS_TOUCH_EMULATING_POINTER = 131072
3919 } xcb_input_touch_event_flags_t;
3920 
3921 /** Opcode for xcb_input_touch_begin. */
3922 #define XCB_INPUT_TOUCH_BEGIN 18
3923 
3924 /**
3925  * @brief xcb_input_touch_begin_event_t
3926  **/
3927 typedef struct xcb_input_touch_begin_event_t {
3928     uint8_t                   response_type;
3929     uint8_t                   extension;
3930     uint16_t                  sequence;
3931     uint32_t                  length;
3932     uint16_t                  event_type;
3933     xcb_input_device_id_t     deviceid;
3934     xcb_timestamp_t           time;
3935     uint32_t                  detail;
3936     xcb_window_t              root;
3937     xcb_window_t              event;
3938     xcb_window_t              child;
3939     uint32_t                  full_sequence;
3940     xcb_input_fp1616_t        root_x;
3941     xcb_input_fp1616_t        root_y;
3942     xcb_input_fp1616_t        event_x;
3943     xcb_input_fp1616_t        event_y;
3944     uint16_t                  buttons_len;
3945     uint16_t                  valuators_len;
3946     xcb_input_device_id_t     sourceid;
3947     uint8_t                   pad0[2];
3948     uint32_t                  flags;
3949     xcb_input_modifier_info_t mods;
3950     xcb_input_group_info_t    group;
3951 } xcb_input_touch_begin_event_t;
3952 
3953 /** Opcode for xcb_input_touch_update. */
3954 #define XCB_INPUT_TOUCH_UPDATE 19
3955 
3956 typedef xcb_input_touch_begin_event_t xcb_input_touch_update_event_t;
3957 
3958 /** Opcode for xcb_input_touch_end. */
3959 #define XCB_INPUT_TOUCH_END 20
3960 
3961 typedef xcb_input_touch_begin_event_t xcb_input_touch_end_event_t;
3962 
3963 typedef enum xcb_input_touch_ownership_flags_t {
3964     XCB_INPUT_TOUCH_OWNERSHIP_FLAGS_NONE = 0
3965 } xcb_input_touch_ownership_flags_t;
3966 
3967 /** Opcode for xcb_input_touch_ownership. */
3968 #define XCB_INPUT_TOUCH_OWNERSHIP 21
3969 
3970 /**
3971  * @brief xcb_input_touch_ownership_event_t
3972  **/
3973 typedef struct xcb_input_touch_ownership_event_t {
3974     uint8_t               response_type;
3975     uint8_t               extension;
3976     uint16_t              sequence;
3977     uint32_t              length;
3978     uint16_t              event_type;
3979     xcb_input_device_id_t deviceid;
3980     xcb_timestamp_t       time;
3981     uint32_t              touchid;
3982     xcb_window_t          root;
3983     xcb_window_t          event;
3984     xcb_window_t          child;
3985     uint32_t              full_sequence;
3986     xcb_input_device_id_t sourceid;
3987     uint8_t               pad0[2];
3988     uint32_t              flags;
3989     uint8_t               pad1[8];
3990 } xcb_input_touch_ownership_event_t;
3991 
3992 /** Opcode for xcb_input_raw_touch_begin. */
3993 #define XCB_INPUT_RAW_TOUCH_BEGIN 22
3994 
3995 /**
3996  * @brief xcb_input_raw_touch_begin_event_t
3997  **/
3998 typedef struct xcb_input_raw_touch_begin_event_t {
3999     uint8_t               response_type;
4000     uint8_t               extension;
4001     uint16_t              sequence;
4002     uint32_t              length;
4003     uint16_t              event_type;
4004     xcb_input_device_id_t deviceid;
4005     xcb_timestamp_t       time;
4006     uint32_t              detail;
4007     xcb_input_device_id_t sourceid;
4008     uint16_t              valuators_len;
4009     uint32_t              flags;
4010     uint8_t               pad0[4];
4011     uint32_t              full_sequence;
4012 } xcb_input_raw_touch_begin_event_t;
4013 
4014 /** Opcode for xcb_input_raw_touch_update. */
4015 #define XCB_INPUT_RAW_TOUCH_UPDATE 23
4016 
4017 typedef xcb_input_raw_touch_begin_event_t xcb_input_raw_touch_update_event_t;
4018 
4019 /** Opcode for xcb_input_raw_touch_end. */
4020 #define XCB_INPUT_RAW_TOUCH_END 24
4021 
4022 typedef xcb_input_raw_touch_begin_event_t xcb_input_raw_touch_end_event_t;
4023 
4024 typedef enum xcb_input_barrier_flags_t {
4025     XCB_INPUT_BARRIER_FLAGS_POINTER_RELEASED = 1,
4026     XCB_INPUT_BARRIER_FLAGS_DEVICE_IS_GRABBED = 2
4027 } xcb_input_barrier_flags_t;
4028 
4029 /** Opcode for xcb_input_barrier_hit. */
4030 #define XCB_INPUT_BARRIER_HIT 25
4031 
4032 /**
4033  * @brief xcb_input_barrier_hit_event_t
4034  **/
4035 typedef struct xcb_input_barrier_hit_event_t {
4036     uint8_t               response_type;
4037     uint8_t               extension;
4038     uint16_t              sequence;
4039     uint32_t              length;
4040     uint16_t              event_type;
4041     xcb_input_device_id_t deviceid;
4042     xcb_timestamp_t       time;
4043     uint32_t              eventid;
4044     xcb_window_t          root;
4045     xcb_window_t          event;
4046     xcb_xfixes_barrier_t  barrier;
4047     uint32_t              full_sequence;
4048     uint32_t              dtime;
4049     uint32_t              flags;
4050     xcb_input_device_id_t sourceid;
4051     uint8_t               pad0[2];
4052     xcb_input_fp1616_t    root_x;
4053     xcb_input_fp1616_t    root_y;
4054     xcb_input_fp3232_t    dx;
4055     xcb_input_fp3232_t    dy;
4056 } xcb_input_barrier_hit_event_t;
4057 
4058 /** Opcode for xcb_input_barrier_leave. */
4059 #define XCB_INPUT_BARRIER_LEAVE 26
4060 
4061 typedef xcb_input_barrier_hit_event_t xcb_input_barrier_leave_event_t;
4062 
4063 typedef enum xcb_input_gesture_pinch_event_flags_t {
4064     XCB_INPUT_GESTURE_PINCH_EVENT_FLAGS_GESTURE_PINCH_CANCELLED = 1
4065 } xcb_input_gesture_pinch_event_flags_t;
4066 
4067 /** Opcode for xcb_input_gesture_pinch_begin. */
4068 #define XCB_INPUT_GESTURE_PINCH_BEGIN 27
4069 
4070 /**
4071  * @brief xcb_input_gesture_pinch_begin_event_t
4072  **/
4073 typedef struct xcb_input_gesture_pinch_begin_event_t {
4074     uint8_t                   response_type;
4075     uint8_t                   extension;
4076     uint16_t                  sequence;
4077     uint32_t                  length;
4078     uint16_t                  event_type;
4079     xcb_input_device_id_t     deviceid;
4080     xcb_timestamp_t           time;
4081     uint32_t                  detail;
4082     xcb_window_t              root;
4083     xcb_window_t              event;
4084     xcb_window_t              child;
4085     uint32_t                  full_sequence;
4086     xcb_input_fp1616_t        root_x;
4087     xcb_input_fp1616_t        root_y;
4088     xcb_input_fp1616_t        event_x;
4089     xcb_input_fp1616_t        event_y;
4090     xcb_input_fp1616_t        delta_x;
4091     xcb_input_fp1616_t        delta_y;
4092     xcb_input_fp1616_t        delta_unaccel_x;
4093     xcb_input_fp1616_t        delta_unaccel_y;
4094     xcb_input_fp1616_t        scale;
4095     xcb_input_fp1616_t        delta_angle;
4096     xcb_input_device_id_t     sourceid;
4097     uint8_t                   pad0[2];
4098     xcb_input_modifier_info_t mods;
4099     xcb_input_group_info_t    group;
4100     uint32_t                  flags;
4101 } xcb_input_gesture_pinch_begin_event_t;
4102 
4103 /** Opcode for xcb_input_gesture_pinch_update. */
4104 #define XCB_INPUT_GESTURE_PINCH_UPDATE 28
4105 
4106 typedef xcb_input_gesture_pinch_begin_event_t xcb_input_gesture_pinch_update_event_t;
4107 
4108 /** Opcode for xcb_input_gesture_pinch_end. */
4109 #define XCB_INPUT_GESTURE_PINCH_END 29
4110 
4111 typedef xcb_input_gesture_pinch_begin_event_t xcb_input_gesture_pinch_end_event_t;
4112 
4113 typedef enum xcb_input_gesture_swipe_event_flags_t {
4114     XCB_INPUT_GESTURE_SWIPE_EVENT_FLAGS_GESTURE_SWIPE_CANCELLED = 1
4115 } xcb_input_gesture_swipe_event_flags_t;
4116 
4117 /** Opcode for xcb_input_gesture_swipe_begin. */
4118 #define XCB_INPUT_GESTURE_SWIPE_BEGIN 30
4119 
4120 /**
4121  * @brief xcb_input_gesture_swipe_begin_event_t
4122  **/
4123 typedef struct xcb_input_gesture_swipe_begin_event_t {
4124     uint8_t                   response_type;
4125     uint8_t                   extension;
4126     uint16_t                  sequence;
4127     uint32_t                  length;
4128     uint16_t                  event_type;
4129     xcb_input_device_id_t     deviceid;
4130     xcb_timestamp_t           time;
4131     uint32_t                  detail;
4132     xcb_window_t              root;
4133     xcb_window_t              event;
4134     xcb_window_t              child;
4135     uint32_t                  full_sequence;
4136     xcb_input_fp1616_t        root_x;
4137     xcb_input_fp1616_t        root_y;
4138     xcb_input_fp1616_t        event_x;
4139     xcb_input_fp1616_t        event_y;
4140     xcb_input_fp1616_t        delta_x;
4141     xcb_input_fp1616_t        delta_y;
4142     xcb_input_fp1616_t        delta_unaccel_x;
4143     xcb_input_fp1616_t        delta_unaccel_y;
4144     xcb_input_device_id_t     sourceid;
4145     uint8_t                   pad0[2];
4146     xcb_input_modifier_info_t mods;
4147     xcb_input_group_info_t    group;
4148     uint32_t                  flags;
4149 } xcb_input_gesture_swipe_begin_event_t;
4150 
4151 /** Opcode for xcb_input_gesture_swipe_update. */
4152 #define XCB_INPUT_GESTURE_SWIPE_UPDATE 31
4153 
4154 typedef xcb_input_gesture_swipe_begin_event_t xcb_input_gesture_swipe_update_event_t;
4155 
4156 /** Opcode for xcb_input_gesture_swipe_end. */
4157 #define XCB_INPUT_GESTURE_SWIPE_END 32
4158 
4159 typedef xcb_input_gesture_swipe_begin_event_t xcb_input_gesture_swipe_end_event_t;
4160 
4161 /**
4162  * @brief xcb_input_event_for_send_t
4163  **/
4164 typedef union xcb_input_event_for_send_t {
4165     xcb_input_device_valuator_event_t            device_valuator;
4166     xcb_input_device_key_press_event_t           device_key_press;
4167     xcb_input_device_key_release_event_t         device_key_release;
4168     xcb_input_device_button_press_event_t        device_button_press;
4169     xcb_input_device_button_release_event_t      device_button_release;
4170     xcb_input_device_motion_notify_event_t       device_motion_notify;
4171     xcb_input_device_focus_in_event_t            device_focus_in;
4172     xcb_input_device_focus_out_event_t           device_focus_out;
4173     xcb_input_proximity_in_event_t               proximity_in;
4174     xcb_input_proximity_out_event_t              proximity_out;
4175     xcb_input_device_state_notify_event_t        device_state_notify;
4176     xcb_input_device_mapping_notify_event_t      device_mapping_notify;
4177     xcb_input_change_device_notify_event_t       change_device_notify;
4178     xcb_input_device_key_state_notify_event_t    device_key_state_notify;
4179     xcb_input_device_button_state_notify_event_t device_button_state_notify;
4180     xcb_input_device_presence_notify_event_t     device_presence_notify;
4181     xcb_raw_generic_event_t                      event_header;
4182 } xcb_input_event_for_send_t;
4183 
4184 /**
4185  * @brief xcb_input_event_for_send_iterator_t
4186  **/
4187 typedef struct xcb_input_event_for_send_iterator_t {
4188     xcb_input_event_for_send_t *data;
4189     int                         rem;
4190     int                         index;
4191 } xcb_input_event_for_send_iterator_t;
4192 
4193 /** Opcode for xcb_input_send_extension_event. */
4194 #define XCB_INPUT_SEND_EXTENSION_EVENT 31
4195 
4196 /**
4197  * @brief xcb_input_send_extension_event_request_t
4198  **/
4199 typedef struct xcb_input_send_extension_event_request_t {
4200     uint8_t      major_opcode;
4201     uint8_t      minor_opcode;
4202     uint16_t     length;
4203     xcb_window_t destination;
4204     uint8_t      device_id;
4205     uint8_t      propagate;
4206     uint16_t     num_classes;
4207     uint8_t      num_events;
4208     uint8_t      pad0[3];
4209 } xcb_input_send_extension_event_request_t;
4210 
4211 /** Opcode for xcb_input_device. */
4212 #define XCB_INPUT_DEVICE 0
4213 
4214 /**
4215  * @brief xcb_input_device_error_t
4216  **/
4217 typedef struct xcb_input_device_error_t {
4218     uint8_t  response_type;
4219     uint8_t  error_code;
4220     uint16_t sequence;
4221     uint32_t bad_value;
4222     uint16_t minor_opcode;
4223     uint8_t  major_opcode;
4224 } xcb_input_device_error_t;
4225 
4226 /** Opcode for xcb_input_event. */
4227 #define XCB_INPUT_EVENT 1
4228 
4229 /**
4230  * @brief xcb_input_event_error_t
4231  **/
4232 typedef struct xcb_input_event_error_t {
4233     uint8_t  response_type;
4234     uint8_t  error_code;
4235     uint16_t sequence;
4236     uint32_t bad_value;
4237     uint16_t minor_opcode;
4238     uint8_t  major_opcode;
4239 } xcb_input_event_error_t;
4240 
4241 /** Opcode for xcb_input_mode. */
4242 #define XCB_INPUT_MODE 2
4243 
4244 /**
4245  * @brief xcb_input_mode_error_t
4246  **/
4247 typedef struct xcb_input_mode_error_t {
4248     uint8_t  response_type;
4249     uint8_t  error_code;
4250     uint16_t sequence;
4251     uint32_t bad_value;
4252     uint16_t minor_opcode;
4253     uint8_t  major_opcode;
4254 } xcb_input_mode_error_t;
4255 
4256 /** Opcode for xcb_input_device_busy. */
4257 #define XCB_INPUT_DEVICE_BUSY 3
4258 
4259 /**
4260  * @brief xcb_input_device_busy_error_t
4261  **/
4262 typedef struct xcb_input_device_busy_error_t {
4263     uint8_t  response_type;
4264     uint8_t  error_code;
4265     uint16_t sequence;
4266     uint32_t bad_value;
4267     uint16_t minor_opcode;
4268     uint8_t  major_opcode;
4269 } xcb_input_device_busy_error_t;
4270 
4271 /** Opcode for xcb_input_class. */
4272 #define XCB_INPUT_CLASS 4
4273 
4274 /**
4275  * @brief xcb_input_class_error_t
4276  **/
4277 typedef struct xcb_input_class_error_t {
4278     uint8_t  response_type;
4279     uint8_t  error_code;
4280     uint16_t sequence;
4281     uint32_t bad_value;
4282     uint16_t minor_opcode;
4283     uint8_t  major_opcode;
4284 } xcb_input_class_error_t;
4285 
4286 /**
4287  * Get the next element of the iterator
4288  * @param i Pointer to a xcb_input_event_class_iterator_t
4289  *
4290  * Get the next element in the iterator. The member rem is
4291  * decreased by one. The member data points to the next
4292  * element. The member index is increased by sizeof(xcb_input_event_class_t)
4293  */
4294 void
4295 xcb_input_event_class_next (xcb_input_event_class_iterator_t *i);
4296 
4297 /**
4298  * Return the iterator pointing to the last element
4299  * @param i An xcb_input_event_class_iterator_t
4300  * @return  The iterator pointing to the last element
4301  *
4302  * Set the current element in the iterator to the last element.
4303  * The member rem is set to 0. The member data points to the
4304  * last element.
4305  */
4306 xcb_generic_iterator_t
4307 xcb_input_event_class_end (xcb_input_event_class_iterator_t i);
4308 
4309 /**
4310  * Get the next element of the iterator
4311  * @param i Pointer to a xcb_input_key_code_iterator_t
4312  *
4313  * Get the next element in the iterator. The member rem is
4314  * decreased by one. The member data points to the next
4315  * element. The member index is increased by sizeof(xcb_input_key_code_t)
4316  */
4317 void
4318 xcb_input_key_code_next (xcb_input_key_code_iterator_t *i);
4319 
4320 /**
4321  * Return the iterator pointing to the last element
4322  * @param i An xcb_input_key_code_iterator_t
4323  * @return  The iterator pointing to the last element
4324  *
4325  * Set the current element in the iterator to the last element.
4326  * The member rem is set to 0. The member data points to the
4327  * last element.
4328  */
4329 xcb_generic_iterator_t
4330 xcb_input_key_code_end (xcb_input_key_code_iterator_t i);
4331 
4332 /**
4333  * Get the next element of the iterator
4334  * @param i Pointer to a xcb_input_device_id_iterator_t
4335  *
4336  * Get the next element in the iterator. The member rem is
4337  * decreased by one. The member data points to the next
4338  * element. The member index is increased by sizeof(xcb_input_device_id_t)
4339  */
4340 void
4341 xcb_input_device_id_next (xcb_input_device_id_iterator_t *i);
4342 
4343 /**
4344  * Return the iterator pointing to the last element
4345  * @param i An xcb_input_device_id_iterator_t
4346  * @return  The iterator pointing to the last element
4347  *
4348  * Set the current element in the iterator to the last element.
4349  * The member rem is set to 0. The member data points to the
4350  * last element.
4351  */
4352 xcb_generic_iterator_t
4353 xcb_input_device_id_end (xcb_input_device_id_iterator_t i);
4354 
4355 /**
4356  * Get the next element of the iterator
4357  * @param i Pointer to a xcb_input_fp1616_iterator_t
4358  *
4359  * Get the next element in the iterator. The member rem is
4360  * decreased by one. The member data points to the next
4361  * element. The member index is increased by sizeof(xcb_input_fp1616_t)
4362  */
4363 void
4364 xcb_input_fp1616_next (xcb_input_fp1616_iterator_t *i);
4365 
4366 /**
4367  * Return the iterator pointing to the last element
4368  * @param i An xcb_input_fp1616_iterator_t
4369  * @return  The iterator pointing to the last element
4370  *
4371  * Set the current element in the iterator to the last element.
4372  * The member rem is set to 0. The member data points to the
4373  * last element.
4374  */
4375 xcb_generic_iterator_t
4376 xcb_input_fp1616_end (xcb_input_fp1616_iterator_t i);
4377 
4378 /**
4379  * Get the next element of the iterator
4380  * @param i Pointer to a xcb_input_fp3232_iterator_t
4381  *
4382  * Get the next element in the iterator. The member rem is
4383  * decreased by one. The member data points to the next
4384  * element. The member index is increased by sizeof(xcb_input_fp3232_t)
4385  */
4386 void
4387 xcb_input_fp3232_next (xcb_input_fp3232_iterator_t *i);
4388 
4389 /**
4390  * Return the iterator pointing to the last element
4391  * @param i An xcb_input_fp3232_iterator_t
4392  * @return  The iterator pointing to the last element
4393  *
4394  * Set the current element in the iterator to the last element.
4395  * The member rem is set to 0. The member data points to the
4396  * last element.
4397  */
4398 xcb_generic_iterator_t
4399 xcb_input_fp3232_end (xcb_input_fp3232_iterator_t i);
4400 
4401 int
4402 xcb_input_get_extension_version_sizeof (const void  *_buffer);
4403 
4404 /**
4405  *
4406  * @param c The connection
4407  * @return A cookie
4408  *
4409  * Delivers a request to the X server.
4410  *
4411  */
4412 xcb_input_get_extension_version_cookie_t
4413 xcb_input_get_extension_version (xcb_connection_t *c,
4414                                  uint16_t          name_len,
4415                                  const char       *name);
4416 
4417 /**
4418  *
4419  * @param c The connection
4420  * @return A cookie
4421  *
4422  * Delivers a request to the X server.
4423  *
4424  * This form can be used only if the request will cause
4425  * a reply to be generated. Any returned error will be
4426  * placed in the event queue.
4427  */
4428 xcb_input_get_extension_version_cookie_t
4429 xcb_input_get_extension_version_unchecked (xcb_connection_t *c,
4430                                            uint16_t          name_len,
4431                                            const char       *name);
4432 
4433 /**
4434  * Return the reply
4435  * @param c      The connection
4436  * @param cookie The cookie
4437  * @param e      The xcb_generic_error_t supplied
4438  *
4439  * Returns the reply of the request asked by
4440  *
4441  * The parameter @p e supplied to this function must be NULL if
4442  * xcb_input_get_extension_version_unchecked(). is used.
4443  * Otherwise, it stores the error if any.
4444  *
4445  * The returned value must be freed by the caller using free().
4446  */
4447 xcb_input_get_extension_version_reply_t *
4448 xcb_input_get_extension_version_reply (xcb_connection_t                          *c,
4449                                        xcb_input_get_extension_version_cookie_t   cookie  /**< */,
4450                                        xcb_generic_error_t                      **e);
4451 
4452 /**
4453  * Get the next element of the iterator
4454  * @param i Pointer to a xcb_input_device_info_iterator_t
4455  *
4456  * Get the next element in the iterator. The member rem is
4457  * decreased by one. The member data points to the next
4458  * element. The member index is increased by sizeof(xcb_input_device_info_t)
4459  */
4460 void
4461 xcb_input_device_info_next (xcb_input_device_info_iterator_t *i);
4462 
4463 /**
4464  * Return the iterator pointing to the last element
4465  * @param i An xcb_input_device_info_iterator_t
4466  * @return  The iterator pointing to the last element
4467  *
4468  * Set the current element in the iterator to the last element.
4469  * The member rem is set to 0. The member data points to the
4470  * last element.
4471  */
4472 xcb_generic_iterator_t
4473 xcb_input_device_info_end (xcb_input_device_info_iterator_t i);
4474 
4475 /**
4476  * Get the next element of the iterator
4477  * @param i Pointer to a xcb_input_key_info_iterator_t
4478  *
4479  * Get the next element in the iterator. The member rem is
4480  * decreased by one. The member data points to the next
4481  * element. The member index is increased by sizeof(xcb_input_key_info_t)
4482  */
4483 void
4484 xcb_input_key_info_next (xcb_input_key_info_iterator_t *i);
4485 
4486 /**
4487  * Return the iterator pointing to the last element
4488  * @param i An xcb_input_key_info_iterator_t
4489  * @return  The iterator pointing to the last element
4490  *
4491  * Set the current element in the iterator to the last element.
4492  * The member rem is set to 0. The member data points to the
4493  * last element.
4494  */
4495 xcb_generic_iterator_t
4496 xcb_input_key_info_end (xcb_input_key_info_iterator_t i);
4497 
4498 /**
4499  * Get the next element of the iterator
4500  * @param i Pointer to a xcb_input_button_info_iterator_t
4501  *
4502  * Get the next element in the iterator. The member rem is
4503  * decreased by one. The member data points to the next
4504  * element. The member index is increased by sizeof(xcb_input_button_info_t)
4505  */
4506 void
4507 xcb_input_button_info_next (xcb_input_button_info_iterator_t *i);
4508 
4509 /**
4510  * Return the iterator pointing to the last element
4511  * @param i An xcb_input_button_info_iterator_t
4512  * @return  The iterator pointing to the last element
4513  *
4514  * Set the current element in the iterator to the last element.
4515  * The member rem is set to 0. The member data points to the
4516  * last element.
4517  */
4518 xcb_generic_iterator_t
4519 xcb_input_button_info_end (xcb_input_button_info_iterator_t i);
4520 
4521 /**
4522  * Get the next element of the iterator
4523  * @param i Pointer to a xcb_input_axis_info_iterator_t
4524  *
4525  * Get the next element in the iterator. The member rem is
4526  * decreased by one. The member data points to the next
4527  * element. The member index is increased by sizeof(xcb_input_axis_info_t)
4528  */
4529 void
4530 xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i);
4531 
4532 /**
4533  * Return the iterator pointing to the last element
4534  * @param i An xcb_input_axis_info_iterator_t
4535  * @return  The iterator pointing to the last element
4536  *
4537  * Set the current element in the iterator to the last element.
4538  * The member rem is set to 0. The member data points to the
4539  * last element.
4540  */
4541 xcb_generic_iterator_t
4542 xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i);
4543 
4544 int
4545 xcb_input_valuator_info_sizeof (const void  *_buffer);
4546 
4547 xcb_input_axis_info_t *
4548 xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R);
4549 
4550 int
4551 xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R);
4552 
4553 xcb_input_axis_info_iterator_t
4554 xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R);
4555 
4556 /**
4557  * Get the next element of the iterator
4558  * @param i Pointer to a xcb_input_valuator_info_iterator_t
4559  *
4560  * Get the next element in the iterator. The member rem is
4561  * decreased by one. The member data points to the next
4562  * element. The member index is increased by sizeof(xcb_input_valuator_info_t)
4563  */
4564 void
4565 xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i);
4566 
4567 /**
4568  * Return the iterator pointing to the last element
4569  * @param i An xcb_input_valuator_info_iterator_t
4570  * @return  The iterator pointing to the last element
4571  *
4572  * Set the current element in the iterator to the last element.
4573  * The member rem is set to 0. The member data points to the
4574  * last element.
4575  */
4576 xcb_generic_iterator_t
4577 xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i);
4578 
4579 xcb_input_axis_info_t *
4580 xcb_input_input_info_info_valuator_axes (const xcb_input_input_info_info_t *S);
4581 
4582 int
4583 xcb_input_input_info_info_valuator_axes_length (const xcb_input_input_info_t *R,
4584                                                 const xcb_input_input_info_info_t *S);
4585 
4586 xcb_input_axis_info_iterator_t
4587 xcb_input_input_info_info_valuator_axes_iterator (const xcb_input_input_info_t *R,
4588                                                   const xcb_input_input_info_info_t *S);
4589 
4590 int
4591 xcb_input_input_info_info_serialize (void                              **_buffer,
4592                                      uint8_t                             class_id,
4593                                      const xcb_input_input_info_info_t  *_aux);
4594 
4595 int
4596 xcb_input_input_info_info_unpack (const void                   *_buffer,
4597                                   uint8_t                       class_id,
4598                                   xcb_input_input_info_info_t  *_aux);
4599 
4600 int
4601 xcb_input_input_info_info_sizeof (const void  *_buffer,
4602                                   uint8_t      class_id);
4603 
4604 int
4605 xcb_input_input_info_sizeof (const void  *_buffer);
4606 
4607 /**
4608  * Get the next element of the iterator
4609  * @param i Pointer to a xcb_input_input_info_iterator_t
4610  *
4611  * Get the next element in the iterator. The member rem is
4612  * decreased by one. The member data points to the next
4613  * element. The member index is increased by sizeof(xcb_input_input_info_t)
4614  */
4615 void
4616 xcb_input_input_info_next (xcb_input_input_info_iterator_t *i);
4617 
4618 /**
4619  * Return the iterator pointing to the last element
4620  * @param i An xcb_input_input_info_iterator_t
4621  * @return  The iterator pointing to the last element
4622  *
4623  * Set the current element in the iterator to the last element.
4624  * The member rem is set to 0. The member data points to the
4625  * last element.
4626  */
4627 xcb_generic_iterator_t
4628 xcb_input_input_info_end (xcb_input_input_info_iterator_t i);
4629 
4630 int
4631 xcb_input_device_name_sizeof (const void  *_buffer);
4632 
4633 char *
4634 xcb_input_device_name_string (const xcb_input_device_name_t *R);
4635 
4636 int
4637 xcb_input_device_name_string_length (const xcb_input_device_name_t *R);
4638 
4639 xcb_generic_iterator_t
4640 xcb_input_device_name_string_end (const xcb_input_device_name_t *R);
4641 
4642 /**
4643  * Get the next element of the iterator
4644  * @param i Pointer to a xcb_input_device_name_iterator_t
4645  *
4646  * Get the next element in the iterator. The member rem is
4647  * decreased by one. The member data points to the next
4648  * element. The member index is increased by sizeof(xcb_input_device_name_t)
4649  */
4650 void
4651 xcb_input_device_name_next (xcb_input_device_name_iterator_t *i);
4652 
4653 /**
4654  * Return the iterator pointing to the last element
4655  * @param i An xcb_input_device_name_iterator_t
4656  * @return  The iterator pointing to the last element
4657  *
4658  * Set the current element in the iterator to the last element.
4659  * The member rem is set to 0. The member data points to the
4660  * last element.
4661  */
4662 xcb_generic_iterator_t
4663 xcb_input_device_name_end (xcb_input_device_name_iterator_t i);
4664 
4665 int
4666 xcb_input_list_input_devices_sizeof (const void  *_buffer);
4667 
4668 /**
4669  *
4670  * @param c The connection
4671  * @return A cookie
4672  *
4673  * Delivers a request to the X server.
4674  *
4675  */
4676 xcb_input_list_input_devices_cookie_t
4677 xcb_input_list_input_devices (xcb_connection_t *c);
4678 
4679 /**
4680  *
4681  * @param c The connection
4682  * @return A cookie
4683  *
4684  * Delivers a request to the X server.
4685  *
4686  * This form can be used only if the request will cause
4687  * a reply to be generated. Any returned error will be
4688  * placed in the event queue.
4689  */
4690 xcb_input_list_input_devices_cookie_t
4691 xcb_input_list_input_devices_unchecked (xcb_connection_t *c);
4692 
4693 xcb_input_device_info_t *
4694 xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R);
4695 
4696 int
4697 xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R);
4698 
4699 xcb_input_device_info_iterator_t
4700 xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R);
4701 
4702 int
4703 xcb_input_list_input_devices_infos_length (const xcb_input_list_input_devices_reply_t *R);
4704 
4705 xcb_input_input_info_iterator_t
4706 xcb_input_list_input_devices_infos_iterator (const xcb_input_list_input_devices_reply_t *R);
4707 
4708 int
4709 xcb_input_list_input_devices_names_length (const xcb_input_list_input_devices_reply_t *R);
4710 
4711 xcb_str_iterator_t
4712 xcb_input_list_input_devices_names_iterator (const xcb_input_list_input_devices_reply_t *R);
4713 
4714 /**
4715  * Return the reply
4716  * @param c      The connection
4717  * @param cookie The cookie
4718  * @param e      The xcb_generic_error_t supplied
4719  *
4720  * Returns the reply of the request asked by
4721  *
4722  * The parameter @p e supplied to this function must be NULL if
4723  * xcb_input_list_input_devices_unchecked(). is used.
4724  * Otherwise, it stores the error if any.
4725  *
4726  * The returned value must be freed by the caller using free().
4727  */
4728 xcb_input_list_input_devices_reply_t *
4729 xcb_input_list_input_devices_reply (xcb_connection_t                       *c,
4730                                     xcb_input_list_input_devices_cookie_t   cookie  /**< */,
4731                                     xcb_generic_error_t                   **e);
4732 
4733 /**
4734  * Get the next element of the iterator
4735  * @param i Pointer to a xcb_input_event_type_base_iterator_t
4736  *
4737  * Get the next element in the iterator. The member rem is
4738  * decreased by one. The member data points to the next
4739  * element. The member index is increased by sizeof(xcb_input_event_type_base_t)
4740  */
4741 void
4742 xcb_input_event_type_base_next (xcb_input_event_type_base_iterator_t *i);
4743 
4744 /**
4745  * Return the iterator pointing to the last element
4746  * @param i An xcb_input_event_type_base_iterator_t
4747  * @return  The iterator pointing to the last element
4748  *
4749  * Set the current element in the iterator to the last element.
4750  * The member rem is set to 0. The member data points to the
4751  * last element.
4752  */
4753 xcb_generic_iterator_t
4754 xcb_input_event_type_base_end (xcb_input_event_type_base_iterator_t i);
4755 
4756 /**
4757  * Get the next element of the iterator
4758  * @param i Pointer to a xcb_input_input_class_info_iterator_t
4759  *
4760  * Get the next element in the iterator. The member rem is
4761  * decreased by one. The member data points to the next
4762  * element. The member index is increased by sizeof(xcb_input_input_class_info_t)
4763  */
4764 void
4765 xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i);
4766 
4767 /**
4768  * Return the iterator pointing to the last element
4769  * @param i An xcb_input_input_class_info_iterator_t
4770  * @return  The iterator pointing to the last element
4771  *
4772  * Set the current element in the iterator to the last element.
4773  * The member rem is set to 0. The member data points to the
4774  * last element.
4775  */
4776 xcb_generic_iterator_t
4777 xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i);
4778 
4779 int
4780 xcb_input_open_device_sizeof (const void  *_buffer);
4781 
4782 /**
4783  *
4784  * @param c The connection
4785  * @return A cookie
4786  *
4787  * Delivers a request to the X server.
4788  *
4789  */
4790 xcb_input_open_device_cookie_t
4791 xcb_input_open_device (xcb_connection_t *c,
4792                        uint8_t           device_id);
4793 
4794 /**
4795  *
4796  * @param c The connection
4797  * @return A cookie
4798  *
4799  * Delivers a request to the X server.
4800  *
4801  * This form can be used only if the request will cause
4802  * a reply to be generated. Any returned error will be
4803  * placed in the event queue.
4804  */
4805 xcb_input_open_device_cookie_t
4806 xcb_input_open_device_unchecked (xcb_connection_t *c,
4807                                  uint8_t           device_id);
4808 
4809 xcb_input_input_class_info_t *
4810 xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R);
4811 
4812 int
4813 xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R);
4814 
4815 xcb_input_input_class_info_iterator_t
4816 xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R);
4817 
4818 /**
4819  * Return the reply
4820  * @param c      The connection
4821  * @param cookie The cookie
4822  * @param e      The xcb_generic_error_t supplied
4823  *
4824  * Returns the reply of the request asked by
4825  *
4826  * The parameter @p e supplied to this function must be NULL if
4827  * xcb_input_open_device_unchecked(). is used.
4828  * Otherwise, it stores the error if any.
4829  *
4830  * The returned value must be freed by the caller using free().
4831  */
4832 xcb_input_open_device_reply_t *
4833 xcb_input_open_device_reply (xcb_connection_t                *c,
4834                              xcb_input_open_device_cookie_t   cookie  /**< */,
4835                              xcb_generic_error_t            **e);
4836 
4837 /**
4838  *
4839  * @param c The connection
4840  * @return A cookie
4841  *
4842  * Delivers a request to the X server.
4843  *
4844  * This form can be used only if the request will not cause
4845  * a reply to be generated. Any returned error will be
4846  * saved for handling by xcb_request_check().
4847  */
4848 xcb_void_cookie_t
4849 xcb_input_close_device_checked (xcb_connection_t *c,
4850                                 uint8_t           device_id);
4851 
4852 /**
4853  *
4854  * @param c The connection
4855  * @return A cookie
4856  *
4857  * Delivers a request to the X server.
4858  *
4859  */
4860 xcb_void_cookie_t
4861 xcb_input_close_device (xcb_connection_t *c,
4862                         uint8_t           device_id);
4863 
4864 /**
4865  *
4866  * @param c The connection
4867  * @return A cookie
4868  *
4869  * Delivers a request to the X server.
4870  *
4871  */
4872 xcb_input_set_device_mode_cookie_t
4873 xcb_input_set_device_mode (xcb_connection_t *c,
4874                            uint8_t           device_id,
4875                            uint8_t           mode);
4876 
4877 /**
4878  *
4879  * @param c The connection
4880  * @return A cookie
4881  *
4882  * Delivers a request to the X server.
4883  *
4884  * This form can be used only if the request will cause
4885  * a reply to be generated. Any returned error will be
4886  * placed in the event queue.
4887  */
4888 xcb_input_set_device_mode_cookie_t
4889 xcb_input_set_device_mode_unchecked (xcb_connection_t *c,
4890                                      uint8_t           device_id,
4891                                      uint8_t           mode);
4892 
4893 /**
4894  * Return the reply
4895  * @param c      The connection
4896  * @param cookie The cookie
4897  * @param e      The xcb_generic_error_t supplied
4898  *
4899  * Returns the reply of the request asked by
4900  *
4901  * The parameter @p e supplied to this function must be NULL if
4902  * xcb_input_set_device_mode_unchecked(). is used.
4903  * Otherwise, it stores the error if any.
4904  *
4905  * The returned value must be freed by the caller using free().
4906  */
4907 xcb_input_set_device_mode_reply_t *
4908 xcb_input_set_device_mode_reply (xcb_connection_t                    *c,
4909                                  xcb_input_set_device_mode_cookie_t   cookie  /**< */,
4910                                  xcb_generic_error_t                **e);
4911 
4912 int
4913 xcb_input_select_extension_event_sizeof (const void  *_buffer);
4914 
4915 /**
4916  *
4917  * @param c The connection
4918  * @return A cookie
4919  *
4920  * Delivers a request to the X server.
4921  *
4922  * This form can be used only if the request will not cause
4923  * a reply to be generated. Any returned error will be
4924  * saved for handling by xcb_request_check().
4925  */
4926 xcb_void_cookie_t
4927 xcb_input_select_extension_event_checked (xcb_connection_t              *c,
4928                                           xcb_window_t                   window,
4929                                           uint16_t                       num_classes,
4930                                           const xcb_input_event_class_t *classes);
4931 
4932 /**
4933  *
4934  * @param c The connection
4935  * @return A cookie
4936  *
4937  * Delivers a request to the X server.
4938  *
4939  */
4940 xcb_void_cookie_t
4941 xcb_input_select_extension_event (xcb_connection_t              *c,
4942                                   xcb_window_t                   window,
4943                                   uint16_t                       num_classes,
4944                                   const xcb_input_event_class_t *classes);
4945 
4946 xcb_input_event_class_t *
4947 xcb_input_select_extension_event_classes (const xcb_input_select_extension_event_request_t *R);
4948 
4949 int
4950 xcb_input_select_extension_event_classes_length (const xcb_input_select_extension_event_request_t *R);
4951 
4952 xcb_generic_iterator_t
4953 xcb_input_select_extension_event_classes_end (const xcb_input_select_extension_event_request_t *R);
4954 
4955 int
4956 xcb_input_get_selected_extension_events_sizeof (const void  *_buffer);
4957 
4958 /**
4959  *
4960  * @param c The connection
4961  * @return A cookie
4962  *
4963  * Delivers a request to the X server.
4964  *
4965  */
4966 xcb_input_get_selected_extension_events_cookie_t
4967 xcb_input_get_selected_extension_events (xcb_connection_t *c,
4968                                          xcb_window_t      window);
4969 
4970 /**
4971  *
4972  * @param c The connection
4973  * @return A cookie
4974  *
4975  * Delivers a request to the X server.
4976  *
4977  * This form can be used only if the request will cause
4978  * a reply to be generated. Any returned error will be
4979  * placed in the event queue.
4980  */
4981 xcb_input_get_selected_extension_events_cookie_t
4982 xcb_input_get_selected_extension_events_unchecked (xcb_connection_t *c,
4983                                                    xcb_window_t      window);
4984 
4985 xcb_input_event_class_t *
4986 xcb_input_get_selected_extension_events_this_classes (const xcb_input_get_selected_extension_events_reply_t *R);
4987 
4988 int
4989 xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R);
4990 
4991 xcb_generic_iterator_t
4992 xcb_input_get_selected_extension_events_this_classes_end (const xcb_input_get_selected_extension_events_reply_t *R);
4993 
4994 xcb_input_event_class_t *
4995 xcb_input_get_selected_extension_events_all_classes (const xcb_input_get_selected_extension_events_reply_t *R);
4996 
4997 int
4998 xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R);
4999 
5000 xcb_generic_iterator_t
5001 xcb_input_get_selected_extension_events_all_classes_end (const xcb_input_get_selected_extension_events_reply_t *R);
5002 
5003 /**
5004  * Return the reply
5005  * @param c      The connection
5006  * @param cookie The cookie
5007  * @param e      The xcb_generic_error_t supplied
5008  *
5009  * Returns the reply of the request asked by
5010  *
5011  * The parameter @p e supplied to this function must be NULL if
5012  * xcb_input_get_selected_extension_events_unchecked(). is used.
5013  * Otherwise, it stores the error if any.
5014  *
5015  * The returned value must be freed by the caller using free().
5016  */
5017 xcb_input_get_selected_extension_events_reply_t *
5018 xcb_input_get_selected_extension_events_reply (xcb_connection_t                                  *c,
5019                                                xcb_input_get_selected_extension_events_cookie_t   cookie  /**< */,
5020                                                xcb_generic_error_t                              **e);
5021 
5022 int
5023 xcb_input_change_device_dont_propagate_list_sizeof (const void  *_buffer);
5024 
5025 /**
5026  *
5027  * @param c The connection
5028  * @return A cookie
5029  *
5030  * Delivers a request to the X server.
5031  *
5032  * This form can be used only if the request will not cause
5033  * a reply to be generated. Any returned error will be
5034  * saved for handling by xcb_request_check().
5035  */
5036 xcb_void_cookie_t
5037 xcb_input_change_device_dont_propagate_list_checked (xcb_connection_t              *c,
5038                                                      xcb_window_t                   window,
5039                                                      uint16_t                       num_classes,
5040                                                      uint8_t                        mode,
5041                                                      const xcb_input_event_class_t *classes);
5042 
5043 /**
5044  *
5045  * @param c The connection
5046  * @return A cookie
5047  *
5048  * Delivers a request to the X server.
5049  *
5050  */
5051 xcb_void_cookie_t
5052 xcb_input_change_device_dont_propagate_list (xcb_connection_t              *c,
5053                                              xcb_window_t                   window,
5054                                              uint16_t                       num_classes,
5055                                              uint8_t                        mode,
5056                                              const xcb_input_event_class_t *classes);
5057 
5058 xcb_input_event_class_t *
5059 xcb_input_change_device_dont_propagate_list_classes (const xcb_input_change_device_dont_propagate_list_request_t *R);
5060 
5061 int
5062 xcb_input_change_device_dont_propagate_list_classes_length (const xcb_input_change_device_dont_propagate_list_request_t *R);
5063 
5064 xcb_generic_iterator_t
5065 xcb_input_change_device_dont_propagate_list_classes_end (const xcb_input_change_device_dont_propagate_list_request_t *R);
5066 
5067 int
5068 xcb_input_get_device_dont_propagate_list_sizeof (const void  *_buffer);
5069 
5070 /**
5071  *
5072  * @param c The connection
5073  * @return A cookie
5074  *
5075  * Delivers a request to the X server.
5076  *
5077  */
5078 xcb_input_get_device_dont_propagate_list_cookie_t
5079 xcb_input_get_device_dont_propagate_list (xcb_connection_t *c,
5080                                           xcb_window_t      window);
5081 
5082 /**
5083  *
5084  * @param c The connection
5085  * @return A cookie
5086  *
5087  * Delivers a request to the X server.
5088  *
5089  * This form can be used only if the request will cause
5090  * a reply to be generated. Any returned error will be
5091  * placed in the event queue.
5092  */
5093 xcb_input_get_device_dont_propagate_list_cookie_t
5094 xcb_input_get_device_dont_propagate_list_unchecked (xcb_connection_t *c,
5095                                                     xcb_window_t      window);
5096 
5097 xcb_input_event_class_t *
5098 xcb_input_get_device_dont_propagate_list_classes (const xcb_input_get_device_dont_propagate_list_reply_t *R);
5099 
5100 int
5101 xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R);
5102 
5103 xcb_generic_iterator_t
5104 xcb_input_get_device_dont_propagate_list_classes_end (const xcb_input_get_device_dont_propagate_list_reply_t *R);
5105 
5106 /**
5107  * Return the reply
5108  * @param c      The connection
5109  * @param cookie The cookie
5110  * @param e      The xcb_generic_error_t supplied
5111  *
5112  * Returns the reply of the request asked by
5113  *
5114  * The parameter @p e supplied to this function must be NULL if
5115  * xcb_input_get_device_dont_propagate_list_unchecked(). is used.
5116  * Otherwise, it stores the error if any.
5117  *
5118  * The returned value must be freed by the caller using free().
5119  */
5120 xcb_input_get_device_dont_propagate_list_reply_t *
5121 xcb_input_get_device_dont_propagate_list_reply (xcb_connection_t                                   *c,
5122                                                 xcb_input_get_device_dont_propagate_list_cookie_t   cookie  /**< */,
5123                                                 xcb_generic_error_t                               **e);
5124 
5125 int
5126 xcb_input_device_time_coord_sizeof (const void  *_buffer,
5127                                     uint8_t      num_axes);
5128 
5129 int32_t *
5130 xcb_input_device_time_coord_axisvalues (const xcb_input_device_time_coord_t *R);
5131 
5132 int
5133 xcb_input_device_time_coord_axisvalues_length (const xcb_input_device_time_coord_t *R,
5134                                                uint8_t num_axes);
5135 
5136 xcb_generic_iterator_t
5137 xcb_input_device_time_coord_axisvalues_end (const xcb_input_device_time_coord_t *R,
5138                                             uint8_t num_axes);
5139 
5140 /**
5141  * Get the next element of the iterator
5142  * @param i Pointer to a xcb_input_device_time_coord_iterator_t
5143  *
5144  * Get the next element in the iterator. The member rem is
5145  * decreased by one. The member data points to the next
5146  * element. The member index is increased by sizeof(xcb_input_device_time_coord_t)
5147  */
5148 void
5149 xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i);
5150 
5151 /**
5152  * Return the iterator pointing to the last element
5153  * @param i An xcb_input_device_time_coord_iterator_t
5154  * @return  The iterator pointing to the last element
5155  *
5156  * Set the current element in the iterator to the last element.
5157  * The member rem is set to 0. The member data points to the
5158  * last element.
5159  */
5160 xcb_generic_iterator_t
5161 xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i);
5162 
5163 int
5164 xcb_input_get_device_motion_events_sizeof (const void  *_buffer);
5165 
5166 /**
5167  *
5168  * @param c The connection
5169  * @return A cookie
5170  *
5171  * Delivers a request to the X server.
5172  *
5173  */
5174 xcb_input_get_device_motion_events_cookie_t
5175 xcb_input_get_device_motion_events (xcb_connection_t *c,
5176                                     xcb_timestamp_t   start,
5177                                     xcb_timestamp_t   stop,
5178                                     uint8_t           device_id);
5179 
5180 /**
5181  *
5182  * @param c The connection
5183  * @return A cookie
5184  *
5185  * Delivers a request to the X server.
5186  *
5187  * This form can be used only if the request will cause
5188  * a reply to be generated. Any returned error will be
5189  * placed in the event queue.
5190  */
5191 xcb_input_get_device_motion_events_cookie_t
5192 xcb_input_get_device_motion_events_unchecked (xcb_connection_t *c,
5193                                               xcb_timestamp_t   start,
5194                                               xcb_timestamp_t   stop,
5195                                               uint8_t           device_id);
5196 
5197 int
5198 xcb_input_get_device_motion_events_events_length (const xcb_input_get_device_motion_events_reply_t *R);
5199 
5200 xcb_input_device_time_coord_iterator_t
5201 xcb_input_get_device_motion_events_events_iterator (const xcb_input_get_device_motion_events_reply_t *R);
5202 
5203 /**
5204  * Return the reply
5205  * @param c      The connection
5206  * @param cookie The cookie
5207  * @param e      The xcb_generic_error_t supplied
5208  *
5209  * Returns the reply of the request asked by
5210  *
5211  * The parameter @p e supplied to this function must be NULL if
5212  * xcb_input_get_device_motion_events_unchecked(). is used.
5213  * Otherwise, it stores the error if any.
5214  *
5215  * The returned value must be freed by the caller using free().
5216  */
5217 xcb_input_get_device_motion_events_reply_t *
5218 xcb_input_get_device_motion_events_reply (xcb_connection_t                             *c,
5219                                           xcb_input_get_device_motion_events_cookie_t   cookie  /**< */,
5220                                           xcb_generic_error_t                         **e);
5221 
5222 /**
5223  *
5224  * @param c The connection
5225  * @return A cookie
5226  *
5227  * Delivers a request to the X server.
5228  *
5229  */
5230 xcb_input_change_keyboard_device_cookie_t
5231 xcb_input_change_keyboard_device (xcb_connection_t *c,
5232                                   uint8_t           device_id);
5233 
5234 /**
5235  *
5236  * @param c The connection
5237  * @return A cookie
5238  *
5239  * Delivers a request to the X server.
5240  *
5241  * This form can be used only if the request will cause
5242  * a reply to be generated. Any returned error will be
5243  * placed in the event queue.
5244  */
5245 xcb_input_change_keyboard_device_cookie_t
5246 xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c,
5247                                             uint8_t           device_id);
5248 
5249 /**
5250  * Return the reply
5251  * @param c      The connection
5252  * @param cookie The cookie
5253  * @param e      The xcb_generic_error_t supplied
5254  *
5255  * Returns the reply of the request asked by
5256  *
5257  * The parameter @p e supplied to this function must be NULL if
5258  * xcb_input_change_keyboard_device_unchecked(). is used.
5259  * Otherwise, it stores the error if any.
5260  *
5261  * The returned value must be freed by the caller using free().
5262  */
5263 xcb_input_change_keyboard_device_reply_t *
5264 xcb_input_change_keyboard_device_reply (xcb_connection_t                           *c,
5265                                         xcb_input_change_keyboard_device_cookie_t   cookie  /**< */,
5266                                         xcb_generic_error_t                       **e);
5267 
5268 /**
5269  *
5270  * @param c The connection
5271  * @return A cookie
5272  *
5273  * Delivers a request to the X server.
5274  *
5275  */
5276 xcb_input_change_pointer_device_cookie_t
5277 xcb_input_change_pointer_device (xcb_connection_t *c,
5278                                  uint8_t           x_axis,
5279                                  uint8_t           y_axis,
5280                                  uint8_t           device_id);
5281 
5282 /**
5283  *
5284  * @param c The connection
5285  * @return A cookie
5286  *
5287  * Delivers a request to the X server.
5288  *
5289  * This form can be used only if the request will cause
5290  * a reply to be generated. Any returned error will be
5291  * placed in the event queue.
5292  */
5293 xcb_input_change_pointer_device_cookie_t
5294 xcb_input_change_pointer_device_unchecked (xcb_connection_t *c,
5295                                            uint8_t           x_axis,
5296                                            uint8_t           y_axis,
5297                                            uint8_t           device_id);
5298 
5299 /**
5300  * Return the reply
5301  * @param c      The connection
5302  * @param cookie The cookie
5303  * @param e      The xcb_generic_error_t supplied
5304  *
5305  * Returns the reply of the request asked by
5306  *
5307  * The parameter @p e supplied to this function must be NULL if
5308  * xcb_input_change_pointer_device_unchecked(). is used.
5309  * Otherwise, it stores the error if any.
5310  *
5311  * The returned value must be freed by the caller using free().
5312  */
5313 xcb_input_change_pointer_device_reply_t *
5314 xcb_input_change_pointer_device_reply (xcb_connection_t                          *c,
5315                                        xcb_input_change_pointer_device_cookie_t   cookie  /**< */,
5316                                        xcb_generic_error_t                      **e);
5317 
5318 int
5319 xcb_input_grab_device_sizeof (const void  *_buffer);
5320 
5321 /**
5322  *
5323  * @param c The connection
5324  * @return A cookie
5325  *
5326  * Delivers a request to the X server.
5327  *
5328  */
5329 xcb_input_grab_device_cookie_t
5330 xcb_input_grab_device (xcb_connection_t              *c,
5331                        xcb_window_t                   grab_window,
5332                        xcb_timestamp_t                time,
5333                        uint16_t                       num_classes,
5334                        uint8_t                        this_device_mode,
5335                        uint8_t                        other_device_mode,
5336                        uint8_t                        owner_events,
5337                        uint8_t                        device_id,
5338                        const xcb_input_event_class_t *classes);
5339 
5340 /**
5341  *
5342  * @param c The connection
5343  * @return A cookie
5344  *
5345  * Delivers a request to the X server.
5346  *
5347  * This form can be used only if the request will cause
5348  * a reply to be generated. Any returned error will be
5349  * placed in the event queue.
5350  */
5351 xcb_input_grab_device_cookie_t
5352 xcb_input_grab_device_unchecked (xcb_connection_t              *c,
5353                                  xcb_window_t                   grab_window,
5354                                  xcb_timestamp_t                time,
5355                                  uint16_t                       num_classes,
5356                                  uint8_t                        this_device_mode,
5357                                  uint8_t                        other_device_mode,
5358                                  uint8_t                        owner_events,
5359                                  uint8_t                        device_id,
5360                                  const xcb_input_event_class_t *classes);
5361 
5362 /**
5363  * Return the reply
5364  * @param c      The connection
5365  * @param cookie The cookie
5366  * @param e      The xcb_generic_error_t supplied
5367  *
5368  * Returns the reply of the request asked by
5369  *
5370  * The parameter @p e supplied to this function must be NULL if
5371  * xcb_input_grab_device_unchecked(). is used.
5372  * Otherwise, it stores the error if any.
5373  *
5374  * The returned value must be freed by the caller using free().
5375  */
5376 xcb_input_grab_device_reply_t *
5377 xcb_input_grab_device_reply (xcb_connection_t                *c,
5378                              xcb_input_grab_device_cookie_t   cookie  /**< */,
5379                              xcb_generic_error_t            **e);
5380 
5381 /**
5382  *
5383  * @param c The connection
5384  * @return A cookie
5385  *
5386  * Delivers a request to the X server.
5387  *
5388  * This form can be used only if the request will not cause
5389  * a reply to be generated. Any returned error will be
5390  * saved for handling by xcb_request_check().
5391  */
5392 xcb_void_cookie_t
5393 xcb_input_ungrab_device_checked (xcb_connection_t *c,
5394                                  xcb_timestamp_t   time,
5395                                  uint8_t           device_id);
5396 
5397 /**
5398  *
5399  * @param c The connection
5400  * @return A cookie
5401  *
5402  * Delivers a request to the X server.
5403  *
5404  */
5405 xcb_void_cookie_t
5406 xcb_input_ungrab_device (xcb_connection_t *c,
5407                          xcb_timestamp_t   time,
5408                          uint8_t           device_id);
5409 
5410 int
5411 xcb_input_grab_device_key_sizeof (const void  *_buffer);
5412 
5413 /**
5414  *
5415  * @param c The connection
5416  * @return A cookie
5417  *
5418  * Delivers a request to the X server.
5419  *
5420  * This form can be used only if the request will not cause
5421  * a reply to be generated. Any returned error will be
5422  * saved for handling by xcb_request_check().
5423  */
5424 xcb_void_cookie_t
5425 xcb_input_grab_device_key_checked (xcb_connection_t              *c,
5426                                    xcb_window_t                   grab_window,
5427                                    uint16_t                       num_classes,
5428                                    uint16_t                       modifiers,
5429                                    uint8_t                        modifier_device,
5430                                    uint8_t                        grabbed_device,
5431                                    uint8_t                        key,
5432                                    uint8_t                        this_device_mode,
5433                                    uint8_t                        other_device_mode,
5434                                    uint8_t                        owner_events,
5435                                    const xcb_input_event_class_t *classes);
5436 
5437 /**
5438  *
5439  * @param c The connection
5440  * @return A cookie
5441  *
5442  * Delivers a request to the X server.
5443  *
5444  */
5445 xcb_void_cookie_t
5446 xcb_input_grab_device_key (xcb_connection_t              *c,
5447                            xcb_window_t                   grab_window,
5448                            uint16_t                       num_classes,
5449                            uint16_t                       modifiers,
5450                            uint8_t                        modifier_device,
5451                            uint8_t                        grabbed_device,
5452                            uint8_t                        key,
5453                            uint8_t                        this_device_mode,
5454                            uint8_t                        other_device_mode,
5455                            uint8_t                        owner_events,
5456                            const xcb_input_event_class_t *classes);
5457 
5458 xcb_input_event_class_t *
5459 xcb_input_grab_device_key_classes (const xcb_input_grab_device_key_request_t *R);
5460 
5461 int
5462 xcb_input_grab_device_key_classes_length (const xcb_input_grab_device_key_request_t *R);
5463 
5464 xcb_generic_iterator_t
5465 xcb_input_grab_device_key_classes_end (const xcb_input_grab_device_key_request_t *R);
5466 
5467 /**
5468  *
5469  * @param c The connection
5470  * @return A cookie
5471  *
5472  * Delivers a request to the X server.
5473  *
5474  * This form can be used only if the request will not cause
5475  * a reply to be generated. Any returned error will be
5476  * saved for handling by xcb_request_check().
5477  */
5478 xcb_void_cookie_t
5479 xcb_input_ungrab_device_key_checked (xcb_connection_t *c,
5480                                      xcb_window_t      grabWindow,
5481                                      uint16_t          modifiers,
5482                                      uint8_t           modifier_device,
5483                                      uint8_t           key,
5484                                      uint8_t           grabbed_device);
5485 
5486 /**
5487  *
5488  * @param c The connection
5489  * @return A cookie
5490  *
5491  * Delivers a request to the X server.
5492  *
5493  */
5494 xcb_void_cookie_t
5495 xcb_input_ungrab_device_key (xcb_connection_t *c,
5496                              xcb_window_t      grabWindow,
5497                              uint16_t          modifiers,
5498                              uint8_t           modifier_device,
5499                              uint8_t           key,
5500                              uint8_t           grabbed_device);
5501 
5502 int
5503 xcb_input_grab_device_button_sizeof (const void  *_buffer);
5504 
5505 /**
5506  *
5507  * @param c The connection
5508  * @return A cookie
5509  *
5510  * Delivers a request to the X server.
5511  *
5512  * This form can be used only if the request will not cause
5513  * a reply to be generated. Any returned error will be
5514  * saved for handling by xcb_request_check().
5515  */
5516 xcb_void_cookie_t
5517 xcb_input_grab_device_button_checked (xcb_connection_t              *c,
5518                                       xcb_window_t                   grab_window,
5519                                       uint8_t                        grabbed_device,
5520                                       uint8_t                        modifier_device,
5521                                       uint16_t                       num_classes,
5522                                       uint16_t                       modifiers,
5523                                       uint8_t                        this_device_mode,
5524                                       uint8_t                        other_device_mode,
5525                                       uint8_t                        button,
5526                                       uint8_t                        owner_events,
5527                                       const xcb_input_event_class_t *classes);
5528 
5529 /**
5530  *
5531  * @param c The connection
5532  * @return A cookie
5533  *
5534  * Delivers a request to the X server.
5535  *
5536  */
5537 xcb_void_cookie_t
5538 xcb_input_grab_device_button (xcb_connection_t              *c,
5539                               xcb_window_t                   grab_window,
5540                               uint8_t                        grabbed_device,
5541                               uint8_t                        modifier_device,
5542                               uint16_t                       num_classes,
5543                               uint16_t                       modifiers,
5544                               uint8_t                        this_device_mode,
5545                               uint8_t                        other_device_mode,
5546                               uint8_t                        button,
5547                               uint8_t                        owner_events,
5548                               const xcb_input_event_class_t *classes);
5549 
5550 xcb_input_event_class_t *
5551 xcb_input_grab_device_button_classes (const xcb_input_grab_device_button_request_t *R);
5552 
5553 int
5554 xcb_input_grab_device_button_classes_length (const xcb_input_grab_device_button_request_t *R);
5555 
5556 xcb_generic_iterator_t
5557 xcb_input_grab_device_button_classes_end (const xcb_input_grab_device_button_request_t *R);
5558 
5559 /**
5560  *
5561  * @param c The connection
5562  * @return A cookie
5563  *
5564  * Delivers a request to the X server.
5565  *
5566  * This form can be used only if the request will not cause
5567  * a reply to be generated. Any returned error will be
5568  * saved for handling by xcb_request_check().
5569  */
5570 xcb_void_cookie_t
5571 xcb_input_ungrab_device_button_checked (xcb_connection_t *c,
5572                                         xcb_window_t      grab_window,
5573                                         uint16_t          modifiers,
5574                                         uint8_t           modifier_device,
5575                                         uint8_t           button,
5576                                         uint8_t           grabbed_device);
5577 
5578 /**
5579  *
5580  * @param c The connection
5581  * @return A cookie
5582  *
5583  * Delivers a request to the X server.
5584  *
5585  */
5586 xcb_void_cookie_t
5587 xcb_input_ungrab_device_button (xcb_connection_t *c,
5588                                 xcb_window_t      grab_window,
5589                                 uint16_t          modifiers,
5590                                 uint8_t           modifier_device,
5591                                 uint8_t           button,
5592                                 uint8_t           grabbed_device);
5593 
5594 /**
5595  *
5596  * @param c The connection
5597  * @return A cookie
5598  *
5599  * Delivers a request to the X server.
5600  *
5601  * This form can be used only if the request will not cause
5602  * a reply to be generated. Any returned error will be
5603  * saved for handling by xcb_request_check().
5604  */
5605 xcb_void_cookie_t
5606 xcb_input_allow_device_events_checked (xcb_connection_t *c,
5607                                        xcb_timestamp_t   time,
5608                                        uint8_t           mode,
5609                                        uint8_t           device_id);
5610 
5611 /**
5612  *
5613  * @param c The connection
5614  * @return A cookie
5615  *
5616  * Delivers a request to the X server.
5617  *
5618  */
5619 xcb_void_cookie_t
5620 xcb_input_allow_device_events (xcb_connection_t *c,
5621                                xcb_timestamp_t   time,
5622                                uint8_t           mode,
5623                                uint8_t           device_id);
5624 
5625 /**
5626  *
5627  * @param c The connection
5628  * @return A cookie
5629  *
5630  * Delivers a request to the X server.
5631  *
5632  */
5633 xcb_input_get_device_focus_cookie_t
5634 xcb_input_get_device_focus (xcb_connection_t *c,
5635                             uint8_t           device_id);
5636 
5637 /**
5638  *
5639  * @param c The connection
5640  * @return A cookie
5641  *
5642  * Delivers a request to the X server.
5643  *
5644  * This form can be used only if the request will cause
5645  * a reply to be generated. Any returned error will be
5646  * placed in the event queue.
5647  */
5648 xcb_input_get_device_focus_cookie_t
5649 xcb_input_get_device_focus_unchecked (xcb_connection_t *c,
5650                                       uint8_t           device_id);
5651 
5652 /**
5653  * Return the reply
5654  * @param c      The connection
5655  * @param cookie The cookie
5656  * @param e      The xcb_generic_error_t supplied
5657  *
5658  * Returns the reply of the request asked by
5659  *
5660  * The parameter @p e supplied to this function must be NULL if
5661  * xcb_input_get_device_focus_unchecked(). is used.
5662  * Otherwise, it stores the error if any.
5663  *
5664  * The returned value must be freed by the caller using free().
5665  */
5666 xcb_input_get_device_focus_reply_t *
5667 xcb_input_get_device_focus_reply (xcb_connection_t                     *c,
5668                                   xcb_input_get_device_focus_cookie_t   cookie  /**< */,
5669                                   xcb_generic_error_t                 **e);
5670 
5671 /**
5672  *
5673  * @param c The connection
5674  * @return A cookie
5675  *
5676  * Delivers a request to the X server.
5677  *
5678  * This form can be used only if the request will not cause
5679  * a reply to be generated. Any returned error will be
5680  * saved for handling by xcb_request_check().
5681  */
5682 xcb_void_cookie_t
5683 xcb_input_set_device_focus_checked (xcb_connection_t *c,
5684                                     xcb_window_t      focus,
5685                                     xcb_timestamp_t   time,
5686                                     uint8_t           revert_to,
5687                                     uint8_t           device_id);
5688 
5689 /**
5690  *
5691  * @param c The connection
5692  * @return A cookie
5693  *
5694  * Delivers a request to the X server.
5695  *
5696  */
5697 xcb_void_cookie_t
5698 xcb_input_set_device_focus (xcb_connection_t *c,
5699                             xcb_window_t      focus,
5700                             xcb_timestamp_t   time,
5701                             uint8_t           revert_to,
5702                             uint8_t           device_id);
5703 
5704 /**
5705  * Get the next element of the iterator
5706  * @param i Pointer to a xcb_input_kbd_feedback_state_iterator_t
5707  *
5708  * Get the next element in the iterator. The member rem is
5709  * decreased by one. The member data points to the next
5710  * element. The member index is increased by sizeof(xcb_input_kbd_feedback_state_t)
5711  */
5712 void
5713 xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i);
5714 
5715 /**
5716  * Return the iterator pointing to the last element
5717  * @param i An xcb_input_kbd_feedback_state_iterator_t
5718  * @return  The iterator pointing to the last element
5719  *
5720  * Set the current element in the iterator to the last element.
5721  * The member rem is set to 0. The member data points to the
5722  * last element.
5723  */
5724 xcb_generic_iterator_t
5725 xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i);
5726 
5727 /**
5728  * Get the next element of the iterator
5729  * @param i Pointer to a xcb_input_ptr_feedback_state_iterator_t
5730  *
5731  * Get the next element in the iterator. The member rem is
5732  * decreased by one. The member data points to the next
5733  * element. The member index is increased by sizeof(xcb_input_ptr_feedback_state_t)
5734  */
5735 void
5736 xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i);
5737 
5738 /**
5739  * Return the iterator pointing to the last element
5740  * @param i An xcb_input_ptr_feedback_state_iterator_t
5741  * @return  The iterator pointing to the last element
5742  *
5743  * Set the current element in the iterator to the last element.
5744  * The member rem is set to 0. The member data points to the
5745  * last element.
5746  */
5747 xcb_generic_iterator_t
5748 xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i);
5749 
5750 /**
5751  * Get the next element of the iterator
5752  * @param i Pointer to a xcb_input_integer_feedback_state_iterator_t
5753  *
5754  * Get the next element in the iterator. The member rem is
5755  * decreased by one. The member data points to the next
5756  * element. The member index is increased by sizeof(xcb_input_integer_feedback_state_t)
5757  */
5758 void
5759 xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i);
5760 
5761 /**
5762  * Return the iterator pointing to the last element
5763  * @param i An xcb_input_integer_feedback_state_iterator_t
5764  * @return  The iterator pointing to the last element
5765  *
5766  * Set the current element in the iterator to the last element.
5767  * The member rem is set to 0. The member data points to the
5768  * last element.
5769  */
5770 xcb_generic_iterator_t
5771 xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i);
5772 
5773 int
5774 xcb_input_string_feedback_state_sizeof (const void  *_buffer);
5775 
5776 xcb_keysym_t *
5777 xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R);
5778 
5779 int
5780 xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R);
5781 
5782 xcb_generic_iterator_t
5783 xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R);
5784 
5785 /**
5786  * Get the next element of the iterator
5787  * @param i Pointer to a xcb_input_string_feedback_state_iterator_t
5788  *
5789  * Get the next element in the iterator. The member rem is
5790  * decreased by one. The member data points to the next
5791  * element. The member index is increased by sizeof(xcb_input_string_feedback_state_t)
5792  */
5793 void
5794 xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i);
5795 
5796 /**
5797  * Return the iterator pointing to the last element
5798  * @param i An xcb_input_string_feedback_state_iterator_t
5799  * @return  The iterator pointing to the last element
5800  *
5801  * Set the current element in the iterator to the last element.
5802  * The member rem is set to 0. The member data points to the
5803  * last element.
5804  */
5805 xcb_generic_iterator_t
5806 xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i);
5807 
5808 /**
5809  * Get the next element of the iterator
5810  * @param i Pointer to a xcb_input_bell_feedback_state_iterator_t
5811  *
5812  * Get the next element in the iterator. The member rem is
5813  * decreased by one. The member data points to the next
5814  * element. The member index is increased by sizeof(xcb_input_bell_feedback_state_t)
5815  */
5816 void
5817 xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i);
5818 
5819 /**
5820  * Return the iterator pointing to the last element
5821  * @param i An xcb_input_bell_feedback_state_iterator_t
5822  * @return  The iterator pointing to the last element
5823  *
5824  * Set the current element in the iterator to the last element.
5825  * The member rem is set to 0. The member data points to the
5826  * last element.
5827  */
5828 xcb_generic_iterator_t
5829 xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i);
5830 
5831 /**
5832  * Get the next element of the iterator
5833  * @param i Pointer to a xcb_input_led_feedback_state_iterator_t
5834  *
5835  * Get the next element in the iterator. The member rem is
5836  * decreased by one. The member data points to the next
5837  * element. The member index is increased by sizeof(xcb_input_led_feedback_state_t)
5838  */
5839 void
5840 xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i);
5841 
5842 /**
5843  * Return the iterator pointing to the last element
5844  * @param i An xcb_input_led_feedback_state_iterator_t
5845  * @return  The iterator pointing to the last element
5846  *
5847  * Set the current element in the iterator to the last element.
5848  * The member rem is set to 0. The member data points to the
5849  * last element.
5850  */
5851 xcb_generic_iterator_t
5852 xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i);
5853 
5854 xcb_keysym_t *
5855 xcb_input_feedback_state_data_string_keysyms (const xcb_input_feedback_state_data_t *S);
5856 
5857 int
5858 xcb_input_feedback_state_data_string_keysyms_length (const xcb_input_feedback_state_t *R,
5859                                                      const xcb_input_feedback_state_data_t *S);
5860 
5861 xcb_generic_iterator_t
5862 xcb_input_feedback_state_data_string_keysyms_end (const xcb_input_feedback_state_t *R,
5863                                                   const xcb_input_feedback_state_data_t *S);
5864 
5865 int
5866 xcb_input_feedback_state_data_serialize (void                                  **_buffer,
5867                                          uint8_t                                 class_id,
5868                                          const xcb_input_feedback_state_data_t  *_aux);
5869 
5870 int
5871 xcb_input_feedback_state_data_unpack (const void                       *_buffer,
5872                                       uint8_t                           class_id,
5873                                       xcb_input_feedback_state_data_t  *_aux);
5874 
5875 int
5876 xcb_input_feedback_state_data_sizeof (const void  *_buffer,
5877                                       uint8_t      class_id);
5878 
5879 int
5880 xcb_input_feedback_state_sizeof (const void  *_buffer);
5881 
5882 /**
5883  * Get the next element of the iterator
5884  * @param i Pointer to a xcb_input_feedback_state_iterator_t
5885  *
5886  * Get the next element in the iterator. The member rem is
5887  * decreased by one. The member data points to the next
5888  * element. The member index is increased by sizeof(xcb_input_feedback_state_t)
5889  */
5890 void
5891 xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i);
5892 
5893 /**
5894  * Return the iterator pointing to the last element
5895  * @param i An xcb_input_feedback_state_iterator_t
5896  * @return  The iterator pointing to the last element
5897  *
5898  * Set the current element in the iterator to the last element.
5899  * The member rem is set to 0. The member data points to the
5900  * last element.
5901  */
5902 xcb_generic_iterator_t
5903 xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i);
5904 
5905 int
5906 xcb_input_get_feedback_control_sizeof (const void  *_buffer);
5907 
5908 /**
5909  *
5910  * @param c The connection
5911  * @return A cookie
5912  *
5913  * Delivers a request to the X server.
5914  *
5915  */
5916 xcb_input_get_feedback_control_cookie_t
5917 xcb_input_get_feedback_control (xcb_connection_t *c,
5918                                 uint8_t           device_id);
5919 
5920 /**
5921  *
5922  * @param c The connection
5923  * @return A cookie
5924  *
5925  * Delivers a request to the X server.
5926  *
5927  * This form can be used only if the request will cause
5928  * a reply to be generated. Any returned error will be
5929  * placed in the event queue.
5930  */
5931 xcb_input_get_feedback_control_cookie_t
5932 xcb_input_get_feedback_control_unchecked (xcb_connection_t *c,
5933                                           uint8_t           device_id);
5934 
5935 int
5936 xcb_input_get_feedback_control_feedbacks_length (const xcb_input_get_feedback_control_reply_t *R);
5937 
5938 xcb_input_feedback_state_iterator_t
5939 xcb_input_get_feedback_control_feedbacks_iterator (const xcb_input_get_feedback_control_reply_t *R);
5940 
5941 /**
5942  * Return the reply
5943  * @param c      The connection
5944  * @param cookie The cookie
5945  * @param e      The xcb_generic_error_t supplied
5946  *
5947  * Returns the reply of the request asked by
5948  *
5949  * The parameter @p e supplied to this function must be NULL if
5950  * xcb_input_get_feedback_control_unchecked(). is used.
5951  * Otherwise, it stores the error if any.
5952  *
5953  * The returned value must be freed by the caller using free().
5954  */
5955 xcb_input_get_feedback_control_reply_t *
5956 xcb_input_get_feedback_control_reply (xcb_connection_t                         *c,
5957                                       xcb_input_get_feedback_control_cookie_t   cookie  /**< */,
5958                                       xcb_generic_error_t                     **e);
5959 
5960 /**
5961  * Get the next element of the iterator
5962  * @param i Pointer to a xcb_input_kbd_feedback_ctl_iterator_t
5963  *
5964  * Get the next element in the iterator. The member rem is
5965  * decreased by one. The member data points to the next
5966  * element. The member index is increased by sizeof(xcb_input_kbd_feedback_ctl_t)
5967  */
5968 void
5969 xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i);
5970 
5971 /**
5972  * Return the iterator pointing to the last element
5973  * @param i An xcb_input_kbd_feedback_ctl_iterator_t
5974  * @return  The iterator pointing to the last element
5975  *
5976  * Set the current element in the iterator to the last element.
5977  * The member rem is set to 0. The member data points to the
5978  * last element.
5979  */
5980 xcb_generic_iterator_t
5981 xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i);
5982 
5983 /**
5984  * Get the next element of the iterator
5985  * @param i Pointer to a xcb_input_ptr_feedback_ctl_iterator_t
5986  *
5987  * Get the next element in the iterator. The member rem is
5988  * decreased by one. The member data points to the next
5989  * element. The member index is increased by sizeof(xcb_input_ptr_feedback_ctl_t)
5990  */
5991 void
5992 xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i);
5993 
5994 /**
5995  * Return the iterator pointing to the last element
5996  * @param i An xcb_input_ptr_feedback_ctl_iterator_t
5997  * @return  The iterator pointing to the last element
5998  *
5999  * Set the current element in the iterator to the last element.
6000  * The member rem is set to 0. The member data points to the
6001  * last element.
6002  */
6003 xcb_generic_iterator_t
6004 xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i);
6005 
6006 /**
6007  * Get the next element of the iterator
6008  * @param i Pointer to a xcb_input_integer_feedback_ctl_iterator_t
6009  *
6010  * Get the next element in the iterator. The member rem is
6011  * decreased by one. The member data points to the next
6012  * element. The member index is increased by sizeof(xcb_input_integer_feedback_ctl_t)
6013  */
6014 void
6015 xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i);
6016 
6017 /**
6018  * Return the iterator pointing to the last element
6019  * @param i An xcb_input_integer_feedback_ctl_iterator_t
6020  * @return  The iterator pointing to the last element
6021  *
6022  * Set the current element in the iterator to the last element.
6023  * The member rem is set to 0. The member data points to the
6024  * last element.
6025  */
6026 xcb_generic_iterator_t
6027 xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i);
6028 
6029 int
6030 xcb_input_string_feedback_ctl_sizeof (const void  *_buffer);
6031 
6032 xcb_keysym_t *
6033 xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R);
6034 
6035 int
6036 xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R);
6037 
6038 xcb_generic_iterator_t
6039 xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R);
6040 
6041 /**
6042  * Get the next element of the iterator
6043  * @param i Pointer to a xcb_input_string_feedback_ctl_iterator_t
6044  *
6045  * Get the next element in the iterator. The member rem is
6046  * decreased by one. The member data points to the next
6047  * element. The member index is increased by sizeof(xcb_input_string_feedback_ctl_t)
6048  */
6049 void
6050 xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i);
6051 
6052 /**
6053  * Return the iterator pointing to the last element
6054  * @param i An xcb_input_string_feedback_ctl_iterator_t
6055  * @return  The iterator pointing to the last element
6056  *
6057  * Set the current element in the iterator to the last element.
6058  * The member rem is set to 0. The member data points to the
6059  * last element.
6060  */
6061 xcb_generic_iterator_t
6062 xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i);
6063 
6064 /**
6065  * Get the next element of the iterator
6066  * @param i Pointer to a xcb_input_bell_feedback_ctl_iterator_t
6067  *
6068  * Get the next element in the iterator. The member rem is
6069  * decreased by one. The member data points to the next
6070  * element. The member index is increased by sizeof(xcb_input_bell_feedback_ctl_t)
6071  */
6072 void
6073 xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i);
6074 
6075 /**
6076  * Return the iterator pointing to the last element
6077  * @param i An xcb_input_bell_feedback_ctl_iterator_t
6078  * @return  The iterator pointing to the last element
6079  *
6080  * Set the current element in the iterator to the last element.
6081  * The member rem is set to 0. The member data points to the
6082  * last element.
6083  */
6084 xcb_generic_iterator_t
6085 xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i);
6086 
6087 /**
6088  * Get the next element of the iterator
6089  * @param i Pointer to a xcb_input_led_feedback_ctl_iterator_t
6090  *
6091  * Get the next element in the iterator. The member rem is
6092  * decreased by one. The member data points to the next
6093  * element. The member index is increased by sizeof(xcb_input_led_feedback_ctl_t)
6094  */
6095 void
6096 xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i);
6097 
6098 /**
6099  * Return the iterator pointing to the last element
6100  * @param i An xcb_input_led_feedback_ctl_iterator_t
6101  * @return  The iterator pointing to the last element
6102  *
6103  * Set the current element in the iterator to the last element.
6104  * The member rem is set to 0. The member data points to the
6105  * last element.
6106  */
6107 xcb_generic_iterator_t
6108 xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i);
6109 
6110 xcb_keysym_t *
6111 xcb_input_feedback_ctl_data_string_keysyms (const xcb_input_feedback_ctl_data_t *S);
6112 
6113 int
6114 xcb_input_feedback_ctl_data_string_keysyms_length (const xcb_input_feedback_ctl_t *R,
6115                                                    const xcb_input_feedback_ctl_data_t *S);
6116 
6117 xcb_generic_iterator_t
6118 xcb_input_feedback_ctl_data_string_keysyms_end (const xcb_input_feedback_ctl_t *R,
6119                                                 const xcb_input_feedback_ctl_data_t *S);
6120 
6121 int
6122 xcb_input_feedback_ctl_data_serialize (void                                **_buffer,
6123                                        uint8_t                               class_id,
6124                                        const xcb_input_feedback_ctl_data_t  *_aux);
6125 
6126 int
6127 xcb_input_feedback_ctl_data_unpack (const void                     *_buffer,
6128                                     uint8_t                         class_id,
6129                                     xcb_input_feedback_ctl_data_t  *_aux);
6130 
6131 int
6132 xcb_input_feedback_ctl_data_sizeof (const void  *_buffer,
6133                                     uint8_t      class_id);
6134 
6135 int
6136 xcb_input_feedback_ctl_sizeof (const void  *_buffer);
6137 
6138 /**
6139  * Get the next element of the iterator
6140  * @param i Pointer to a xcb_input_feedback_ctl_iterator_t
6141  *
6142  * Get the next element in the iterator. The member rem is
6143  * decreased by one. The member data points to the next
6144  * element. The member index is increased by sizeof(xcb_input_feedback_ctl_t)
6145  */
6146 void
6147 xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i);
6148 
6149 /**
6150  * Return the iterator pointing to the last element
6151  * @param i An xcb_input_feedback_ctl_iterator_t
6152  * @return  The iterator pointing to the last element
6153  *
6154  * Set the current element in the iterator to the last element.
6155  * The member rem is set to 0. The member data points to the
6156  * last element.
6157  */
6158 xcb_generic_iterator_t
6159 xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i);
6160 
6161 int
6162 xcb_input_change_feedback_control_sizeof (const void  *_buffer);
6163 
6164 /**
6165  *
6166  * @param c The connection
6167  * @return A cookie
6168  *
6169  * Delivers a request to the X server.
6170  *
6171  * This form can be used only if the request will not cause
6172  * a reply to be generated. Any returned error will be
6173  * saved for handling by xcb_request_check().
6174  */
6175 xcb_void_cookie_t
6176 xcb_input_change_feedback_control_checked (xcb_connection_t         *c,
6177                                            uint32_t                  mask,
6178                                            uint8_t                   device_id,
6179                                            uint8_t                   feedback_id,
6180                                            xcb_input_feedback_ctl_t *feedback);
6181 
6182 /**
6183  *
6184  * @param c The connection
6185  * @return A cookie
6186  *
6187  * Delivers a request to the X server.
6188  *
6189  */
6190 xcb_void_cookie_t
6191 xcb_input_change_feedback_control (xcb_connection_t         *c,
6192                                    uint32_t                  mask,
6193                                    uint8_t                   device_id,
6194                                    uint8_t                   feedback_id,
6195                                    xcb_input_feedback_ctl_t *feedback);
6196 
6197 xcb_input_feedback_ctl_t *
6198 xcb_input_change_feedback_control_feedback (const xcb_input_change_feedback_control_request_t *R);
6199 
6200 int
6201 xcb_input_get_device_key_mapping_sizeof (const void  *_buffer);
6202 
6203 /**
6204  *
6205  * @param c The connection
6206  * @return A cookie
6207  *
6208  * Delivers a request to the X server.
6209  *
6210  */
6211 xcb_input_get_device_key_mapping_cookie_t
6212 xcb_input_get_device_key_mapping (xcb_connection_t     *c,
6213                                   uint8_t               device_id,
6214                                   xcb_input_key_code_t  first_keycode,
6215                                   uint8_t               count);
6216 
6217 /**
6218  *
6219  * @param c The connection
6220  * @return A cookie
6221  *
6222  * Delivers a request to the X server.
6223  *
6224  * This form can be used only if the request will cause
6225  * a reply to be generated. Any returned error will be
6226  * placed in the event queue.
6227  */
6228 xcb_input_get_device_key_mapping_cookie_t
6229 xcb_input_get_device_key_mapping_unchecked (xcb_connection_t     *c,
6230                                             uint8_t               device_id,
6231                                             xcb_input_key_code_t  first_keycode,
6232                                             uint8_t               count);
6233 
6234 xcb_keysym_t *
6235 xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R);
6236 
6237 int
6238 xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R);
6239 
6240 xcb_generic_iterator_t
6241 xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R);
6242 
6243 /**
6244  * Return the reply
6245  * @param c      The connection
6246  * @param cookie The cookie
6247  * @param e      The xcb_generic_error_t supplied
6248  *
6249  * Returns the reply of the request asked by
6250  *
6251  * The parameter @p e supplied to this function must be NULL if
6252  * xcb_input_get_device_key_mapping_unchecked(). is used.
6253  * Otherwise, it stores the error if any.
6254  *
6255  * The returned value must be freed by the caller using free().
6256  */
6257 xcb_input_get_device_key_mapping_reply_t *
6258 xcb_input_get_device_key_mapping_reply (xcb_connection_t                           *c,
6259                                         xcb_input_get_device_key_mapping_cookie_t   cookie  /**< */,
6260                                         xcb_generic_error_t                       **e);
6261 
6262 int
6263 xcb_input_change_device_key_mapping_sizeof (const void  *_buffer);
6264 
6265 /**
6266  *
6267  * @param c The connection
6268  * @return A cookie
6269  *
6270  * Delivers a request to the X server.
6271  *
6272  * This form can be used only if the request will not cause
6273  * a reply to be generated. Any returned error will be
6274  * saved for handling by xcb_request_check().
6275  */
6276 xcb_void_cookie_t
6277 xcb_input_change_device_key_mapping_checked (xcb_connection_t     *c,
6278                                              uint8_t               device_id,
6279                                              xcb_input_key_code_t  first_keycode,
6280                                              uint8_t               keysyms_per_keycode,
6281                                              uint8_t               keycode_count,
6282                                              const xcb_keysym_t   *keysyms);
6283 
6284 /**
6285  *
6286  * @param c The connection
6287  * @return A cookie
6288  *
6289  * Delivers a request to the X server.
6290  *
6291  */
6292 xcb_void_cookie_t
6293 xcb_input_change_device_key_mapping (xcb_connection_t     *c,
6294                                      uint8_t               device_id,
6295                                      xcb_input_key_code_t  first_keycode,
6296                                      uint8_t               keysyms_per_keycode,
6297                                      uint8_t               keycode_count,
6298                                      const xcb_keysym_t   *keysyms);
6299 
6300 xcb_keysym_t *
6301 xcb_input_change_device_key_mapping_keysyms (const xcb_input_change_device_key_mapping_request_t *R);
6302 
6303 int
6304 xcb_input_change_device_key_mapping_keysyms_length (const xcb_input_change_device_key_mapping_request_t *R);
6305 
6306 xcb_generic_iterator_t
6307 xcb_input_change_device_key_mapping_keysyms_end (const xcb_input_change_device_key_mapping_request_t *R);
6308 
6309 int
6310 xcb_input_get_device_modifier_mapping_sizeof (const void  *_buffer);
6311 
6312 /**
6313  *
6314  * @param c The connection
6315  * @return A cookie
6316  *
6317  * Delivers a request to the X server.
6318  *
6319  */
6320 xcb_input_get_device_modifier_mapping_cookie_t
6321 xcb_input_get_device_modifier_mapping (xcb_connection_t *c,
6322                                        uint8_t           device_id);
6323 
6324 /**
6325  *
6326  * @param c The connection
6327  * @return A cookie
6328  *
6329  * Delivers a request to the X server.
6330  *
6331  * This form can be used only if the request will cause
6332  * a reply to be generated. Any returned error will be
6333  * placed in the event queue.
6334  */
6335 xcb_input_get_device_modifier_mapping_cookie_t
6336 xcb_input_get_device_modifier_mapping_unchecked (xcb_connection_t *c,
6337                                                  uint8_t           device_id);
6338 
6339 uint8_t *
6340 xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R);
6341 
6342 int
6343 xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R);
6344 
6345 xcb_generic_iterator_t
6346 xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R);
6347 
6348 /**
6349  * Return the reply
6350  * @param c      The connection
6351  * @param cookie The cookie
6352  * @param e      The xcb_generic_error_t supplied
6353  *
6354  * Returns the reply of the request asked by
6355  *
6356  * The parameter @p e supplied to this function must be NULL if
6357  * xcb_input_get_device_modifier_mapping_unchecked(). is used.
6358  * Otherwise, it stores the error if any.
6359  *
6360  * The returned value must be freed by the caller using free().
6361  */
6362 xcb_input_get_device_modifier_mapping_reply_t *
6363 xcb_input_get_device_modifier_mapping_reply (xcb_connection_t                                *c,
6364                                              xcb_input_get_device_modifier_mapping_cookie_t   cookie  /**< */,
6365                                              xcb_generic_error_t                            **e);
6366 
6367 int
6368 xcb_input_set_device_modifier_mapping_sizeof (const void  *_buffer);
6369 
6370 /**
6371  *
6372  * @param c The connection
6373  * @return A cookie
6374  *
6375  * Delivers a request to the X server.
6376  *
6377  */
6378 xcb_input_set_device_modifier_mapping_cookie_t
6379 xcb_input_set_device_modifier_mapping (xcb_connection_t *c,
6380                                        uint8_t           device_id,
6381                                        uint8_t           keycodes_per_modifier,
6382                                        const uint8_t    *keymaps);
6383 
6384 /**
6385  *
6386  * @param c The connection
6387  * @return A cookie
6388  *
6389  * Delivers a request to the X server.
6390  *
6391  * This form can be used only if the request will cause
6392  * a reply to be generated. Any returned error will be
6393  * placed in the event queue.
6394  */
6395 xcb_input_set_device_modifier_mapping_cookie_t
6396 xcb_input_set_device_modifier_mapping_unchecked (xcb_connection_t *c,
6397                                                  uint8_t           device_id,
6398                                                  uint8_t           keycodes_per_modifier,
6399                                                  const uint8_t    *keymaps);
6400 
6401 /**
6402  * Return the reply
6403  * @param c      The connection
6404  * @param cookie The cookie
6405  * @param e      The xcb_generic_error_t supplied
6406  *
6407  * Returns the reply of the request asked by
6408  *
6409  * The parameter @p e supplied to this function must be NULL if
6410  * xcb_input_set_device_modifier_mapping_unchecked(). is used.
6411  * Otherwise, it stores the error if any.
6412  *
6413  * The returned value must be freed by the caller using free().
6414  */
6415 xcb_input_set_device_modifier_mapping_reply_t *
6416 xcb_input_set_device_modifier_mapping_reply (xcb_connection_t                                *c,
6417                                              xcb_input_set_device_modifier_mapping_cookie_t   cookie  /**< */,
6418                                              xcb_generic_error_t                            **e);
6419 
6420 int
6421 xcb_input_get_device_button_mapping_sizeof (const void  *_buffer);
6422 
6423 /**
6424  *
6425  * @param c The connection
6426  * @return A cookie
6427  *
6428  * Delivers a request to the X server.
6429  *
6430  */
6431 xcb_input_get_device_button_mapping_cookie_t
6432 xcb_input_get_device_button_mapping (xcb_connection_t *c,
6433                                      uint8_t           device_id);
6434 
6435 /**
6436  *
6437  * @param c The connection
6438  * @return A cookie
6439  *
6440  * Delivers a request to the X server.
6441  *
6442  * This form can be used only if the request will cause
6443  * a reply to be generated. Any returned error will be
6444  * placed in the event queue.
6445  */
6446 xcb_input_get_device_button_mapping_cookie_t
6447 xcb_input_get_device_button_mapping_unchecked (xcb_connection_t *c,
6448                                                uint8_t           device_id);
6449 
6450 uint8_t *
6451 xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R);
6452 
6453 int
6454 xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R);
6455 
6456 xcb_generic_iterator_t
6457 xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R);
6458 
6459 /**
6460  * Return the reply
6461  * @param c      The connection
6462  * @param cookie The cookie
6463  * @param e      The xcb_generic_error_t supplied
6464  *
6465  * Returns the reply of the request asked by
6466  *
6467  * The parameter @p e supplied to this function must be NULL if
6468  * xcb_input_get_device_button_mapping_unchecked(). is used.
6469  * Otherwise, it stores the error if any.
6470  *
6471  * The returned value must be freed by the caller using free().
6472  */
6473 xcb_input_get_device_button_mapping_reply_t *
6474 xcb_input_get_device_button_mapping_reply (xcb_connection_t                              *c,
6475                                            xcb_input_get_device_button_mapping_cookie_t   cookie  /**< */,
6476                                            xcb_generic_error_t                          **e);
6477 
6478 int
6479 xcb_input_set_device_button_mapping_sizeof (const void  *_buffer);
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_input_set_device_button_mapping_cookie_t
6490 xcb_input_set_device_button_mapping (xcb_connection_t *c,
6491                                      uint8_t           device_id,
6492                                      uint8_t           map_size,
6493                                      const uint8_t    *map);
6494 
6495 /**
6496  *
6497  * @param c The connection
6498  * @return A cookie
6499  *
6500  * Delivers a request to the X server.
6501  *
6502  * This form can be used only if the request will cause
6503  * a reply to be generated. Any returned error will be
6504  * placed in the event queue.
6505  */
6506 xcb_input_set_device_button_mapping_cookie_t
6507 xcb_input_set_device_button_mapping_unchecked (xcb_connection_t *c,
6508                                                uint8_t           device_id,
6509                                                uint8_t           map_size,
6510                                                const uint8_t    *map);
6511 
6512 /**
6513  * Return the reply
6514  * @param c      The connection
6515  * @param cookie The cookie
6516  * @param e      The xcb_generic_error_t supplied
6517  *
6518  * Returns the reply of the request asked by
6519  *
6520  * The parameter @p e supplied to this function must be NULL if
6521  * xcb_input_set_device_button_mapping_unchecked(). is used.
6522  * Otherwise, it stores the error if any.
6523  *
6524  * The returned value must be freed by the caller using free().
6525  */
6526 xcb_input_set_device_button_mapping_reply_t *
6527 xcb_input_set_device_button_mapping_reply (xcb_connection_t                              *c,
6528                                            xcb_input_set_device_button_mapping_cookie_t   cookie  /**< */,
6529                                            xcb_generic_error_t                          **e);
6530 
6531 /**
6532  * Get the next element of the iterator
6533  * @param i Pointer to a xcb_input_key_state_iterator_t
6534  *
6535  * Get the next element in the iterator. The member rem is
6536  * decreased by one. The member data points to the next
6537  * element. The member index is increased by sizeof(xcb_input_key_state_t)
6538  */
6539 void
6540 xcb_input_key_state_next (xcb_input_key_state_iterator_t *i);
6541 
6542 /**
6543  * Return the iterator pointing to the last element
6544  * @param i An xcb_input_key_state_iterator_t
6545  * @return  The iterator pointing to the last element
6546  *
6547  * Set the current element in the iterator to the last element.
6548  * The member rem is set to 0. The member data points to the
6549  * last element.
6550  */
6551 xcb_generic_iterator_t
6552 xcb_input_key_state_end (xcb_input_key_state_iterator_t i);
6553 
6554 /**
6555  * Get the next element of the iterator
6556  * @param i Pointer to a xcb_input_button_state_iterator_t
6557  *
6558  * Get the next element in the iterator. The member rem is
6559  * decreased by one. The member data points to the next
6560  * element. The member index is increased by sizeof(xcb_input_button_state_t)
6561  */
6562 void
6563 xcb_input_button_state_next (xcb_input_button_state_iterator_t *i);
6564 
6565 /**
6566  * Return the iterator pointing to the last element
6567  * @param i An xcb_input_button_state_iterator_t
6568  * @return  The iterator pointing to the last element
6569  *
6570  * Set the current element in the iterator to the last element.
6571  * The member rem is set to 0. The member data points to the
6572  * last element.
6573  */
6574 xcb_generic_iterator_t
6575 xcb_input_button_state_end (xcb_input_button_state_iterator_t i);
6576 
6577 int
6578 xcb_input_valuator_state_sizeof (const void  *_buffer);
6579 
6580 int32_t *
6581 xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R);
6582 
6583 int
6584 xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R);
6585 
6586 xcb_generic_iterator_t
6587 xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R);
6588 
6589 /**
6590  * Get the next element of the iterator
6591  * @param i Pointer to a xcb_input_valuator_state_iterator_t
6592  *
6593  * Get the next element in the iterator. The member rem is
6594  * decreased by one. The member data points to the next
6595  * element. The member index is increased by sizeof(xcb_input_valuator_state_t)
6596  */
6597 void
6598 xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i);
6599 
6600 /**
6601  * Return the iterator pointing to the last element
6602  * @param i An xcb_input_valuator_state_iterator_t
6603  * @return  The iterator pointing to the last element
6604  *
6605  * Set the current element in the iterator to the last element.
6606  * The member rem is set to 0. The member data points to the
6607  * last element.
6608  */
6609 xcb_generic_iterator_t
6610 xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i);
6611 
6612 int32_t *
6613 xcb_input_input_state_data_valuator_valuators (const xcb_input_input_state_data_t *S);
6614 
6615 int
6616 xcb_input_input_state_data_valuator_valuators_length (const xcb_input_input_state_t *R,
6617                                                       const xcb_input_input_state_data_t *S);
6618 
6619 xcb_generic_iterator_t
6620 xcb_input_input_state_data_valuator_valuators_end (const xcb_input_input_state_t *R,
6621                                                    const xcb_input_input_state_data_t *S);
6622 
6623 int
6624 xcb_input_input_state_data_serialize (void                               **_buffer,
6625                                       uint8_t                              class_id,
6626                                       const xcb_input_input_state_data_t  *_aux);
6627 
6628 int
6629 xcb_input_input_state_data_unpack (const void                    *_buffer,
6630                                    uint8_t                        class_id,
6631                                    xcb_input_input_state_data_t  *_aux);
6632 
6633 int
6634 xcb_input_input_state_data_sizeof (const void  *_buffer,
6635                                    uint8_t      class_id);
6636 
6637 int
6638 xcb_input_input_state_sizeof (const void  *_buffer);
6639 
6640 /**
6641  * Get the next element of the iterator
6642  * @param i Pointer to a xcb_input_input_state_iterator_t
6643  *
6644  * Get the next element in the iterator. The member rem is
6645  * decreased by one. The member data points to the next
6646  * element. The member index is increased by sizeof(xcb_input_input_state_t)
6647  */
6648 void
6649 xcb_input_input_state_next (xcb_input_input_state_iterator_t *i);
6650 
6651 /**
6652  * Return the iterator pointing to the last element
6653  * @param i An xcb_input_input_state_iterator_t
6654  * @return  The iterator pointing to the last element
6655  *
6656  * Set the current element in the iterator to the last element.
6657  * The member rem is set to 0. The member data points to the
6658  * last element.
6659  */
6660 xcb_generic_iterator_t
6661 xcb_input_input_state_end (xcb_input_input_state_iterator_t i);
6662 
6663 int
6664 xcb_input_query_device_state_sizeof (const void  *_buffer);
6665 
6666 /**
6667  *
6668  * @param c The connection
6669  * @return A cookie
6670  *
6671  * Delivers a request to the X server.
6672  *
6673  */
6674 xcb_input_query_device_state_cookie_t
6675 xcb_input_query_device_state (xcb_connection_t *c,
6676                               uint8_t           device_id);
6677 
6678 /**
6679  *
6680  * @param c The connection
6681  * @return A cookie
6682  *
6683  * Delivers a request to the X server.
6684  *
6685  * This form can be used only if the request will cause
6686  * a reply to be generated. Any returned error will be
6687  * placed in the event queue.
6688  */
6689 xcb_input_query_device_state_cookie_t
6690 xcb_input_query_device_state_unchecked (xcb_connection_t *c,
6691                                         uint8_t           device_id);
6692 
6693 int
6694 xcb_input_query_device_state_classes_length (const xcb_input_query_device_state_reply_t *R);
6695 
6696 xcb_input_input_state_iterator_t
6697 xcb_input_query_device_state_classes_iterator (const xcb_input_query_device_state_reply_t *R);
6698 
6699 /**
6700  * Return the reply
6701  * @param c      The connection
6702  * @param cookie The cookie
6703  * @param e      The xcb_generic_error_t supplied
6704  *
6705  * Returns the reply of the request asked by
6706  *
6707  * The parameter @p e supplied to this function must be NULL if
6708  * xcb_input_query_device_state_unchecked(). is used.
6709  * Otherwise, it stores the error if any.
6710  *
6711  * The returned value must be freed by the caller using free().
6712  */
6713 xcb_input_query_device_state_reply_t *
6714 xcb_input_query_device_state_reply (xcb_connection_t                       *c,
6715                                     xcb_input_query_device_state_cookie_t   cookie  /**< */,
6716                                     xcb_generic_error_t                   **e);
6717 
6718 /**
6719  *
6720  * @param c The connection
6721  * @return A cookie
6722  *
6723  * Delivers a request to the X server.
6724  *
6725  * This form can be used only if the request will not cause
6726  * a reply to be generated. Any returned error will be
6727  * saved for handling by xcb_request_check().
6728  */
6729 xcb_void_cookie_t
6730 xcb_input_device_bell_checked (xcb_connection_t *c,
6731                                uint8_t           device_id,
6732                                uint8_t           feedback_id,
6733                                uint8_t           feedback_class,
6734                                int8_t            percent);
6735 
6736 /**
6737  *
6738  * @param c The connection
6739  * @return A cookie
6740  *
6741  * Delivers a request to the X server.
6742  *
6743  */
6744 xcb_void_cookie_t
6745 xcb_input_device_bell (xcb_connection_t *c,
6746                        uint8_t           device_id,
6747                        uint8_t           feedback_id,
6748                        uint8_t           feedback_class,
6749                        int8_t            percent);
6750 
6751 int
6752 xcb_input_set_device_valuators_sizeof (const void  *_buffer);
6753 
6754 /**
6755  *
6756  * @param c The connection
6757  * @return A cookie
6758  *
6759  * Delivers a request to the X server.
6760  *
6761  */
6762 xcb_input_set_device_valuators_cookie_t
6763 xcb_input_set_device_valuators (xcb_connection_t *c,
6764                                 uint8_t           device_id,
6765                                 uint8_t           first_valuator,
6766                                 uint8_t           num_valuators,
6767                                 const int32_t    *valuators);
6768 
6769 /**
6770  *
6771  * @param c The connection
6772  * @return A cookie
6773  *
6774  * Delivers a request to the X server.
6775  *
6776  * This form can be used only if the request will cause
6777  * a reply to be generated. Any returned error will be
6778  * placed in the event queue.
6779  */
6780 xcb_input_set_device_valuators_cookie_t
6781 xcb_input_set_device_valuators_unchecked (xcb_connection_t *c,
6782                                           uint8_t           device_id,
6783                                           uint8_t           first_valuator,
6784                                           uint8_t           num_valuators,
6785                                           const int32_t    *valuators);
6786 
6787 /**
6788  * Return the reply
6789  * @param c      The connection
6790  * @param cookie The cookie
6791  * @param e      The xcb_generic_error_t supplied
6792  *
6793  * Returns the reply of the request asked by
6794  *
6795  * The parameter @p e supplied to this function must be NULL if
6796  * xcb_input_set_device_valuators_unchecked(). is used.
6797  * Otherwise, it stores the error if any.
6798  *
6799  * The returned value must be freed by the caller using free().
6800  */
6801 xcb_input_set_device_valuators_reply_t *
6802 xcb_input_set_device_valuators_reply (xcb_connection_t                         *c,
6803                                       xcb_input_set_device_valuators_cookie_t   cookie  /**< */,
6804                                       xcb_generic_error_t                     **e);
6805 
6806 int
6807 xcb_input_device_resolution_state_sizeof (const void  *_buffer);
6808 
6809 uint32_t *
6810 xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R);
6811 
6812 int
6813 xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R);
6814 
6815 xcb_generic_iterator_t
6816 xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R);
6817 
6818 uint32_t *
6819 xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R);
6820 
6821 int
6822 xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R);
6823 
6824 xcb_generic_iterator_t
6825 xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R);
6826 
6827 uint32_t *
6828 xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R);
6829 
6830 int
6831 xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R);
6832 
6833 xcb_generic_iterator_t
6834 xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R);
6835 
6836 /**
6837  * Get the next element of the iterator
6838  * @param i Pointer to a xcb_input_device_resolution_state_iterator_t
6839  *
6840  * Get the next element in the iterator. The member rem is
6841  * decreased by one. The member data points to the next
6842  * element. The member index is increased by sizeof(xcb_input_device_resolution_state_t)
6843  */
6844 void
6845 xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i);
6846 
6847 /**
6848  * Return the iterator pointing to the last element
6849  * @param i An xcb_input_device_resolution_state_iterator_t
6850  * @return  The iterator pointing to the last element
6851  *
6852  * Set the current element in the iterator to the last element.
6853  * The member rem is set to 0. The member data points to the
6854  * last element.
6855  */
6856 xcb_generic_iterator_t
6857 xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i);
6858 
6859 /**
6860  * Get the next element of the iterator
6861  * @param i Pointer to a xcb_input_device_abs_calib_state_iterator_t
6862  *
6863  * Get the next element in the iterator. The member rem is
6864  * decreased by one. The member data points to the next
6865  * element. The member index is increased by sizeof(xcb_input_device_abs_calib_state_t)
6866  */
6867 void
6868 xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i);
6869 
6870 /**
6871  * Return the iterator pointing to the last element
6872  * @param i An xcb_input_device_abs_calib_state_iterator_t
6873  * @return  The iterator pointing to the last element
6874  *
6875  * Set the current element in the iterator to the last element.
6876  * The member rem is set to 0. The member data points to the
6877  * last element.
6878  */
6879 xcb_generic_iterator_t
6880 xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i);
6881 
6882 /**
6883  * Get the next element of the iterator
6884  * @param i Pointer to a xcb_input_device_abs_area_state_iterator_t
6885  *
6886  * Get the next element in the iterator. The member rem is
6887  * decreased by one. The member data points to the next
6888  * element. The member index is increased by sizeof(xcb_input_device_abs_area_state_t)
6889  */
6890 void
6891 xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i);
6892 
6893 /**
6894  * Return the iterator pointing to the last element
6895  * @param i An xcb_input_device_abs_area_state_iterator_t
6896  * @return  The iterator pointing to the last element
6897  *
6898  * Set the current element in the iterator to the last element.
6899  * The member rem is set to 0. The member data points to the
6900  * last element.
6901  */
6902 xcb_generic_iterator_t
6903 xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i);
6904 
6905 /**
6906  * Get the next element of the iterator
6907  * @param i Pointer to a xcb_input_device_core_state_iterator_t
6908  *
6909  * Get the next element in the iterator. The member rem is
6910  * decreased by one. The member data points to the next
6911  * element. The member index is increased by sizeof(xcb_input_device_core_state_t)
6912  */
6913 void
6914 xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i);
6915 
6916 /**
6917  * Return the iterator pointing to the last element
6918  * @param i An xcb_input_device_core_state_iterator_t
6919  * @return  The iterator pointing to the last element
6920  *
6921  * Set the current element in the iterator to the last element.
6922  * The member rem is set to 0. The member data points to the
6923  * last element.
6924  */
6925 xcb_generic_iterator_t
6926 xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i);
6927 
6928 /**
6929  * Get the next element of the iterator
6930  * @param i Pointer to a xcb_input_device_enable_state_iterator_t
6931  *
6932  * Get the next element in the iterator. The member rem is
6933  * decreased by one. The member data points to the next
6934  * element. The member index is increased by sizeof(xcb_input_device_enable_state_t)
6935  */
6936 void
6937 xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i);
6938 
6939 /**
6940  * Return the iterator pointing to the last element
6941  * @param i An xcb_input_device_enable_state_iterator_t
6942  * @return  The iterator pointing to the last element
6943  *
6944  * Set the current element in the iterator to the last element.
6945  * The member rem is set to 0. The member data points to the
6946  * last element.
6947  */
6948 xcb_generic_iterator_t
6949 xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i);
6950 
6951 uint32_t *
6952 xcb_input_device_state_data_resolution_resolution_values (const xcb_input_device_state_data_t *S);
6953 
6954 int
6955 xcb_input_device_state_data_resolution_resolution_values_length (const xcb_input_device_state_t *R,
6956                                                                  const xcb_input_device_state_data_t *S);
6957 
6958 xcb_generic_iterator_t
6959 xcb_input_device_state_data_resolution_resolution_values_end (const xcb_input_device_state_t *R,
6960                                                               const xcb_input_device_state_data_t *S);
6961 
6962 uint32_t *
6963 xcb_input_device_state_data_resolution_resolution_min (const xcb_input_device_state_data_t *S);
6964 
6965 int
6966 xcb_input_device_state_data_resolution_resolution_min_length (const xcb_input_device_state_t *R,
6967                                                               const xcb_input_device_state_data_t *S);
6968 
6969 xcb_generic_iterator_t
6970 xcb_input_device_state_data_resolution_resolution_min_end (const xcb_input_device_state_t *R,
6971                                                            const xcb_input_device_state_data_t *S);
6972 
6973 uint32_t *
6974 xcb_input_device_state_data_resolution_resolution_max (const xcb_input_device_state_data_t *S);
6975 
6976 int
6977 xcb_input_device_state_data_resolution_resolution_max_length (const xcb_input_device_state_t *R,
6978                                                               const xcb_input_device_state_data_t *S);
6979 
6980 xcb_generic_iterator_t
6981 xcb_input_device_state_data_resolution_resolution_max_end (const xcb_input_device_state_t *R,
6982                                                            const xcb_input_device_state_data_t *S);
6983 
6984 int
6985 xcb_input_device_state_data_serialize (void                                **_buffer,
6986                                        uint16_t                              control_id,
6987                                        const xcb_input_device_state_data_t  *_aux);
6988 
6989 int
6990 xcb_input_device_state_data_unpack (const void                     *_buffer,
6991                                     uint16_t                        control_id,
6992                                     xcb_input_device_state_data_t  *_aux);
6993 
6994 int
6995 xcb_input_device_state_data_sizeof (const void  *_buffer,
6996                                     uint16_t     control_id);
6997 
6998 int
6999 xcb_input_device_state_sizeof (const void  *_buffer);
7000 
7001 /**
7002  * Get the next element of the iterator
7003  * @param i Pointer to a xcb_input_device_state_iterator_t
7004  *
7005  * Get the next element in the iterator. The member rem is
7006  * decreased by one. The member data points to the next
7007  * element. The member index is increased by sizeof(xcb_input_device_state_t)
7008  */
7009 void
7010 xcb_input_device_state_next (xcb_input_device_state_iterator_t *i);
7011 
7012 /**
7013  * Return the iterator pointing to the last element
7014  * @param i An xcb_input_device_state_iterator_t
7015  * @return  The iterator pointing to the last element
7016  *
7017  * Set the current element in the iterator to the last element.
7018  * The member rem is set to 0. The member data points to the
7019  * last element.
7020  */
7021 xcb_generic_iterator_t
7022 xcb_input_device_state_end (xcb_input_device_state_iterator_t i);
7023 
7024 int
7025 xcb_input_get_device_control_sizeof (const void  *_buffer);
7026 
7027 /**
7028  *
7029  * @param c The connection
7030  * @return A cookie
7031  *
7032  * Delivers a request to the X server.
7033  *
7034  */
7035 xcb_input_get_device_control_cookie_t
7036 xcb_input_get_device_control (xcb_connection_t *c,
7037                               uint16_t          control_id,
7038                               uint8_t           device_id);
7039 
7040 /**
7041  *
7042  * @param c The connection
7043  * @return A cookie
7044  *
7045  * Delivers a request to the X server.
7046  *
7047  * This form can be used only if the request will cause
7048  * a reply to be generated. Any returned error will be
7049  * placed in the event queue.
7050  */
7051 xcb_input_get_device_control_cookie_t
7052 xcb_input_get_device_control_unchecked (xcb_connection_t *c,
7053                                         uint16_t          control_id,
7054                                         uint8_t           device_id);
7055 
7056 xcb_input_device_state_t *
7057 xcb_input_get_device_control_control (const xcb_input_get_device_control_reply_t *R);
7058 
7059 /**
7060  * Return the reply
7061  * @param c      The connection
7062  * @param cookie The cookie
7063  * @param e      The xcb_generic_error_t supplied
7064  *
7065  * Returns the reply of the request asked by
7066  *
7067  * The parameter @p e supplied to this function must be NULL if
7068  * xcb_input_get_device_control_unchecked(). is used.
7069  * Otherwise, it stores the error if any.
7070  *
7071  * The returned value must be freed by the caller using free().
7072  */
7073 xcb_input_get_device_control_reply_t *
7074 xcb_input_get_device_control_reply (xcb_connection_t                       *c,
7075                                     xcb_input_get_device_control_cookie_t   cookie  /**< */,
7076                                     xcb_generic_error_t                   **e);
7077 
7078 int
7079 xcb_input_device_resolution_ctl_sizeof (const void  *_buffer);
7080 
7081 uint32_t *
7082 xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R);
7083 
7084 int
7085 xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R);
7086 
7087 xcb_generic_iterator_t
7088 xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R);
7089 
7090 /**
7091  * Get the next element of the iterator
7092  * @param i Pointer to a xcb_input_device_resolution_ctl_iterator_t
7093  *
7094  * Get the next element in the iterator. The member rem is
7095  * decreased by one. The member data points to the next
7096  * element. The member index is increased by sizeof(xcb_input_device_resolution_ctl_t)
7097  */
7098 void
7099 xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i);
7100 
7101 /**
7102  * Return the iterator pointing to the last element
7103  * @param i An xcb_input_device_resolution_ctl_iterator_t
7104  * @return  The iterator pointing to the last element
7105  *
7106  * Set the current element in the iterator to the last element.
7107  * The member rem is set to 0. The member data points to the
7108  * last element.
7109  */
7110 xcb_generic_iterator_t
7111 xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i);
7112 
7113 /**
7114  * Get the next element of the iterator
7115  * @param i Pointer to a xcb_input_device_abs_calib_ctl_iterator_t
7116  *
7117  * Get the next element in the iterator. The member rem is
7118  * decreased by one. The member data points to the next
7119  * element. The member index is increased by sizeof(xcb_input_device_abs_calib_ctl_t)
7120  */
7121 void
7122 xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i);
7123 
7124 /**
7125  * Return the iterator pointing to the last element
7126  * @param i An xcb_input_device_abs_calib_ctl_iterator_t
7127  * @return  The iterator pointing to the last element
7128  *
7129  * Set the current element in the iterator to the last element.
7130  * The member rem is set to 0. The member data points to the
7131  * last element.
7132  */
7133 xcb_generic_iterator_t
7134 xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i);
7135 
7136 /**
7137  * Get the next element of the iterator
7138  * @param i Pointer to a xcb_input_device_abs_area_ctrl_iterator_t
7139  *
7140  * Get the next element in the iterator. The member rem is
7141  * decreased by one. The member data points to the next
7142  * element. The member index is increased by sizeof(xcb_input_device_abs_area_ctrl_t)
7143  */
7144 void
7145 xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i);
7146 
7147 /**
7148  * Return the iterator pointing to the last element
7149  * @param i An xcb_input_device_abs_area_ctrl_iterator_t
7150  * @return  The iterator pointing to the last element
7151  *
7152  * Set the current element in the iterator to the last element.
7153  * The member rem is set to 0. The member data points to the
7154  * last element.
7155  */
7156 xcb_generic_iterator_t
7157 xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i);
7158 
7159 /**
7160  * Get the next element of the iterator
7161  * @param i Pointer to a xcb_input_device_core_ctrl_iterator_t
7162  *
7163  * Get the next element in the iterator. The member rem is
7164  * decreased by one. The member data points to the next
7165  * element. The member index is increased by sizeof(xcb_input_device_core_ctrl_t)
7166  */
7167 void
7168 xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i);
7169 
7170 /**
7171  * Return the iterator pointing to the last element
7172  * @param i An xcb_input_device_core_ctrl_iterator_t
7173  * @return  The iterator pointing to the last element
7174  *
7175  * Set the current element in the iterator to the last element.
7176  * The member rem is set to 0. The member data points to the
7177  * last element.
7178  */
7179 xcb_generic_iterator_t
7180 xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i);
7181 
7182 /**
7183  * Get the next element of the iterator
7184  * @param i Pointer to a xcb_input_device_enable_ctrl_iterator_t
7185  *
7186  * Get the next element in the iterator. The member rem is
7187  * decreased by one. The member data points to the next
7188  * element. The member index is increased by sizeof(xcb_input_device_enable_ctrl_t)
7189  */
7190 void
7191 xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i);
7192 
7193 /**
7194  * Return the iterator pointing to the last element
7195  * @param i An xcb_input_device_enable_ctrl_iterator_t
7196  * @return  The iterator pointing to the last element
7197  *
7198  * Set the current element in the iterator to the last element.
7199  * The member rem is set to 0. The member data points to the
7200  * last element.
7201  */
7202 xcb_generic_iterator_t
7203 xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i);
7204 
7205 uint32_t *
7206 xcb_input_device_ctl_data_resolution_resolution_values (const xcb_input_device_ctl_data_t *S);
7207 
7208 int
7209 xcb_input_device_ctl_data_resolution_resolution_values_length (const xcb_input_device_ctl_t *R,
7210                                                                const xcb_input_device_ctl_data_t *S);
7211 
7212 xcb_generic_iterator_t
7213 xcb_input_device_ctl_data_resolution_resolution_values_end (const xcb_input_device_ctl_t *R,
7214                                                             const xcb_input_device_ctl_data_t *S);
7215 
7216 int
7217 xcb_input_device_ctl_data_serialize (void                              **_buffer,
7218                                      uint16_t                            control_id,
7219                                      const xcb_input_device_ctl_data_t  *_aux);
7220 
7221 int
7222 xcb_input_device_ctl_data_unpack (const void                   *_buffer,
7223                                   uint16_t                      control_id,
7224                                   xcb_input_device_ctl_data_t  *_aux);
7225 
7226 int
7227 xcb_input_device_ctl_data_sizeof (const void  *_buffer,
7228                                   uint16_t     control_id);
7229 
7230 int
7231 xcb_input_device_ctl_sizeof (const void  *_buffer);
7232 
7233 /**
7234  * Get the next element of the iterator
7235  * @param i Pointer to a xcb_input_device_ctl_iterator_t
7236  *
7237  * Get the next element in the iterator. The member rem is
7238  * decreased by one. The member data points to the next
7239  * element. The member index is increased by sizeof(xcb_input_device_ctl_t)
7240  */
7241 void
7242 xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i);
7243 
7244 /**
7245  * Return the iterator pointing to the last element
7246  * @param i An xcb_input_device_ctl_iterator_t
7247  * @return  The iterator pointing to the last element
7248  *
7249  * Set the current element in the iterator to the last element.
7250  * The member rem is set to 0. The member data points to the
7251  * last element.
7252  */
7253 xcb_generic_iterator_t
7254 xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i);
7255 
7256 int
7257 xcb_input_change_device_control_sizeof (const void  *_buffer);
7258 
7259 /**
7260  *
7261  * @param c The connection
7262  * @return A cookie
7263  *
7264  * Delivers a request to the X server.
7265  *
7266  */
7267 xcb_input_change_device_control_cookie_t
7268 xcb_input_change_device_control (xcb_connection_t       *c,
7269                                  uint16_t                control_id,
7270                                  uint8_t                 device_id,
7271                                  xcb_input_device_ctl_t *control);
7272 
7273 /**
7274  *
7275  * @param c The connection
7276  * @return A cookie
7277  *
7278  * Delivers a request to the X server.
7279  *
7280  * This form can be used only if the request will cause
7281  * a reply to be generated. Any returned error will be
7282  * placed in the event queue.
7283  */
7284 xcb_input_change_device_control_cookie_t
7285 xcb_input_change_device_control_unchecked (xcb_connection_t       *c,
7286                                            uint16_t                control_id,
7287                                            uint8_t                 device_id,
7288                                            xcb_input_device_ctl_t *control);
7289 
7290 /**
7291  * Return the reply
7292  * @param c      The connection
7293  * @param cookie The cookie
7294  * @param e      The xcb_generic_error_t supplied
7295  *
7296  * Returns the reply of the request asked by
7297  *
7298  * The parameter @p e supplied to this function must be NULL if
7299  * xcb_input_change_device_control_unchecked(). is used.
7300  * Otherwise, it stores the error if any.
7301  *
7302  * The returned value must be freed by the caller using free().
7303  */
7304 xcb_input_change_device_control_reply_t *
7305 xcb_input_change_device_control_reply (xcb_connection_t                          *c,
7306                                        xcb_input_change_device_control_cookie_t   cookie  /**< */,
7307                                        xcb_generic_error_t                      **e);
7308 
7309 int
7310 xcb_input_list_device_properties_sizeof (const void  *_buffer);
7311 
7312 /**
7313  *
7314  * @param c The connection
7315  * @return A cookie
7316  *
7317  * Delivers a request to the X server.
7318  *
7319  */
7320 xcb_input_list_device_properties_cookie_t
7321 xcb_input_list_device_properties (xcb_connection_t *c,
7322                                   uint8_t           device_id);
7323 
7324 /**
7325  *
7326  * @param c The connection
7327  * @return A cookie
7328  *
7329  * Delivers a request to the X server.
7330  *
7331  * This form can be used only if the request will cause
7332  * a reply to be generated. Any returned error will be
7333  * placed in the event queue.
7334  */
7335 xcb_input_list_device_properties_cookie_t
7336 xcb_input_list_device_properties_unchecked (xcb_connection_t *c,
7337                                             uint8_t           device_id);
7338 
7339 xcb_atom_t *
7340 xcb_input_list_device_properties_atoms (const xcb_input_list_device_properties_reply_t *R);
7341 
7342 int
7343 xcb_input_list_device_properties_atoms_length (const xcb_input_list_device_properties_reply_t *R);
7344 
7345 xcb_generic_iterator_t
7346 xcb_input_list_device_properties_atoms_end (const xcb_input_list_device_properties_reply_t *R);
7347 
7348 /**
7349  * Return the reply
7350  * @param c      The connection
7351  * @param cookie The cookie
7352  * @param e      The xcb_generic_error_t supplied
7353  *
7354  * Returns the reply of the request asked by
7355  *
7356  * The parameter @p e supplied to this function must be NULL if
7357  * xcb_input_list_device_properties_unchecked(). is used.
7358  * Otherwise, it stores the error if any.
7359  *
7360  * The returned value must be freed by the caller using free().
7361  */
7362 xcb_input_list_device_properties_reply_t *
7363 xcb_input_list_device_properties_reply (xcb_connection_t                           *c,
7364                                         xcb_input_list_device_properties_cookie_t   cookie  /**< */,
7365                                         xcb_generic_error_t                       **e);
7366 
7367 uint8_t *
7368 xcb_input_change_device_property_items_data_8 (const xcb_input_change_device_property_items_t *S);
7369 
7370 int
7371 xcb_input_change_device_property_items_data_8_length (const xcb_input_change_device_property_request_t *R,
7372                                                       const xcb_input_change_device_property_items_t *S);
7373 
7374 xcb_generic_iterator_t
7375 xcb_input_change_device_property_items_data_8_end (const xcb_input_change_device_property_request_t *R,
7376                                                    const xcb_input_change_device_property_items_t *S);
7377 
7378 uint16_t *
7379 xcb_input_change_device_property_items_data_16 (const xcb_input_change_device_property_items_t *S);
7380 
7381 int
7382 xcb_input_change_device_property_items_data_16_length (const xcb_input_change_device_property_request_t *R,
7383                                                        const xcb_input_change_device_property_items_t *S);
7384 
7385 xcb_generic_iterator_t
7386 xcb_input_change_device_property_items_data_16_end (const xcb_input_change_device_property_request_t *R,
7387                                                     const xcb_input_change_device_property_items_t *S);
7388 
7389 uint32_t *
7390 xcb_input_change_device_property_items_data_32 (const xcb_input_change_device_property_items_t *S);
7391 
7392 int
7393 xcb_input_change_device_property_items_data_32_length (const xcb_input_change_device_property_request_t *R,
7394                                                        const xcb_input_change_device_property_items_t *S);
7395 
7396 xcb_generic_iterator_t
7397 xcb_input_change_device_property_items_data_32_end (const xcb_input_change_device_property_request_t *R,
7398                                                     const xcb_input_change_device_property_items_t *S);
7399 
7400 int
7401 xcb_input_change_device_property_items_serialize (void                                           **_buffer,
7402                                                   uint32_t                                         num_items,
7403                                                   uint8_t                                          format,
7404                                                   const xcb_input_change_device_property_items_t  *_aux);
7405 
7406 int
7407 xcb_input_change_device_property_items_unpack (const void                                *_buffer,
7408                                                uint32_t                                   num_items,
7409                                                uint8_t                                    format,
7410                                                xcb_input_change_device_property_items_t  *_aux);
7411 
7412 int
7413 xcb_input_change_device_property_items_sizeof (const void  *_buffer,
7414                                                uint32_t     num_items,
7415                                                uint8_t      format);
7416 
7417 int
7418 xcb_input_change_device_property_sizeof (const void  *_buffer);
7419 
7420 /**
7421  *
7422  * @param c The connection
7423  * @return A cookie
7424  *
7425  * Delivers a request to the X server.
7426  *
7427  * This form can be used only if the request will not cause
7428  * a reply to be generated. Any returned error will be
7429  * saved for handling by xcb_request_check().
7430  */
7431 xcb_void_cookie_t
7432 xcb_input_change_device_property_checked (xcb_connection_t *c,
7433                                           xcb_atom_t        property,
7434                                           xcb_atom_t        type,
7435                                           uint8_t           device_id,
7436                                           uint8_t           format,
7437                                           uint8_t           mode,
7438                                           uint32_t          num_items,
7439                                           const void       *items);
7440 
7441 /**
7442  *
7443  * @param c The connection
7444  * @return A cookie
7445  *
7446  * Delivers a request to the X server.
7447  *
7448  */
7449 xcb_void_cookie_t
7450 xcb_input_change_device_property (xcb_connection_t *c,
7451                                   xcb_atom_t        property,
7452                                   xcb_atom_t        type,
7453                                   uint8_t           device_id,
7454                                   uint8_t           format,
7455                                   uint8_t           mode,
7456                                   uint32_t          num_items,
7457                                   const void       *items);
7458 
7459 /**
7460  *
7461  * @param c The connection
7462  * @return A cookie
7463  *
7464  * Delivers a request to the X server.
7465  *
7466  * This form can be used only if the request will not cause
7467  * a reply to be generated. Any returned error will be
7468  * saved for handling by xcb_request_check().
7469  */
7470 xcb_void_cookie_t
7471 xcb_input_change_device_property_aux_checked (xcb_connection_t                               *c,
7472                                               xcb_atom_t                                      property,
7473                                               xcb_atom_t                                      type,
7474                                               uint8_t                                         device_id,
7475                                               uint8_t                                         format,
7476                                               uint8_t                                         mode,
7477                                               uint32_t                                        num_items,
7478                                               const xcb_input_change_device_property_items_t *items);
7479 
7480 /**
7481  *
7482  * @param c The connection
7483  * @return A cookie
7484  *
7485  * Delivers a request to the X server.
7486  *
7487  */
7488 xcb_void_cookie_t
7489 xcb_input_change_device_property_aux (xcb_connection_t                               *c,
7490                                       xcb_atom_t                                      property,
7491                                       xcb_atom_t                                      type,
7492                                       uint8_t                                         device_id,
7493                                       uint8_t                                         format,
7494                                       uint8_t                                         mode,
7495                                       uint32_t                                        num_items,
7496                                       const xcb_input_change_device_property_items_t *items);
7497 
7498 void *
7499 xcb_input_change_device_property_items (const xcb_input_change_device_property_request_t *R);
7500 
7501 /**
7502  *
7503  * @param c The connection
7504  * @return A cookie
7505  *
7506  * Delivers a request to the X server.
7507  *
7508  * This form can be used only if the request will not cause
7509  * a reply to be generated. Any returned error will be
7510  * saved for handling by xcb_request_check().
7511  */
7512 xcb_void_cookie_t
7513 xcb_input_delete_device_property_checked (xcb_connection_t *c,
7514                                           xcb_atom_t        property,
7515                                           uint8_t           device_id);
7516 
7517 /**
7518  *
7519  * @param c The connection
7520  * @return A cookie
7521  *
7522  * Delivers a request to the X server.
7523  *
7524  */
7525 xcb_void_cookie_t
7526 xcb_input_delete_device_property (xcb_connection_t *c,
7527                                   xcb_atom_t        property,
7528                                   uint8_t           device_id);
7529 
7530 uint8_t *
7531 xcb_input_get_device_property_items_data_8 (const xcb_input_get_device_property_items_t *S);
7532 
7533 int
7534 xcb_input_get_device_property_items_data_8_length (const xcb_input_get_device_property_reply_t *R,
7535                                                    const xcb_input_get_device_property_items_t *S);
7536 
7537 xcb_generic_iterator_t
7538 xcb_input_get_device_property_items_data_8_end (const xcb_input_get_device_property_reply_t *R,
7539                                                 const xcb_input_get_device_property_items_t *S);
7540 
7541 uint16_t *
7542 xcb_input_get_device_property_items_data_16 (const xcb_input_get_device_property_items_t *S);
7543 
7544 int
7545 xcb_input_get_device_property_items_data_16_length (const xcb_input_get_device_property_reply_t *R,
7546                                                     const xcb_input_get_device_property_items_t *S);
7547 
7548 xcb_generic_iterator_t
7549 xcb_input_get_device_property_items_data_16_end (const xcb_input_get_device_property_reply_t *R,
7550                                                  const xcb_input_get_device_property_items_t *S);
7551 
7552 uint32_t *
7553 xcb_input_get_device_property_items_data_32 (const xcb_input_get_device_property_items_t *S);
7554 
7555 int
7556 xcb_input_get_device_property_items_data_32_length (const xcb_input_get_device_property_reply_t *R,
7557                                                     const xcb_input_get_device_property_items_t *S);
7558 
7559 xcb_generic_iterator_t
7560 xcb_input_get_device_property_items_data_32_end (const xcb_input_get_device_property_reply_t *R,
7561                                                  const xcb_input_get_device_property_items_t *S);
7562 
7563 int
7564 xcb_input_get_device_property_items_serialize (void                                        **_buffer,
7565                                                uint32_t                                      num_items,
7566                                                uint8_t                                       format,
7567                                                const xcb_input_get_device_property_items_t  *_aux);
7568 
7569 int
7570 xcb_input_get_device_property_items_unpack (const void                             *_buffer,
7571                                             uint32_t                                num_items,
7572                                             uint8_t                                 format,
7573                                             xcb_input_get_device_property_items_t  *_aux);
7574 
7575 int
7576 xcb_input_get_device_property_items_sizeof (const void  *_buffer,
7577                                             uint32_t     num_items,
7578                                             uint8_t      format);
7579 
7580 int
7581 xcb_input_get_device_property_sizeof (const void  *_buffer);
7582 
7583 /**
7584  *
7585  * @param c The connection
7586  * @return A cookie
7587  *
7588  * Delivers a request to the X server.
7589  *
7590  */
7591 xcb_input_get_device_property_cookie_t
7592 xcb_input_get_device_property (xcb_connection_t *c,
7593                                xcb_atom_t        property,
7594                                xcb_atom_t        type,
7595                                uint32_t          offset,
7596                                uint32_t          len,
7597                                uint8_t           device_id,
7598                                uint8_t           _delete);
7599 
7600 /**
7601  *
7602  * @param c The connection
7603  * @return A cookie
7604  *
7605  * Delivers a request to the X server.
7606  *
7607  * This form can be used only if the request will cause
7608  * a reply to be generated. Any returned error will be
7609  * placed in the event queue.
7610  */
7611 xcb_input_get_device_property_cookie_t
7612 xcb_input_get_device_property_unchecked (xcb_connection_t *c,
7613                                          xcb_atom_t        property,
7614                                          xcb_atom_t        type,
7615                                          uint32_t          offset,
7616                                          uint32_t          len,
7617                                          uint8_t           device_id,
7618                                          uint8_t           _delete);
7619 
7620 void *
7621 xcb_input_get_device_property_items (const xcb_input_get_device_property_reply_t *R);
7622 
7623 /**
7624  * Return the reply
7625  * @param c      The connection
7626  * @param cookie The cookie
7627  * @param e      The xcb_generic_error_t supplied
7628  *
7629  * Returns the reply of the request asked by
7630  *
7631  * The parameter @p e supplied to this function must be NULL if
7632  * xcb_input_get_device_property_unchecked(). is used.
7633  * Otherwise, it stores the error if any.
7634  *
7635  * The returned value must be freed by the caller using free().
7636  */
7637 xcb_input_get_device_property_reply_t *
7638 xcb_input_get_device_property_reply (xcb_connection_t                        *c,
7639                                      xcb_input_get_device_property_cookie_t   cookie  /**< */,
7640                                      xcb_generic_error_t                    **e);
7641 
7642 /**
7643  * Get the next element of the iterator
7644  * @param i Pointer to a xcb_input_group_info_iterator_t
7645  *
7646  * Get the next element in the iterator. The member rem is
7647  * decreased by one. The member data points to the next
7648  * element. The member index is increased by sizeof(xcb_input_group_info_t)
7649  */
7650 void
7651 xcb_input_group_info_next (xcb_input_group_info_iterator_t *i);
7652 
7653 /**
7654  * Return the iterator pointing to the last element
7655  * @param i An xcb_input_group_info_iterator_t
7656  * @return  The iterator pointing to the last element
7657  *
7658  * Set the current element in the iterator to the last element.
7659  * The member rem is set to 0. The member data points to the
7660  * last element.
7661  */
7662 xcb_generic_iterator_t
7663 xcb_input_group_info_end (xcb_input_group_info_iterator_t i);
7664 
7665 /**
7666  * Get the next element of the iterator
7667  * @param i Pointer to a xcb_input_modifier_info_iterator_t
7668  *
7669  * Get the next element in the iterator. The member rem is
7670  * decreased by one. The member data points to the next
7671  * element. The member index is increased by sizeof(xcb_input_modifier_info_t)
7672  */
7673 void
7674 xcb_input_modifier_info_next (xcb_input_modifier_info_iterator_t *i);
7675 
7676 /**
7677  * Return the iterator pointing to the last element
7678  * @param i An xcb_input_modifier_info_iterator_t
7679  * @return  The iterator pointing to the last element
7680  *
7681  * Set the current element in the iterator to the last element.
7682  * The member rem is set to 0. The member data points to the
7683  * last element.
7684  */
7685 xcb_generic_iterator_t
7686 xcb_input_modifier_info_end (xcb_input_modifier_info_iterator_t i);
7687 
7688 int
7689 xcb_input_xi_query_pointer_sizeof (const void  *_buffer);
7690 
7691 /**
7692  *
7693  * @param c The connection
7694  * @return A cookie
7695  *
7696  * Delivers a request to the X server.
7697  *
7698  */
7699 xcb_input_xi_query_pointer_cookie_t
7700 xcb_input_xi_query_pointer (xcb_connection_t      *c,
7701                             xcb_window_t           window,
7702                             xcb_input_device_id_t  deviceid);
7703 
7704 /**
7705  *
7706  * @param c The connection
7707  * @return A cookie
7708  *
7709  * Delivers a request to the X server.
7710  *
7711  * This form can be used only if the request will cause
7712  * a reply to be generated. Any returned error will be
7713  * placed in the event queue.
7714  */
7715 xcb_input_xi_query_pointer_cookie_t
7716 xcb_input_xi_query_pointer_unchecked (xcb_connection_t      *c,
7717                                       xcb_window_t           window,
7718                                       xcb_input_device_id_t  deviceid);
7719 
7720 uint32_t *
7721 xcb_input_xi_query_pointer_buttons (const xcb_input_xi_query_pointer_reply_t *R);
7722 
7723 int
7724 xcb_input_xi_query_pointer_buttons_length (const xcb_input_xi_query_pointer_reply_t *R);
7725 
7726 xcb_generic_iterator_t
7727 xcb_input_xi_query_pointer_buttons_end (const xcb_input_xi_query_pointer_reply_t *R);
7728 
7729 /**
7730  * Return the reply
7731  * @param c      The connection
7732  * @param cookie The cookie
7733  * @param e      The xcb_generic_error_t supplied
7734  *
7735  * Returns the reply of the request asked by
7736  *
7737  * The parameter @p e supplied to this function must be NULL if
7738  * xcb_input_xi_query_pointer_unchecked(). is used.
7739  * Otherwise, it stores the error if any.
7740  *
7741  * The returned value must be freed by the caller using free().
7742  */
7743 xcb_input_xi_query_pointer_reply_t *
7744 xcb_input_xi_query_pointer_reply (xcb_connection_t                     *c,
7745                                   xcb_input_xi_query_pointer_cookie_t   cookie  /**< */,
7746                                   xcb_generic_error_t                 **e);
7747 
7748 /**
7749  *
7750  * @param c The connection
7751  * @return A cookie
7752  *
7753  * Delivers a request to the X server.
7754  *
7755  * This form can be used only if the request will not cause
7756  * a reply to be generated. Any returned error will be
7757  * saved for handling by xcb_request_check().
7758  */
7759 xcb_void_cookie_t
7760 xcb_input_xi_warp_pointer_checked (xcb_connection_t      *c,
7761                                    xcb_window_t           src_win,
7762                                    xcb_window_t           dst_win,
7763                                    xcb_input_fp1616_t     src_x,
7764                                    xcb_input_fp1616_t     src_y,
7765                                    uint16_t               src_width,
7766                                    uint16_t               src_height,
7767                                    xcb_input_fp1616_t     dst_x,
7768                                    xcb_input_fp1616_t     dst_y,
7769                                    xcb_input_device_id_t  deviceid);
7770 
7771 /**
7772  *
7773  * @param c The connection
7774  * @return A cookie
7775  *
7776  * Delivers a request to the X server.
7777  *
7778  */
7779 xcb_void_cookie_t
7780 xcb_input_xi_warp_pointer (xcb_connection_t      *c,
7781                            xcb_window_t           src_win,
7782                            xcb_window_t           dst_win,
7783                            xcb_input_fp1616_t     src_x,
7784                            xcb_input_fp1616_t     src_y,
7785                            uint16_t               src_width,
7786                            uint16_t               src_height,
7787                            xcb_input_fp1616_t     dst_x,
7788                            xcb_input_fp1616_t     dst_y,
7789                            xcb_input_device_id_t  deviceid);
7790 
7791 /**
7792  *
7793  * @param c The connection
7794  * @return A cookie
7795  *
7796  * Delivers a request to the X server.
7797  *
7798  * This form can be used only if the request will not cause
7799  * a reply to be generated. Any returned error will be
7800  * saved for handling by xcb_request_check().
7801  */
7802 xcb_void_cookie_t
7803 xcb_input_xi_change_cursor_checked (xcb_connection_t      *c,
7804                                     xcb_window_t           window,
7805                                     xcb_cursor_t           cursor,
7806                                     xcb_input_device_id_t  deviceid);
7807 
7808 /**
7809  *
7810  * @param c The connection
7811  * @return A cookie
7812  *
7813  * Delivers a request to the X server.
7814  *
7815  */
7816 xcb_void_cookie_t
7817 xcb_input_xi_change_cursor (xcb_connection_t      *c,
7818                             xcb_window_t           window,
7819                             xcb_cursor_t           cursor,
7820                             xcb_input_device_id_t  deviceid);
7821 
7822 int
7823 xcb_input_add_master_sizeof (const void  *_buffer);
7824 
7825 char *
7826 xcb_input_add_master_name (const xcb_input_add_master_t *R);
7827 
7828 int
7829 xcb_input_add_master_name_length (const xcb_input_add_master_t *R);
7830 
7831 xcb_generic_iterator_t
7832 xcb_input_add_master_name_end (const xcb_input_add_master_t *R);
7833 
7834 /**
7835  * Get the next element of the iterator
7836  * @param i Pointer to a xcb_input_add_master_iterator_t
7837  *
7838  * Get the next element in the iterator. The member rem is
7839  * decreased by one. The member data points to the next
7840  * element. The member index is increased by sizeof(xcb_input_add_master_t)
7841  */
7842 void
7843 xcb_input_add_master_next (xcb_input_add_master_iterator_t *i);
7844 
7845 /**
7846  * Return the iterator pointing to the last element
7847  * @param i An xcb_input_add_master_iterator_t
7848  * @return  The iterator pointing to the last element
7849  *
7850  * Set the current element in the iterator to the last element.
7851  * The member rem is set to 0. The member data points to the
7852  * last element.
7853  */
7854 xcb_generic_iterator_t
7855 xcb_input_add_master_end (xcb_input_add_master_iterator_t i);
7856 
7857 /**
7858  * Get the next element of the iterator
7859  * @param i Pointer to a xcb_input_remove_master_iterator_t
7860  *
7861  * Get the next element in the iterator. The member rem is
7862  * decreased by one. The member data points to the next
7863  * element. The member index is increased by sizeof(xcb_input_remove_master_t)
7864  */
7865 void
7866 xcb_input_remove_master_next (xcb_input_remove_master_iterator_t *i);
7867 
7868 /**
7869  * Return the iterator pointing to the last element
7870  * @param i An xcb_input_remove_master_iterator_t
7871  * @return  The iterator pointing to the last element
7872  *
7873  * Set the current element in the iterator to the last element.
7874  * The member rem is set to 0. The member data points to the
7875  * last element.
7876  */
7877 xcb_generic_iterator_t
7878 xcb_input_remove_master_end (xcb_input_remove_master_iterator_t i);
7879 
7880 /**
7881  * Get the next element of the iterator
7882  * @param i Pointer to a xcb_input_attach_slave_iterator_t
7883  *
7884  * Get the next element in the iterator. The member rem is
7885  * decreased by one. The member data points to the next
7886  * element. The member index is increased by sizeof(xcb_input_attach_slave_t)
7887  */
7888 void
7889 xcb_input_attach_slave_next (xcb_input_attach_slave_iterator_t *i);
7890 
7891 /**
7892  * Return the iterator pointing to the last element
7893  * @param i An xcb_input_attach_slave_iterator_t
7894  * @return  The iterator pointing to the last element
7895  *
7896  * Set the current element in the iterator to the last element.
7897  * The member rem is set to 0. The member data points to the
7898  * last element.
7899  */
7900 xcb_generic_iterator_t
7901 xcb_input_attach_slave_end (xcb_input_attach_slave_iterator_t i);
7902 
7903 /**
7904  * Get the next element of the iterator
7905  * @param i Pointer to a xcb_input_detach_slave_iterator_t
7906  *
7907  * Get the next element in the iterator. The member rem is
7908  * decreased by one. The member data points to the next
7909  * element. The member index is increased by sizeof(xcb_input_detach_slave_t)
7910  */
7911 void
7912 xcb_input_detach_slave_next (xcb_input_detach_slave_iterator_t *i);
7913 
7914 /**
7915  * Return the iterator pointing to the last element
7916  * @param i An xcb_input_detach_slave_iterator_t
7917  * @return  The iterator pointing to the last element
7918  *
7919  * Set the current element in the iterator to the last element.
7920  * The member rem is set to 0. The member data points to the
7921  * last element.
7922  */
7923 xcb_generic_iterator_t
7924 xcb_input_detach_slave_end (xcb_input_detach_slave_iterator_t i);
7925 
7926 char *
7927 xcb_input_hierarchy_change_data_add_master_name (const xcb_input_hierarchy_change_data_t *S);
7928 
7929 int
7930 xcb_input_hierarchy_change_data_add_master_name_length (const xcb_input_hierarchy_change_t *R,
7931                                                         const xcb_input_hierarchy_change_data_t *S);
7932 
7933 xcb_generic_iterator_t
7934 xcb_input_hierarchy_change_data_add_master_name_end (const xcb_input_hierarchy_change_t *R,
7935                                                      const xcb_input_hierarchy_change_data_t *S);
7936 
7937 int
7938 xcb_input_hierarchy_change_data_serialize (void                                    **_buffer,
7939                                            uint16_t                                  type,
7940                                            const xcb_input_hierarchy_change_data_t  *_aux);
7941 
7942 int
7943 xcb_input_hierarchy_change_data_unpack (const void                         *_buffer,
7944                                         uint16_t                            type,
7945                                         xcb_input_hierarchy_change_data_t  *_aux);
7946 
7947 int
7948 xcb_input_hierarchy_change_data_sizeof (const void  *_buffer,
7949                                         uint16_t     type);
7950 
7951 int
7952 xcb_input_hierarchy_change_sizeof (const void  *_buffer);
7953 
7954 /**
7955  * Get the next element of the iterator
7956  * @param i Pointer to a xcb_input_hierarchy_change_iterator_t
7957  *
7958  * Get the next element in the iterator. The member rem is
7959  * decreased by one. The member data points to the next
7960  * element. The member index is increased by sizeof(xcb_input_hierarchy_change_t)
7961  */
7962 void
7963 xcb_input_hierarchy_change_next (xcb_input_hierarchy_change_iterator_t *i);
7964 
7965 /**
7966  * Return the iterator pointing to the last element
7967  * @param i An xcb_input_hierarchy_change_iterator_t
7968  * @return  The iterator pointing to the last element
7969  *
7970  * Set the current element in the iterator to the last element.
7971  * The member rem is set to 0. The member data points to the
7972  * last element.
7973  */
7974 xcb_generic_iterator_t
7975 xcb_input_hierarchy_change_end (xcb_input_hierarchy_change_iterator_t i);
7976 
7977 int
7978 xcb_input_xi_change_hierarchy_sizeof (const void  *_buffer);
7979 
7980 /**
7981  *
7982  * @param c The connection
7983  * @return A cookie
7984  *
7985  * Delivers a request to the X server.
7986  *
7987  * This form can be used only if the request will not cause
7988  * a reply to be generated. Any returned error will be
7989  * saved for handling by xcb_request_check().
7990  */
7991 xcb_void_cookie_t
7992 xcb_input_xi_change_hierarchy_checked (xcb_connection_t                   *c,
7993                                        uint8_t                             num_changes,
7994                                        const xcb_input_hierarchy_change_t *changes);
7995 
7996 /**
7997  *
7998  * @param c The connection
7999  * @return A cookie
8000  *
8001  * Delivers a request to the X server.
8002  *
8003  */
8004 xcb_void_cookie_t
8005 xcb_input_xi_change_hierarchy (xcb_connection_t                   *c,
8006                                uint8_t                             num_changes,
8007                                const xcb_input_hierarchy_change_t *changes);
8008 
8009 int
8010 xcb_input_xi_change_hierarchy_changes_length (const xcb_input_xi_change_hierarchy_request_t *R);
8011 
8012 xcb_input_hierarchy_change_iterator_t
8013 xcb_input_xi_change_hierarchy_changes_iterator (const xcb_input_xi_change_hierarchy_request_t *R);
8014 
8015 /**
8016  *
8017  * @param c The connection
8018  * @return A cookie
8019  *
8020  * Delivers a request to the X server.
8021  *
8022  * This form can be used only if the request will not cause
8023  * a reply to be generated. Any returned error will be
8024  * saved for handling by xcb_request_check().
8025  */
8026 xcb_void_cookie_t
8027 xcb_input_xi_set_client_pointer_checked (xcb_connection_t      *c,
8028                                          xcb_window_t           window,
8029                                          xcb_input_device_id_t  deviceid);
8030 
8031 /**
8032  *
8033  * @param c The connection
8034  * @return A cookie
8035  *
8036  * Delivers a request to the X server.
8037  *
8038  */
8039 xcb_void_cookie_t
8040 xcb_input_xi_set_client_pointer (xcb_connection_t      *c,
8041                                  xcb_window_t           window,
8042                                  xcb_input_device_id_t  deviceid);
8043 
8044 /**
8045  *
8046  * @param c The connection
8047  * @return A cookie
8048  *
8049  * Delivers a request to the X server.
8050  *
8051  */
8052 xcb_input_xi_get_client_pointer_cookie_t
8053 xcb_input_xi_get_client_pointer (xcb_connection_t *c,
8054                                  xcb_window_t      window);
8055 
8056 /**
8057  *
8058  * @param c The connection
8059  * @return A cookie
8060  *
8061  * Delivers a request to the X server.
8062  *
8063  * This form can be used only if the request will cause
8064  * a reply to be generated. Any returned error will be
8065  * placed in the event queue.
8066  */
8067 xcb_input_xi_get_client_pointer_cookie_t
8068 xcb_input_xi_get_client_pointer_unchecked (xcb_connection_t *c,
8069                                            xcb_window_t      window);
8070 
8071 /**
8072  * Return the reply
8073  * @param c      The connection
8074  * @param cookie The cookie
8075  * @param e      The xcb_generic_error_t supplied
8076  *
8077  * Returns the reply of the request asked by
8078  *
8079  * The parameter @p e supplied to this function must be NULL if
8080  * xcb_input_xi_get_client_pointer_unchecked(). is used.
8081  * Otherwise, it stores the error if any.
8082  *
8083  * The returned value must be freed by the caller using free().
8084  */
8085 xcb_input_xi_get_client_pointer_reply_t *
8086 xcb_input_xi_get_client_pointer_reply (xcb_connection_t                          *c,
8087                                        xcb_input_xi_get_client_pointer_cookie_t   cookie  /**< */,
8088                                        xcb_generic_error_t                      **e);
8089 
8090 int
8091 xcb_input_event_mask_sizeof (const void  *_buffer);
8092 
8093 uint32_t *
8094 xcb_input_event_mask_mask (const xcb_input_event_mask_t *R);
8095 
8096 int
8097 xcb_input_event_mask_mask_length (const xcb_input_event_mask_t *R);
8098 
8099 xcb_generic_iterator_t
8100 xcb_input_event_mask_mask_end (const xcb_input_event_mask_t *R);
8101 
8102 /**
8103  * Get the next element of the iterator
8104  * @param i Pointer to a xcb_input_event_mask_iterator_t
8105  *
8106  * Get the next element in the iterator. The member rem is
8107  * decreased by one. The member data points to the next
8108  * element. The member index is increased by sizeof(xcb_input_event_mask_t)
8109  */
8110 void
8111 xcb_input_event_mask_next (xcb_input_event_mask_iterator_t *i);
8112 
8113 /**
8114  * Return the iterator pointing to the last element
8115  * @param i An xcb_input_event_mask_iterator_t
8116  * @return  The iterator pointing to the last element
8117  *
8118  * Set the current element in the iterator to the last element.
8119  * The member rem is set to 0. The member data points to the
8120  * last element.
8121  */
8122 xcb_generic_iterator_t
8123 xcb_input_event_mask_end (xcb_input_event_mask_iterator_t i);
8124 
8125 int
8126 xcb_input_xi_select_events_sizeof (const void  *_buffer);
8127 
8128 /**
8129  *
8130  * @param c The connection
8131  * @return A cookie
8132  *
8133  * Delivers a request to the X server.
8134  *
8135  * This form can be used only if the request will not cause
8136  * a reply to be generated. Any returned error will be
8137  * saved for handling by xcb_request_check().
8138  */
8139 xcb_void_cookie_t
8140 xcb_input_xi_select_events_checked (xcb_connection_t             *c,
8141                                     xcb_window_t                  window,
8142                                     uint16_t                      num_mask,
8143                                     const xcb_input_event_mask_t *masks);
8144 
8145 /**
8146  *
8147  * @param c The connection
8148  * @return A cookie
8149  *
8150  * Delivers a request to the X server.
8151  *
8152  */
8153 xcb_void_cookie_t
8154 xcb_input_xi_select_events (xcb_connection_t             *c,
8155                             xcb_window_t                  window,
8156                             uint16_t                      num_mask,
8157                             const xcb_input_event_mask_t *masks);
8158 
8159 int
8160 xcb_input_xi_select_events_masks_length (const xcb_input_xi_select_events_request_t *R);
8161 
8162 xcb_input_event_mask_iterator_t
8163 xcb_input_xi_select_events_masks_iterator (const xcb_input_xi_select_events_request_t *R);
8164 
8165 /**
8166  *
8167  * @param c The connection
8168  * @return A cookie
8169  *
8170  * Delivers a request to the X server.
8171  *
8172  */
8173 xcb_input_xi_query_version_cookie_t
8174 xcb_input_xi_query_version (xcb_connection_t *c,
8175                             uint16_t          major_version,
8176                             uint16_t          minor_version);
8177 
8178 /**
8179  *
8180  * @param c The connection
8181  * @return A cookie
8182  *
8183  * Delivers a request to the X server.
8184  *
8185  * This form can be used only if the request will cause
8186  * a reply to be generated. Any returned error will be
8187  * placed in the event queue.
8188  */
8189 xcb_input_xi_query_version_cookie_t
8190 xcb_input_xi_query_version_unchecked (xcb_connection_t *c,
8191                                       uint16_t          major_version,
8192                                       uint16_t          minor_version);
8193 
8194 /**
8195  * Return the reply
8196  * @param c      The connection
8197  * @param cookie The cookie
8198  * @param e      The xcb_generic_error_t supplied
8199  *
8200  * Returns the reply of the request asked by
8201  *
8202  * The parameter @p e supplied to this function must be NULL if
8203  * xcb_input_xi_query_version_unchecked(). is used.
8204  * Otherwise, it stores the error if any.
8205  *
8206  * The returned value must be freed by the caller using free().
8207  */
8208 xcb_input_xi_query_version_reply_t *
8209 xcb_input_xi_query_version_reply (xcb_connection_t                     *c,
8210                                   xcb_input_xi_query_version_cookie_t   cookie  /**< */,
8211                                   xcb_generic_error_t                 **e);
8212 
8213 int
8214 xcb_input_button_class_sizeof (const void  *_buffer);
8215 
8216 uint32_t *
8217 xcb_input_button_class_state (const xcb_input_button_class_t *R);
8218 
8219 int
8220 xcb_input_button_class_state_length (const xcb_input_button_class_t *R);
8221 
8222 xcb_generic_iterator_t
8223 xcb_input_button_class_state_end (const xcb_input_button_class_t *R);
8224 
8225 xcb_atom_t *
8226 xcb_input_button_class_labels (const xcb_input_button_class_t *R);
8227 
8228 int
8229 xcb_input_button_class_labels_length (const xcb_input_button_class_t *R);
8230 
8231 xcb_generic_iterator_t
8232 xcb_input_button_class_labels_end (const xcb_input_button_class_t *R);
8233 
8234 /**
8235  * Get the next element of the iterator
8236  * @param i Pointer to a xcb_input_button_class_iterator_t
8237  *
8238  * Get the next element in the iterator. The member rem is
8239  * decreased by one. The member data points to the next
8240  * element. The member index is increased by sizeof(xcb_input_button_class_t)
8241  */
8242 void
8243 xcb_input_button_class_next (xcb_input_button_class_iterator_t *i);
8244 
8245 /**
8246  * Return the iterator pointing to the last element
8247  * @param i An xcb_input_button_class_iterator_t
8248  * @return  The iterator pointing to the last element
8249  *
8250  * Set the current element in the iterator to the last element.
8251  * The member rem is set to 0. The member data points to the
8252  * last element.
8253  */
8254 xcb_generic_iterator_t
8255 xcb_input_button_class_end (xcb_input_button_class_iterator_t i);
8256 
8257 int
8258 xcb_input_key_class_sizeof (const void  *_buffer);
8259 
8260 uint32_t *
8261 xcb_input_key_class_keys (const xcb_input_key_class_t *R);
8262 
8263 int
8264 xcb_input_key_class_keys_length (const xcb_input_key_class_t *R);
8265 
8266 xcb_generic_iterator_t
8267 xcb_input_key_class_keys_end (const xcb_input_key_class_t *R);
8268 
8269 /**
8270  * Get the next element of the iterator
8271  * @param i Pointer to a xcb_input_key_class_iterator_t
8272  *
8273  * Get the next element in the iterator. The member rem is
8274  * decreased by one. The member data points to the next
8275  * element. The member index is increased by sizeof(xcb_input_key_class_t)
8276  */
8277 void
8278 xcb_input_key_class_next (xcb_input_key_class_iterator_t *i);
8279 
8280 /**
8281  * Return the iterator pointing to the last element
8282  * @param i An xcb_input_key_class_iterator_t
8283  * @return  The iterator pointing to the last element
8284  *
8285  * Set the current element in the iterator to the last element.
8286  * The member rem is set to 0. The member data points to the
8287  * last element.
8288  */
8289 xcb_generic_iterator_t
8290 xcb_input_key_class_end (xcb_input_key_class_iterator_t i);
8291 
8292 /**
8293  * Get the next element of the iterator
8294  * @param i Pointer to a xcb_input_scroll_class_iterator_t
8295  *
8296  * Get the next element in the iterator. The member rem is
8297  * decreased by one. The member data points to the next
8298  * element. The member index is increased by sizeof(xcb_input_scroll_class_t)
8299  */
8300 void
8301 xcb_input_scroll_class_next (xcb_input_scroll_class_iterator_t *i);
8302 
8303 /**
8304  * Return the iterator pointing to the last element
8305  * @param i An xcb_input_scroll_class_iterator_t
8306  * @return  The iterator pointing to the last element
8307  *
8308  * Set the current element in the iterator to the last element.
8309  * The member rem is set to 0. The member data points to the
8310  * last element.
8311  */
8312 xcb_generic_iterator_t
8313 xcb_input_scroll_class_end (xcb_input_scroll_class_iterator_t i);
8314 
8315 /**
8316  * Get the next element of the iterator
8317  * @param i Pointer to a xcb_input_touch_class_iterator_t
8318  *
8319  * Get the next element in the iterator. The member rem is
8320  * decreased by one. The member data points to the next
8321  * element. The member index is increased by sizeof(xcb_input_touch_class_t)
8322  */
8323 void
8324 xcb_input_touch_class_next (xcb_input_touch_class_iterator_t *i);
8325 
8326 /**
8327  * Return the iterator pointing to the last element
8328  * @param i An xcb_input_touch_class_iterator_t
8329  * @return  The iterator pointing to the last element
8330  *
8331  * Set the current element in the iterator to the last element.
8332  * The member rem is set to 0. The member data points to the
8333  * last element.
8334  */
8335 xcb_generic_iterator_t
8336 xcb_input_touch_class_end (xcb_input_touch_class_iterator_t i);
8337 
8338 /**
8339  * Get the next element of the iterator
8340  * @param i Pointer to a xcb_input_gesture_class_iterator_t
8341  *
8342  * Get the next element in the iterator. The member rem is
8343  * decreased by one. The member data points to the next
8344  * element. The member index is increased by sizeof(xcb_input_gesture_class_t)
8345  */
8346 void
8347 xcb_input_gesture_class_next (xcb_input_gesture_class_iterator_t *i);
8348 
8349 /**
8350  * Return the iterator pointing to the last element
8351  * @param i An xcb_input_gesture_class_iterator_t
8352  * @return  The iterator pointing to the last element
8353  *
8354  * Set the current element in the iterator to the last element.
8355  * The member rem is set to 0. The member data points to the
8356  * last element.
8357  */
8358 xcb_generic_iterator_t
8359 xcb_input_gesture_class_end (xcb_input_gesture_class_iterator_t i);
8360 
8361 /**
8362  * Get the next element of the iterator
8363  * @param i Pointer to a xcb_input_valuator_class_iterator_t
8364  *
8365  * Get the next element in the iterator. The member rem is
8366  * decreased by one. The member data points to the next
8367  * element. The member index is increased by sizeof(xcb_input_valuator_class_t)
8368  */
8369 void
8370 xcb_input_valuator_class_next (xcb_input_valuator_class_iterator_t *i);
8371 
8372 /**
8373  * Return the iterator pointing to the last element
8374  * @param i An xcb_input_valuator_class_iterator_t
8375  * @return  The iterator pointing to the last element
8376  *
8377  * Set the current element in the iterator to the last element.
8378  * The member rem is set to 0. The member data points to the
8379  * last element.
8380  */
8381 xcb_generic_iterator_t
8382 xcb_input_valuator_class_end (xcb_input_valuator_class_iterator_t i);
8383 
8384 uint32_t *
8385 xcb_input_device_class_data_key_keys (const xcb_input_device_class_data_t *S);
8386 
8387 int
8388 xcb_input_device_class_data_key_keys_length (const xcb_input_device_class_t *R,
8389                                              const xcb_input_device_class_data_t *S);
8390 
8391 xcb_generic_iterator_t
8392 xcb_input_device_class_data_key_keys_end (const xcb_input_device_class_t *R,
8393                                           const xcb_input_device_class_data_t *S);
8394 
8395 uint32_t *
8396 xcb_input_device_class_data_button_state (const xcb_input_device_class_data_t *S);
8397 
8398 int
8399 xcb_input_device_class_data_button_state_length (const xcb_input_device_class_t *R,
8400                                                  const xcb_input_device_class_data_t *S);
8401 
8402 xcb_generic_iterator_t
8403 xcb_input_device_class_data_button_state_end (const xcb_input_device_class_t *R,
8404                                               const xcb_input_device_class_data_t *S);
8405 
8406 xcb_atom_t *
8407 xcb_input_device_class_data_button_labels (const xcb_input_device_class_data_t *S);
8408 
8409 int
8410 xcb_input_device_class_data_button_labels_length (const xcb_input_device_class_t *R,
8411                                                   const xcb_input_device_class_data_t *S);
8412 
8413 xcb_generic_iterator_t
8414 xcb_input_device_class_data_button_labels_end (const xcb_input_device_class_t *R,
8415                                                const xcb_input_device_class_data_t *S);
8416 
8417 int
8418 xcb_input_device_class_data_serialize (void                                **_buffer,
8419                                        uint16_t                              type,
8420                                        const xcb_input_device_class_data_t  *_aux);
8421 
8422 int
8423 xcb_input_device_class_data_unpack (const void                     *_buffer,
8424                                     uint16_t                        type,
8425                                     xcb_input_device_class_data_t  *_aux);
8426 
8427 int
8428 xcb_input_device_class_data_sizeof (const void  *_buffer,
8429                                     uint16_t     type);
8430 
8431 int
8432 xcb_input_device_class_sizeof (const void  *_buffer);
8433 
8434 /**
8435  * Get the next element of the iterator
8436  * @param i Pointer to a xcb_input_device_class_iterator_t
8437  *
8438  * Get the next element in the iterator. The member rem is
8439  * decreased by one. The member data points to the next
8440  * element. The member index is increased by sizeof(xcb_input_device_class_t)
8441  */
8442 void
8443 xcb_input_device_class_next (xcb_input_device_class_iterator_t *i);
8444 
8445 /**
8446  * Return the iterator pointing to the last element
8447  * @param i An xcb_input_device_class_iterator_t
8448  * @return  The iterator pointing to the last element
8449  *
8450  * Set the current element in the iterator to the last element.
8451  * The member rem is set to 0. The member data points to the
8452  * last element.
8453  */
8454 xcb_generic_iterator_t
8455 xcb_input_device_class_end (xcb_input_device_class_iterator_t i);
8456 
8457 int
8458 xcb_input_xi_device_info_sizeof (const void  *_buffer);
8459 
8460 char *
8461 xcb_input_xi_device_info_name (const xcb_input_xi_device_info_t *R);
8462 
8463 int
8464 xcb_input_xi_device_info_name_length (const xcb_input_xi_device_info_t *R);
8465 
8466 xcb_generic_iterator_t
8467 xcb_input_xi_device_info_name_end (const xcb_input_xi_device_info_t *R);
8468 
8469 int
8470 xcb_input_xi_device_info_classes_length (const xcb_input_xi_device_info_t *R);
8471 
8472 xcb_input_device_class_iterator_t
8473 xcb_input_xi_device_info_classes_iterator (const xcb_input_xi_device_info_t *R);
8474 
8475 /**
8476  * Get the next element of the iterator
8477  * @param i Pointer to a xcb_input_xi_device_info_iterator_t
8478  *
8479  * Get the next element in the iterator. The member rem is
8480  * decreased by one. The member data points to the next
8481  * element. The member index is increased by sizeof(xcb_input_xi_device_info_t)
8482  */
8483 void
8484 xcb_input_xi_device_info_next (xcb_input_xi_device_info_iterator_t *i);
8485 
8486 /**
8487  * Return the iterator pointing to the last element
8488  * @param i An xcb_input_xi_device_info_iterator_t
8489  * @return  The iterator pointing to the last element
8490  *
8491  * Set the current element in the iterator to the last element.
8492  * The member rem is set to 0. The member data points to the
8493  * last element.
8494  */
8495 xcb_generic_iterator_t
8496 xcb_input_xi_device_info_end (xcb_input_xi_device_info_iterator_t i);
8497 
8498 int
8499 xcb_input_xi_query_device_sizeof (const void  *_buffer);
8500 
8501 /**
8502  *
8503  * @param c The connection
8504  * @return A cookie
8505  *
8506  * Delivers a request to the X server.
8507  *
8508  */
8509 xcb_input_xi_query_device_cookie_t
8510 xcb_input_xi_query_device (xcb_connection_t      *c,
8511                            xcb_input_device_id_t  deviceid);
8512 
8513 /**
8514  *
8515  * @param c The connection
8516  * @return A cookie
8517  *
8518  * Delivers a request to the X server.
8519  *
8520  * This form can be used only if the request will cause
8521  * a reply to be generated. Any returned error will be
8522  * placed in the event queue.
8523  */
8524 xcb_input_xi_query_device_cookie_t
8525 xcb_input_xi_query_device_unchecked (xcb_connection_t      *c,
8526                                      xcb_input_device_id_t  deviceid);
8527 
8528 int
8529 xcb_input_xi_query_device_infos_length (const xcb_input_xi_query_device_reply_t *R);
8530 
8531 xcb_input_xi_device_info_iterator_t
8532 xcb_input_xi_query_device_infos_iterator (const xcb_input_xi_query_device_reply_t *R);
8533 
8534 /**
8535  * Return the reply
8536  * @param c      The connection
8537  * @param cookie The cookie
8538  * @param e      The xcb_generic_error_t supplied
8539  *
8540  * Returns the reply of the request asked by
8541  *
8542  * The parameter @p e supplied to this function must be NULL if
8543  * xcb_input_xi_query_device_unchecked(). is used.
8544  * Otherwise, it stores the error if any.
8545  *
8546  * The returned value must be freed by the caller using free().
8547  */
8548 xcb_input_xi_query_device_reply_t *
8549 xcb_input_xi_query_device_reply (xcb_connection_t                    *c,
8550                                  xcb_input_xi_query_device_cookie_t   cookie  /**< */,
8551                                  xcb_generic_error_t                **e);
8552 
8553 /**
8554  *
8555  * @param c The connection
8556  * @return A cookie
8557  *
8558  * Delivers a request to the X server.
8559  *
8560  * This form can be used only if the request will not cause
8561  * a reply to be generated. Any returned error will be
8562  * saved for handling by xcb_request_check().
8563  */
8564 xcb_void_cookie_t
8565 xcb_input_xi_set_focus_checked (xcb_connection_t      *c,
8566                                 xcb_window_t           window,
8567                                 xcb_timestamp_t        time,
8568                                 xcb_input_device_id_t  deviceid);
8569 
8570 /**
8571  *
8572  * @param c The connection
8573  * @return A cookie
8574  *
8575  * Delivers a request to the X server.
8576  *
8577  */
8578 xcb_void_cookie_t
8579 xcb_input_xi_set_focus (xcb_connection_t      *c,
8580                         xcb_window_t           window,
8581                         xcb_timestamp_t        time,
8582                         xcb_input_device_id_t  deviceid);
8583 
8584 /**
8585  *
8586  * @param c The connection
8587  * @return A cookie
8588  *
8589  * Delivers a request to the X server.
8590  *
8591  */
8592 xcb_input_xi_get_focus_cookie_t
8593 xcb_input_xi_get_focus (xcb_connection_t      *c,
8594                         xcb_input_device_id_t  deviceid);
8595 
8596 /**
8597  *
8598  * @param c The connection
8599  * @return A cookie
8600  *
8601  * Delivers a request to the X server.
8602  *
8603  * This form can be used only if the request will cause
8604  * a reply to be generated. Any returned error will be
8605  * placed in the event queue.
8606  */
8607 xcb_input_xi_get_focus_cookie_t
8608 xcb_input_xi_get_focus_unchecked (xcb_connection_t      *c,
8609                                   xcb_input_device_id_t  deviceid);
8610 
8611 /**
8612  * Return the reply
8613  * @param c      The connection
8614  * @param cookie The cookie
8615  * @param e      The xcb_generic_error_t supplied
8616  *
8617  * Returns the reply of the request asked by
8618  *
8619  * The parameter @p e supplied to this function must be NULL if
8620  * xcb_input_xi_get_focus_unchecked(). is used.
8621  * Otherwise, it stores the error if any.
8622  *
8623  * The returned value must be freed by the caller using free().
8624  */
8625 xcb_input_xi_get_focus_reply_t *
8626 xcb_input_xi_get_focus_reply (xcb_connection_t                 *c,
8627                               xcb_input_xi_get_focus_cookie_t   cookie  /**< */,
8628                               xcb_generic_error_t             **e);
8629 
8630 int
8631 xcb_input_xi_grab_device_sizeof (const void  *_buffer);
8632 
8633 /**
8634  *
8635  * @param c The connection
8636  * @return A cookie
8637  *
8638  * Delivers a request to the X server.
8639  *
8640  */
8641 xcb_input_xi_grab_device_cookie_t
8642 xcb_input_xi_grab_device (xcb_connection_t      *c,
8643                           xcb_window_t           window,
8644                           xcb_timestamp_t        time,
8645                           xcb_cursor_t           cursor,
8646                           xcb_input_device_id_t  deviceid,
8647                           uint8_t                mode,
8648                           uint8_t                paired_device_mode,
8649                           uint8_t                owner_events,
8650                           uint16_t               mask_len,
8651                           const uint32_t        *mask);
8652 
8653 /**
8654  *
8655  * @param c The connection
8656  * @return A cookie
8657  *
8658  * Delivers a request to the X server.
8659  *
8660  * This form can be used only if the request will cause
8661  * a reply to be generated. Any returned error will be
8662  * placed in the event queue.
8663  */
8664 xcb_input_xi_grab_device_cookie_t
8665 xcb_input_xi_grab_device_unchecked (xcb_connection_t      *c,
8666                                     xcb_window_t           window,
8667                                     xcb_timestamp_t        time,
8668                                     xcb_cursor_t           cursor,
8669                                     xcb_input_device_id_t  deviceid,
8670                                     uint8_t                mode,
8671                                     uint8_t                paired_device_mode,
8672                                     uint8_t                owner_events,
8673                                     uint16_t               mask_len,
8674                                     const uint32_t        *mask);
8675 
8676 /**
8677  * Return the reply
8678  * @param c      The connection
8679  * @param cookie The cookie
8680  * @param e      The xcb_generic_error_t supplied
8681  *
8682  * Returns the reply of the request asked by
8683  *
8684  * The parameter @p e supplied to this function must be NULL if
8685  * xcb_input_xi_grab_device_unchecked(). is used.
8686  * Otherwise, it stores the error if any.
8687  *
8688  * The returned value must be freed by the caller using free().
8689  */
8690 xcb_input_xi_grab_device_reply_t *
8691 xcb_input_xi_grab_device_reply (xcb_connection_t                   *c,
8692                                 xcb_input_xi_grab_device_cookie_t   cookie  /**< */,
8693                                 xcb_generic_error_t               **e);
8694 
8695 /**
8696  *
8697  * @param c The connection
8698  * @return A cookie
8699  *
8700  * Delivers a request to the X server.
8701  *
8702  * This form can be used only if the request will not cause
8703  * a reply to be generated. Any returned error will be
8704  * saved for handling by xcb_request_check().
8705  */
8706 xcb_void_cookie_t
8707 xcb_input_xi_ungrab_device_checked (xcb_connection_t      *c,
8708                                     xcb_timestamp_t        time,
8709                                     xcb_input_device_id_t  deviceid);
8710 
8711 /**
8712  *
8713  * @param c The connection
8714  * @return A cookie
8715  *
8716  * Delivers a request to the X server.
8717  *
8718  */
8719 xcb_void_cookie_t
8720 xcb_input_xi_ungrab_device (xcb_connection_t      *c,
8721                             xcb_timestamp_t        time,
8722                             xcb_input_device_id_t  deviceid);
8723 
8724 /**
8725  *
8726  * @param c The connection
8727  * @return A cookie
8728  *
8729  * Delivers a request to the X server.
8730  *
8731  * This form can be used only if the request will not cause
8732  * a reply to be generated. Any returned error will be
8733  * saved for handling by xcb_request_check().
8734  */
8735 xcb_void_cookie_t
8736 xcb_input_xi_allow_events_checked (xcb_connection_t      *c,
8737                                    xcb_timestamp_t        time,
8738                                    xcb_input_device_id_t  deviceid,
8739                                    uint8_t                event_mode,
8740                                    uint32_t               touchid,
8741                                    xcb_window_t           grab_window);
8742 
8743 /**
8744  *
8745  * @param c The connection
8746  * @return A cookie
8747  *
8748  * Delivers a request to the X server.
8749  *
8750  */
8751 xcb_void_cookie_t
8752 xcb_input_xi_allow_events (xcb_connection_t      *c,
8753                            xcb_timestamp_t        time,
8754                            xcb_input_device_id_t  deviceid,
8755                            uint8_t                event_mode,
8756                            uint32_t               touchid,
8757                            xcb_window_t           grab_window);
8758 
8759 /**
8760  * Get the next element of the iterator
8761  * @param i Pointer to a xcb_input_grab_modifier_info_iterator_t
8762  *
8763  * Get the next element in the iterator. The member rem is
8764  * decreased by one. The member data points to the next
8765  * element. The member index is increased by sizeof(xcb_input_grab_modifier_info_t)
8766  */
8767 void
8768 xcb_input_grab_modifier_info_next (xcb_input_grab_modifier_info_iterator_t *i);
8769 
8770 /**
8771  * Return the iterator pointing to the last element
8772  * @param i An xcb_input_grab_modifier_info_iterator_t
8773  * @return  The iterator pointing to the last element
8774  *
8775  * Set the current element in the iterator to the last element.
8776  * The member rem is set to 0. The member data points to the
8777  * last element.
8778  */
8779 xcb_generic_iterator_t
8780 xcb_input_grab_modifier_info_end (xcb_input_grab_modifier_info_iterator_t i);
8781 
8782 int
8783 xcb_input_xi_passive_grab_device_sizeof (const void  *_buffer);
8784 
8785 /**
8786  *
8787  * @param c The connection
8788  * @return A cookie
8789  *
8790  * Delivers a request to the X server.
8791  *
8792  */
8793 xcb_input_xi_passive_grab_device_cookie_t
8794 xcb_input_xi_passive_grab_device (xcb_connection_t      *c,
8795                                   xcb_timestamp_t        time,
8796                                   xcb_window_t           grab_window,
8797                                   xcb_cursor_t           cursor,
8798                                   uint32_t               detail,
8799                                   xcb_input_device_id_t  deviceid,
8800                                   uint16_t               num_modifiers,
8801                                   uint16_t               mask_len,
8802                                   uint8_t                grab_type,
8803                                   uint8_t                grab_mode,
8804                                   uint8_t                paired_device_mode,
8805                                   uint8_t                owner_events,
8806                                   const uint32_t        *mask,
8807                                   const uint32_t        *modifiers);
8808 
8809 /**
8810  *
8811  * @param c The connection
8812  * @return A cookie
8813  *
8814  * Delivers a request to the X server.
8815  *
8816  * This form can be used only if the request will cause
8817  * a reply to be generated. Any returned error will be
8818  * placed in the event queue.
8819  */
8820 xcb_input_xi_passive_grab_device_cookie_t
8821 xcb_input_xi_passive_grab_device_unchecked (xcb_connection_t      *c,
8822                                             xcb_timestamp_t        time,
8823                                             xcb_window_t           grab_window,
8824                                             xcb_cursor_t           cursor,
8825                                             uint32_t               detail,
8826                                             xcb_input_device_id_t  deviceid,
8827                                             uint16_t               num_modifiers,
8828                                             uint16_t               mask_len,
8829                                             uint8_t                grab_type,
8830                                             uint8_t                grab_mode,
8831                                             uint8_t                paired_device_mode,
8832                                             uint8_t                owner_events,
8833                                             const uint32_t        *mask,
8834                                             const uint32_t        *modifiers);
8835 
8836 xcb_input_grab_modifier_info_t *
8837 xcb_input_xi_passive_grab_device_modifiers (const xcb_input_xi_passive_grab_device_reply_t *R);
8838 
8839 int
8840 xcb_input_xi_passive_grab_device_modifiers_length (const xcb_input_xi_passive_grab_device_reply_t *R);
8841 
8842 xcb_input_grab_modifier_info_iterator_t
8843 xcb_input_xi_passive_grab_device_modifiers_iterator (const xcb_input_xi_passive_grab_device_reply_t *R);
8844 
8845 /**
8846  * Return the reply
8847  * @param c      The connection
8848  * @param cookie The cookie
8849  * @param e      The xcb_generic_error_t supplied
8850  *
8851  * Returns the reply of the request asked by
8852  *
8853  * The parameter @p e supplied to this function must be NULL if
8854  * xcb_input_xi_passive_grab_device_unchecked(). is used.
8855  * Otherwise, it stores the error if any.
8856  *
8857  * The returned value must be freed by the caller using free().
8858  */
8859 xcb_input_xi_passive_grab_device_reply_t *
8860 xcb_input_xi_passive_grab_device_reply (xcb_connection_t                           *c,
8861                                         xcb_input_xi_passive_grab_device_cookie_t   cookie  /**< */,
8862                                         xcb_generic_error_t                       **e);
8863 
8864 int
8865 xcb_input_xi_passive_ungrab_device_sizeof (const void  *_buffer);
8866 
8867 /**
8868  *
8869  * @param c The connection
8870  * @return A cookie
8871  *
8872  * Delivers a request to the X server.
8873  *
8874  * This form can be used only if the request will not cause
8875  * a reply to be generated. Any returned error will be
8876  * saved for handling by xcb_request_check().
8877  */
8878 xcb_void_cookie_t
8879 xcb_input_xi_passive_ungrab_device_checked (xcb_connection_t      *c,
8880                                             xcb_window_t           grab_window,
8881                                             uint32_t               detail,
8882                                             xcb_input_device_id_t  deviceid,
8883                                             uint16_t               num_modifiers,
8884                                             uint8_t                grab_type,
8885                                             const uint32_t        *modifiers);
8886 
8887 /**
8888  *
8889  * @param c The connection
8890  * @return A cookie
8891  *
8892  * Delivers a request to the X server.
8893  *
8894  */
8895 xcb_void_cookie_t
8896 xcb_input_xi_passive_ungrab_device (xcb_connection_t      *c,
8897                                     xcb_window_t           grab_window,
8898                                     uint32_t               detail,
8899                                     xcb_input_device_id_t  deviceid,
8900                                     uint16_t               num_modifiers,
8901                                     uint8_t                grab_type,
8902                                     const uint32_t        *modifiers);
8903 
8904 uint32_t *
8905 xcb_input_xi_passive_ungrab_device_modifiers (const xcb_input_xi_passive_ungrab_device_request_t *R);
8906 
8907 int
8908 xcb_input_xi_passive_ungrab_device_modifiers_length (const xcb_input_xi_passive_ungrab_device_request_t *R);
8909 
8910 xcb_generic_iterator_t
8911 xcb_input_xi_passive_ungrab_device_modifiers_end (const xcb_input_xi_passive_ungrab_device_request_t *R);
8912 
8913 int
8914 xcb_input_xi_list_properties_sizeof (const void  *_buffer);
8915 
8916 /**
8917  *
8918  * @param c The connection
8919  * @return A cookie
8920  *
8921  * Delivers a request to the X server.
8922  *
8923  */
8924 xcb_input_xi_list_properties_cookie_t
8925 xcb_input_xi_list_properties (xcb_connection_t      *c,
8926                               xcb_input_device_id_t  deviceid);
8927 
8928 /**
8929  *
8930  * @param c The connection
8931  * @return A cookie
8932  *
8933  * Delivers a request to the X server.
8934  *
8935  * This form can be used only if the request will cause
8936  * a reply to be generated. Any returned error will be
8937  * placed in the event queue.
8938  */
8939 xcb_input_xi_list_properties_cookie_t
8940 xcb_input_xi_list_properties_unchecked (xcb_connection_t      *c,
8941                                         xcb_input_device_id_t  deviceid);
8942 
8943 xcb_atom_t *
8944 xcb_input_xi_list_properties_properties (const xcb_input_xi_list_properties_reply_t *R);
8945 
8946 int
8947 xcb_input_xi_list_properties_properties_length (const xcb_input_xi_list_properties_reply_t *R);
8948 
8949 xcb_generic_iterator_t
8950 xcb_input_xi_list_properties_properties_end (const xcb_input_xi_list_properties_reply_t *R);
8951 
8952 /**
8953  * Return the reply
8954  * @param c      The connection
8955  * @param cookie The cookie
8956  * @param e      The xcb_generic_error_t supplied
8957  *
8958  * Returns the reply of the request asked by
8959  *
8960  * The parameter @p e supplied to this function must be NULL if
8961  * xcb_input_xi_list_properties_unchecked(). is used.
8962  * Otherwise, it stores the error if any.
8963  *
8964  * The returned value must be freed by the caller using free().
8965  */
8966 xcb_input_xi_list_properties_reply_t *
8967 xcb_input_xi_list_properties_reply (xcb_connection_t                       *c,
8968                                     xcb_input_xi_list_properties_cookie_t   cookie  /**< */,
8969                                     xcb_generic_error_t                   **e);
8970 
8971 uint8_t *
8972 xcb_input_xi_change_property_items_data_8 (const xcb_input_xi_change_property_items_t *S);
8973 
8974 int
8975 xcb_input_xi_change_property_items_data_8_length (const xcb_input_xi_change_property_request_t *R,
8976                                                   const xcb_input_xi_change_property_items_t *S);
8977 
8978 xcb_generic_iterator_t
8979 xcb_input_xi_change_property_items_data_8_end (const xcb_input_xi_change_property_request_t *R,
8980                                                const xcb_input_xi_change_property_items_t *S);
8981 
8982 uint16_t *
8983 xcb_input_xi_change_property_items_data_16 (const xcb_input_xi_change_property_items_t *S);
8984 
8985 int
8986 xcb_input_xi_change_property_items_data_16_length (const xcb_input_xi_change_property_request_t *R,
8987                                                    const xcb_input_xi_change_property_items_t *S);
8988 
8989 xcb_generic_iterator_t
8990 xcb_input_xi_change_property_items_data_16_end (const xcb_input_xi_change_property_request_t *R,
8991                                                 const xcb_input_xi_change_property_items_t *S);
8992 
8993 uint32_t *
8994 xcb_input_xi_change_property_items_data_32 (const xcb_input_xi_change_property_items_t *S);
8995 
8996 int
8997 xcb_input_xi_change_property_items_data_32_length (const xcb_input_xi_change_property_request_t *R,
8998                                                    const xcb_input_xi_change_property_items_t *S);
8999 
9000 xcb_generic_iterator_t
9001 xcb_input_xi_change_property_items_data_32_end (const xcb_input_xi_change_property_request_t *R,
9002                                                 const xcb_input_xi_change_property_items_t *S);
9003 
9004 int
9005 xcb_input_xi_change_property_items_serialize (void                                       **_buffer,
9006                                               uint32_t                                     num_items,
9007                                               uint8_t                                      format,
9008                                               const xcb_input_xi_change_property_items_t  *_aux);
9009 
9010 int
9011 xcb_input_xi_change_property_items_unpack (const void                            *_buffer,
9012                                            uint32_t                               num_items,
9013                                            uint8_t                                format,
9014                                            xcb_input_xi_change_property_items_t  *_aux);
9015 
9016 int
9017 xcb_input_xi_change_property_items_sizeof (const void  *_buffer,
9018                                            uint32_t     num_items,
9019                                            uint8_t      format);
9020 
9021 int
9022 xcb_input_xi_change_property_sizeof (const void  *_buffer);
9023 
9024 /**
9025  *
9026  * @param c The connection
9027  * @return A cookie
9028  *
9029  * Delivers a request to the X server.
9030  *
9031  * This form can be used only if the request will not cause
9032  * a reply to be generated. Any returned error will be
9033  * saved for handling by xcb_request_check().
9034  */
9035 xcb_void_cookie_t
9036 xcb_input_xi_change_property_checked (xcb_connection_t      *c,
9037                                       xcb_input_device_id_t  deviceid,
9038                                       uint8_t                mode,
9039                                       uint8_t                format,
9040                                       xcb_atom_t             property,
9041                                       xcb_atom_t             type,
9042                                       uint32_t               num_items,
9043                                       const void            *items);
9044 
9045 /**
9046  *
9047  * @param c The connection
9048  * @return A cookie
9049  *
9050  * Delivers a request to the X server.
9051  *
9052  */
9053 xcb_void_cookie_t
9054 xcb_input_xi_change_property (xcb_connection_t      *c,
9055                               xcb_input_device_id_t  deviceid,
9056                               uint8_t                mode,
9057                               uint8_t                format,
9058                               xcb_atom_t             property,
9059                               xcb_atom_t             type,
9060                               uint32_t               num_items,
9061                               const void            *items);
9062 
9063 /**
9064  *
9065  * @param c The connection
9066  * @return A cookie
9067  *
9068  * Delivers a request to the X server.
9069  *
9070  * This form can be used only if the request will not cause
9071  * a reply to be generated. Any returned error will be
9072  * saved for handling by xcb_request_check().
9073  */
9074 xcb_void_cookie_t
9075 xcb_input_xi_change_property_aux_checked (xcb_connection_t                           *c,
9076                                           xcb_input_device_id_t                       deviceid,
9077                                           uint8_t                                     mode,
9078                                           uint8_t                                     format,
9079                                           xcb_atom_t                                  property,
9080                                           xcb_atom_t                                  type,
9081                                           uint32_t                                    num_items,
9082                                           const xcb_input_xi_change_property_items_t *items);
9083 
9084 /**
9085  *
9086  * @param c The connection
9087  * @return A cookie
9088  *
9089  * Delivers a request to the X server.
9090  *
9091  */
9092 xcb_void_cookie_t
9093 xcb_input_xi_change_property_aux (xcb_connection_t                           *c,
9094                                   xcb_input_device_id_t                       deviceid,
9095                                   uint8_t                                     mode,
9096                                   uint8_t                                     format,
9097                                   xcb_atom_t                                  property,
9098                                   xcb_atom_t                                  type,
9099                                   uint32_t                                    num_items,
9100                                   const xcb_input_xi_change_property_items_t *items);
9101 
9102 void *
9103 xcb_input_xi_change_property_items (const xcb_input_xi_change_property_request_t *R);
9104 
9105 /**
9106  *
9107  * @param c The connection
9108  * @return A cookie
9109  *
9110  * Delivers a request to the X server.
9111  *
9112  * This form can be used only if the request will not cause
9113  * a reply to be generated. Any returned error will be
9114  * saved for handling by xcb_request_check().
9115  */
9116 xcb_void_cookie_t
9117 xcb_input_xi_delete_property_checked (xcb_connection_t      *c,
9118                                       xcb_input_device_id_t  deviceid,
9119                                       xcb_atom_t             property);
9120 
9121 /**
9122  *
9123  * @param c The connection
9124  * @return A cookie
9125  *
9126  * Delivers a request to the X server.
9127  *
9128  */
9129 xcb_void_cookie_t
9130 xcb_input_xi_delete_property (xcb_connection_t      *c,
9131                               xcb_input_device_id_t  deviceid,
9132                               xcb_atom_t             property);
9133 
9134 uint8_t *
9135 xcb_input_xi_get_property_items_data_8 (const xcb_input_xi_get_property_items_t *S);
9136 
9137 int
9138 xcb_input_xi_get_property_items_data_8_length (const xcb_input_xi_get_property_reply_t *R,
9139                                                const xcb_input_xi_get_property_items_t *S);
9140 
9141 xcb_generic_iterator_t
9142 xcb_input_xi_get_property_items_data_8_end (const xcb_input_xi_get_property_reply_t *R,
9143                                             const xcb_input_xi_get_property_items_t *S);
9144 
9145 uint16_t *
9146 xcb_input_xi_get_property_items_data_16 (const xcb_input_xi_get_property_items_t *S);
9147 
9148 int
9149 xcb_input_xi_get_property_items_data_16_length (const xcb_input_xi_get_property_reply_t *R,
9150                                                 const xcb_input_xi_get_property_items_t *S);
9151 
9152 xcb_generic_iterator_t
9153 xcb_input_xi_get_property_items_data_16_end (const xcb_input_xi_get_property_reply_t *R,
9154                                              const xcb_input_xi_get_property_items_t *S);
9155 
9156 uint32_t *
9157 xcb_input_xi_get_property_items_data_32 (const xcb_input_xi_get_property_items_t *S);
9158 
9159 int
9160 xcb_input_xi_get_property_items_data_32_length (const xcb_input_xi_get_property_reply_t *R,
9161                                                 const xcb_input_xi_get_property_items_t *S);
9162 
9163 xcb_generic_iterator_t
9164 xcb_input_xi_get_property_items_data_32_end (const xcb_input_xi_get_property_reply_t *R,
9165                                              const xcb_input_xi_get_property_items_t *S);
9166 
9167 int
9168 xcb_input_xi_get_property_items_serialize (void                                    **_buffer,
9169                                            uint32_t                                  num_items,
9170                                            uint8_t                                   format,
9171                                            const xcb_input_xi_get_property_items_t  *_aux);
9172 
9173 int
9174 xcb_input_xi_get_property_items_unpack (const void                         *_buffer,
9175                                         uint32_t                            num_items,
9176                                         uint8_t                             format,
9177                                         xcb_input_xi_get_property_items_t  *_aux);
9178 
9179 int
9180 xcb_input_xi_get_property_items_sizeof (const void  *_buffer,
9181                                         uint32_t     num_items,
9182                                         uint8_t      format);
9183 
9184 int
9185 xcb_input_xi_get_property_sizeof (const void  *_buffer);
9186 
9187 /**
9188  *
9189  * @param c The connection
9190  * @return A cookie
9191  *
9192  * Delivers a request to the X server.
9193  *
9194  */
9195 xcb_input_xi_get_property_cookie_t
9196 xcb_input_xi_get_property (xcb_connection_t      *c,
9197                            xcb_input_device_id_t  deviceid,
9198                            uint8_t                _delete,
9199                            xcb_atom_t             property,
9200                            xcb_atom_t             type,
9201                            uint32_t               offset,
9202                            uint32_t               len);
9203 
9204 /**
9205  *
9206  * @param c The connection
9207  * @return A cookie
9208  *
9209  * Delivers a request to the X server.
9210  *
9211  * This form can be used only if the request will cause
9212  * a reply to be generated. Any returned error will be
9213  * placed in the event queue.
9214  */
9215 xcb_input_xi_get_property_cookie_t
9216 xcb_input_xi_get_property_unchecked (xcb_connection_t      *c,
9217                                      xcb_input_device_id_t  deviceid,
9218                                      uint8_t                _delete,
9219                                      xcb_atom_t             property,
9220                                      xcb_atom_t             type,
9221                                      uint32_t               offset,
9222                                      uint32_t               len);
9223 
9224 void *
9225 xcb_input_xi_get_property_items (const xcb_input_xi_get_property_reply_t *R);
9226 
9227 /**
9228  * Return the reply
9229  * @param c      The connection
9230  * @param cookie The cookie
9231  * @param e      The xcb_generic_error_t supplied
9232  *
9233  * Returns the reply of the request asked by
9234  *
9235  * The parameter @p e supplied to this function must be NULL if
9236  * xcb_input_xi_get_property_unchecked(). is used.
9237  * Otherwise, it stores the error if any.
9238  *
9239  * The returned value must be freed by the caller using free().
9240  */
9241 xcb_input_xi_get_property_reply_t *
9242 xcb_input_xi_get_property_reply (xcb_connection_t                    *c,
9243                                  xcb_input_xi_get_property_cookie_t   cookie  /**< */,
9244                                  xcb_generic_error_t                **e);
9245 
9246 int
9247 xcb_input_xi_get_selected_events_sizeof (const void  *_buffer);
9248 
9249 /**
9250  *
9251  * @param c The connection
9252  * @return A cookie
9253  *
9254  * Delivers a request to the X server.
9255  *
9256  */
9257 xcb_input_xi_get_selected_events_cookie_t
9258 xcb_input_xi_get_selected_events (xcb_connection_t *c,
9259                                   xcb_window_t      window);
9260 
9261 /**
9262  *
9263  * @param c The connection
9264  * @return A cookie
9265  *
9266  * Delivers a request to the X server.
9267  *
9268  * This form can be used only if the request will cause
9269  * a reply to be generated. Any returned error will be
9270  * placed in the event queue.
9271  */
9272 xcb_input_xi_get_selected_events_cookie_t
9273 xcb_input_xi_get_selected_events_unchecked (xcb_connection_t *c,
9274                                             xcb_window_t      window);
9275 
9276 int
9277 xcb_input_xi_get_selected_events_masks_length (const xcb_input_xi_get_selected_events_reply_t *R);
9278 
9279 xcb_input_event_mask_iterator_t
9280 xcb_input_xi_get_selected_events_masks_iterator (const xcb_input_xi_get_selected_events_reply_t *R);
9281 
9282 /**
9283  * Return the reply
9284  * @param c      The connection
9285  * @param cookie The cookie
9286  * @param e      The xcb_generic_error_t supplied
9287  *
9288  * Returns the reply of the request asked by
9289  *
9290  * The parameter @p e supplied to this function must be NULL if
9291  * xcb_input_xi_get_selected_events_unchecked(). is used.
9292  * Otherwise, it stores the error if any.
9293  *
9294  * The returned value must be freed by the caller using free().
9295  */
9296 xcb_input_xi_get_selected_events_reply_t *
9297 xcb_input_xi_get_selected_events_reply (xcb_connection_t                           *c,
9298                                         xcb_input_xi_get_selected_events_cookie_t   cookie  /**< */,
9299                                         xcb_generic_error_t                       **e);
9300 
9301 /**
9302  * Get the next element of the iterator
9303  * @param i Pointer to a xcb_input_barrier_release_pointer_info_iterator_t
9304  *
9305  * Get the next element in the iterator. The member rem is
9306  * decreased by one. The member data points to the next
9307  * element. The member index is increased by sizeof(xcb_input_barrier_release_pointer_info_t)
9308  */
9309 void
9310 xcb_input_barrier_release_pointer_info_next (xcb_input_barrier_release_pointer_info_iterator_t *i);
9311 
9312 /**
9313  * Return the iterator pointing to the last element
9314  * @param i An xcb_input_barrier_release_pointer_info_iterator_t
9315  * @return  The iterator pointing to the last element
9316  *
9317  * Set the current element in the iterator to the last element.
9318  * The member rem is set to 0. The member data points to the
9319  * last element.
9320  */
9321 xcb_generic_iterator_t
9322 xcb_input_barrier_release_pointer_info_end (xcb_input_barrier_release_pointer_info_iterator_t i);
9323 
9324 int
9325 xcb_input_xi_barrier_release_pointer_sizeof (const void  *_buffer);
9326 
9327 /**
9328  *
9329  * @param c The connection
9330  * @return A cookie
9331  *
9332  * Delivers a request to the X server.
9333  *
9334  * This form can be used only if the request will not cause
9335  * a reply to be generated. Any returned error will be
9336  * saved for handling by xcb_request_check().
9337  */
9338 xcb_void_cookie_t
9339 xcb_input_xi_barrier_release_pointer_checked (xcb_connection_t                               *c,
9340                                               uint32_t                                        num_barriers,
9341                                               const xcb_input_barrier_release_pointer_info_t *barriers);
9342 
9343 /**
9344  *
9345  * @param c The connection
9346  * @return A cookie
9347  *
9348  * Delivers a request to the X server.
9349  *
9350  */
9351 xcb_void_cookie_t
9352 xcb_input_xi_barrier_release_pointer (xcb_connection_t                               *c,
9353                                       uint32_t                                        num_barriers,
9354                                       const xcb_input_barrier_release_pointer_info_t *barriers);
9355 
9356 xcb_input_barrier_release_pointer_info_t *
9357 xcb_input_xi_barrier_release_pointer_barriers (const xcb_input_xi_barrier_release_pointer_request_t *R);
9358 
9359 int
9360 xcb_input_xi_barrier_release_pointer_barriers_length (const xcb_input_xi_barrier_release_pointer_request_t *R);
9361 
9362 xcb_input_barrier_release_pointer_info_iterator_t
9363 xcb_input_xi_barrier_release_pointer_barriers_iterator (const xcb_input_xi_barrier_release_pointer_request_t *R);
9364 
9365 int
9366 xcb_input_device_changed_sizeof (const void  *_buffer);
9367 
9368 int
9369 xcb_input_device_changed_classes_length (const xcb_input_device_changed_event_t *R);
9370 
9371 xcb_input_device_class_iterator_t
9372 xcb_input_device_changed_classes_iterator (const xcb_input_device_changed_event_t *R);
9373 
9374 int
9375 xcb_input_key_press_sizeof (const void  *_buffer);
9376 
9377 uint32_t *
9378 xcb_input_key_press_button_mask (const xcb_input_key_press_event_t *R);
9379 
9380 int
9381 xcb_input_key_press_button_mask_length (const xcb_input_key_press_event_t *R);
9382 
9383 xcb_generic_iterator_t
9384 xcb_input_key_press_button_mask_end (const xcb_input_key_press_event_t *R);
9385 
9386 uint32_t *
9387 xcb_input_key_press_valuator_mask (const xcb_input_key_press_event_t *R);
9388 
9389 int
9390 xcb_input_key_press_valuator_mask_length (const xcb_input_key_press_event_t *R);
9391 
9392 xcb_generic_iterator_t
9393 xcb_input_key_press_valuator_mask_end (const xcb_input_key_press_event_t *R);
9394 
9395 xcb_input_fp3232_t *
9396 xcb_input_key_press_axisvalues (const xcb_input_key_press_event_t *R);
9397 
9398 int
9399 xcb_input_key_press_axisvalues_length (const xcb_input_key_press_event_t *R);
9400 
9401 xcb_input_fp3232_iterator_t
9402 xcb_input_key_press_axisvalues_iterator (const xcb_input_key_press_event_t *R);
9403 
9404 int
9405 xcb_input_key_release_sizeof (const void  *_buffer  /**< */);
9406 
9407 int
9408 xcb_input_button_press_sizeof (const void  *_buffer);
9409 
9410 uint32_t *
9411 xcb_input_button_press_button_mask (const xcb_input_button_press_event_t *R);
9412 
9413 int
9414 xcb_input_button_press_button_mask_length (const xcb_input_button_press_event_t *R);
9415 
9416 xcb_generic_iterator_t
9417 xcb_input_button_press_button_mask_end (const xcb_input_button_press_event_t *R);
9418 
9419 uint32_t *
9420 xcb_input_button_press_valuator_mask (const xcb_input_button_press_event_t *R);
9421 
9422 int
9423 xcb_input_button_press_valuator_mask_length (const xcb_input_button_press_event_t *R);
9424 
9425 xcb_generic_iterator_t
9426 xcb_input_button_press_valuator_mask_end (const xcb_input_button_press_event_t *R);
9427 
9428 xcb_input_fp3232_t *
9429 xcb_input_button_press_axisvalues (const xcb_input_button_press_event_t *R);
9430 
9431 int
9432 xcb_input_button_press_axisvalues_length (const xcb_input_button_press_event_t *R);
9433 
9434 xcb_input_fp3232_iterator_t
9435 xcb_input_button_press_axisvalues_iterator (const xcb_input_button_press_event_t *R);
9436 
9437 int
9438 xcb_input_button_release_sizeof (const void  *_buffer  /**< */);
9439 
9440 int
9441 xcb_input_motion_sizeof (const void  *_buffer  /**< */);
9442 
9443 int
9444 xcb_input_enter_sizeof (const void  *_buffer);
9445 
9446 uint32_t *
9447 xcb_input_enter_buttons (const xcb_input_enter_event_t *R);
9448 
9449 int
9450 xcb_input_enter_buttons_length (const xcb_input_enter_event_t *R);
9451 
9452 xcb_generic_iterator_t
9453 xcb_input_enter_buttons_end (const xcb_input_enter_event_t *R);
9454 
9455 int
9456 xcb_input_leave_sizeof (const void  *_buffer  /**< */);
9457 
9458 int
9459 xcb_input_focus_in_sizeof (const void  *_buffer  /**< */);
9460 
9461 int
9462 xcb_input_focus_out_sizeof (const void  *_buffer  /**< */);
9463 
9464 /**
9465  * Get the next element of the iterator
9466  * @param i Pointer to a xcb_input_hierarchy_info_iterator_t
9467  *
9468  * Get the next element in the iterator. The member rem is
9469  * decreased by one. The member data points to the next
9470  * element. The member index is increased by sizeof(xcb_input_hierarchy_info_t)
9471  */
9472 void
9473 xcb_input_hierarchy_info_next (xcb_input_hierarchy_info_iterator_t *i);
9474 
9475 /**
9476  * Return the iterator pointing to the last element
9477  * @param i An xcb_input_hierarchy_info_iterator_t
9478  * @return  The iterator pointing to the last element
9479  *
9480  * Set the current element in the iterator to the last element.
9481  * The member rem is set to 0. The member data points to the
9482  * last element.
9483  */
9484 xcb_generic_iterator_t
9485 xcb_input_hierarchy_info_end (xcb_input_hierarchy_info_iterator_t i);
9486 
9487 int
9488 xcb_input_hierarchy_sizeof (const void  *_buffer);
9489 
9490 xcb_input_hierarchy_info_t *
9491 xcb_input_hierarchy_infos (const xcb_input_hierarchy_event_t *R);
9492 
9493 int
9494 xcb_input_hierarchy_infos_length (const xcb_input_hierarchy_event_t *R);
9495 
9496 xcb_input_hierarchy_info_iterator_t
9497 xcb_input_hierarchy_infos_iterator (const xcb_input_hierarchy_event_t *R);
9498 
9499 int
9500 xcb_input_raw_key_press_sizeof (const void  *_buffer);
9501 
9502 uint32_t *
9503 xcb_input_raw_key_press_valuator_mask (const xcb_input_raw_key_press_event_t *R);
9504 
9505 int
9506 xcb_input_raw_key_press_valuator_mask_length (const xcb_input_raw_key_press_event_t *R);
9507 
9508 xcb_generic_iterator_t
9509 xcb_input_raw_key_press_valuator_mask_end (const xcb_input_raw_key_press_event_t *R);
9510 
9511 xcb_input_fp3232_t *
9512 xcb_input_raw_key_press_axisvalues (const xcb_input_raw_key_press_event_t *R);
9513 
9514 int
9515 xcb_input_raw_key_press_axisvalues_length (const xcb_input_raw_key_press_event_t *R);
9516 
9517 xcb_input_fp3232_iterator_t
9518 xcb_input_raw_key_press_axisvalues_iterator (const xcb_input_raw_key_press_event_t *R);
9519 
9520 xcb_input_fp3232_t *
9521 xcb_input_raw_key_press_axisvalues_raw (const xcb_input_raw_key_press_event_t *R);
9522 
9523 int
9524 xcb_input_raw_key_press_axisvalues_raw_length (const xcb_input_raw_key_press_event_t *R);
9525 
9526 xcb_input_fp3232_iterator_t
9527 xcb_input_raw_key_press_axisvalues_raw_iterator (const xcb_input_raw_key_press_event_t *R);
9528 
9529 int
9530 xcb_input_raw_key_release_sizeof (const void  *_buffer  /**< */);
9531 
9532 int
9533 xcb_input_raw_button_press_sizeof (const void  *_buffer);
9534 
9535 uint32_t *
9536 xcb_input_raw_button_press_valuator_mask (const xcb_input_raw_button_press_event_t *R);
9537 
9538 int
9539 xcb_input_raw_button_press_valuator_mask_length (const xcb_input_raw_button_press_event_t *R);
9540 
9541 xcb_generic_iterator_t
9542 xcb_input_raw_button_press_valuator_mask_end (const xcb_input_raw_button_press_event_t *R);
9543 
9544 xcb_input_fp3232_t *
9545 xcb_input_raw_button_press_axisvalues (const xcb_input_raw_button_press_event_t *R);
9546 
9547 int
9548 xcb_input_raw_button_press_axisvalues_length (const xcb_input_raw_button_press_event_t *R);
9549 
9550 xcb_input_fp3232_iterator_t
9551 xcb_input_raw_button_press_axisvalues_iterator (const xcb_input_raw_button_press_event_t *R);
9552 
9553 xcb_input_fp3232_t *
9554 xcb_input_raw_button_press_axisvalues_raw (const xcb_input_raw_button_press_event_t *R);
9555 
9556 int
9557 xcb_input_raw_button_press_axisvalues_raw_length (const xcb_input_raw_button_press_event_t *R);
9558 
9559 xcb_input_fp3232_iterator_t
9560 xcb_input_raw_button_press_axisvalues_raw_iterator (const xcb_input_raw_button_press_event_t *R);
9561 
9562 int
9563 xcb_input_raw_button_release_sizeof (const void  *_buffer  /**< */);
9564 
9565 int
9566 xcb_input_raw_motion_sizeof (const void  *_buffer  /**< */);
9567 
9568 int
9569 xcb_input_touch_begin_sizeof (const void  *_buffer);
9570 
9571 uint32_t *
9572 xcb_input_touch_begin_button_mask (const xcb_input_touch_begin_event_t *R);
9573 
9574 int
9575 xcb_input_touch_begin_button_mask_length (const xcb_input_touch_begin_event_t *R);
9576 
9577 xcb_generic_iterator_t
9578 xcb_input_touch_begin_button_mask_end (const xcb_input_touch_begin_event_t *R);
9579 
9580 uint32_t *
9581 xcb_input_touch_begin_valuator_mask (const xcb_input_touch_begin_event_t *R);
9582 
9583 int
9584 xcb_input_touch_begin_valuator_mask_length (const xcb_input_touch_begin_event_t *R);
9585 
9586 xcb_generic_iterator_t
9587 xcb_input_touch_begin_valuator_mask_end (const xcb_input_touch_begin_event_t *R);
9588 
9589 xcb_input_fp3232_t *
9590 xcb_input_touch_begin_axisvalues (const xcb_input_touch_begin_event_t *R);
9591 
9592 int
9593 xcb_input_touch_begin_axisvalues_length (const xcb_input_touch_begin_event_t *R);
9594 
9595 xcb_input_fp3232_iterator_t
9596 xcb_input_touch_begin_axisvalues_iterator (const xcb_input_touch_begin_event_t *R);
9597 
9598 int
9599 xcb_input_touch_update_sizeof (const void  *_buffer  /**< */);
9600 
9601 int
9602 xcb_input_touch_end_sizeof (const void  *_buffer  /**< */);
9603 
9604 int
9605 xcb_input_raw_touch_begin_sizeof (const void  *_buffer);
9606 
9607 uint32_t *
9608 xcb_input_raw_touch_begin_valuator_mask (const xcb_input_raw_touch_begin_event_t *R);
9609 
9610 int
9611 xcb_input_raw_touch_begin_valuator_mask_length (const xcb_input_raw_touch_begin_event_t *R);
9612 
9613 xcb_generic_iterator_t
9614 xcb_input_raw_touch_begin_valuator_mask_end (const xcb_input_raw_touch_begin_event_t *R);
9615 
9616 xcb_input_fp3232_t *
9617 xcb_input_raw_touch_begin_axisvalues (const xcb_input_raw_touch_begin_event_t *R);
9618 
9619 int
9620 xcb_input_raw_touch_begin_axisvalues_length (const xcb_input_raw_touch_begin_event_t *R);
9621 
9622 xcb_input_fp3232_iterator_t
9623 xcb_input_raw_touch_begin_axisvalues_iterator (const xcb_input_raw_touch_begin_event_t *R);
9624 
9625 xcb_input_fp3232_t *
9626 xcb_input_raw_touch_begin_axisvalues_raw (const xcb_input_raw_touch_begin_event_t *R);
9627 
9628 int
9629 xcb_input_raw_touch_begin_axisvalues_raw_length (const xcb_input_raw_touch_begin_event_t *R);
9630 
9631 xcb_input_fp3232_iterator_t
9632 xcb_input_raw_touch_begin_axisvalues_raw_iterator (const xcb_input_raw_touch_begin_event_t *R);
9633 
9634 int
9635 xcb_input_raw_touch_update_sizeof (const void  *_buffer  /**< */);
9636 
9637 int
9638 xcb_input_raw_touch_end_sizeof (const void  *_buffer  /**< */);
9639 
9640 /**
9641  * Get the next element of the iterator
9642  * @param i Pointer to a xcb_input_event_for_send_iterator_t
9643  *
9644  * Get the next element in the iterator. The member rem is
9645  * decreased by one. The member data points to the next
9646  * element. The member index is increased by sizeof(xcb_input_event_for_send_t)
9647  */
9648 void
9649 xcb_input_event_for_send_next (xcb_input_event_for_send_iterator_t *i);
9650 
9651 /**
9652  * Return the iterator pointing to the last element
9653  * @param i An xcb_input_event_for_send_iterator_t
9654  * @return  The iterator pointing to the last element
9655  *
9656  * Set the current element in the iterator to the last element.
9657  * The member rem is set to 0. The member data points to the
9658  * last element.
9659  */
9660 xcb_generic_iterator_t
9661 xcb_input_event_for_send_end (xcb_input_event_for_send_iterator_t i);
9662 
9663 int
9664 xcb_input_send_extension_event_sizeof (const void  *_buffer);
9665 
9666 /**
9667  *
9668  * @param c The connection
9669  * @return A cookie
9670  *
9671  * Delivers a request to the X server.
9672  *
9673  * This form can be used only if the request will not cause
9674  * a reply to be generated. Any returned error will be
9675  * saved for handling by xcb_request_check().
9676  */
9677 xcb_void_cookie_t
9678 xcb_input_send_extension_event_checked (xcb_connection_t                 *c,
9679                                         xcb_window_t                      destination,
9680                                         uint8_t                           device_id,
9681                                         uint8_t                           propagate,
9682                                         uint16_t                          num_classes,
9683                                         uint8_t                           num_events,
9684                                         const xcb_input_event_for_send_t *events,
9685                                         const xcb_input_event_class_t    *classes);
9686 
9687 /**
9688  *
9689  * @param c The connection
9690  * @return A cookie
9691  *
9692  * Delivers a request to the X server.
9693  *
9694  */
9695 xcb_void_cookie_t
9696 xcb_input_send_extension_event (xcb_connection_t                 *c,
9697                                 xcb_window_t                      destination,
9698                                 uint8_t                           device_id,
9699                                 uint8_t                           propagate,
9700                                 uint16_t                          num_classes,
9701                                 uint8_t                           num_events,
9702                                 const xcb_input_event_for_send_t *events,
9703                                 const xcb_input_event_class_t    *classes);
9704 
9705 xcb_input_event_for_send_t *
9706 xcb_input_send_extension_event_events (const xcb_input_send_extension_event_request_t *R);
9707 
9708 int
9709 xcb_input_send_extension_event_events_length (const xcb_input_send_extension_event_request_t *R);
9710 
9711 xcb_input_event_for_send_iterator_t
9712 xcb_input_send_extension_event_events_iterator (const xcb_input_send_extension_event_request_t *R);
9713 
9714 xcb_input_event_class_t *
9715 xcb_input_send_extension_event_classes (const xcb_input_send_extension_event_request_t *R);
9716 
9717 int
9718 xcb_input_send_extension_event_classes_length (const xcb_input_send_extension_event_request_t *R);
9719 
9720 xcb_generic_iterator_t
9721 xcb_input_send_extension_event_classes_end (const xcb_input_send_extension_event_request_t *R);
9722 
9723 
9724 #ifdef __cplusplus
9725 }
9726 #endif
9727 
9728 #endif
9729 
9730 /**
9731  * @}
9732  */
9733