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