core: Use new vkd3d_create_image_resource() API.
[vkmodelviewer.git] / xinput / xinput.c
blob7ed63c8bc3109c4842c3437b44495f08e87f086f
1 /*
2 * This file generated automatically from xinput.xml by c_client.py.
3 * Edit at your peril.
4 */
6 #ifdef HAVE_CONFIG_H
7 #include "config.h"
8 #endif
9 #include <stdlib.h>
10 #include <string.h>
11 #include <assert.h>
12 #include <stddef.h> /* for offsetof() */
13 #include "xcb/xcbext.h"
14 #include "xinput.h"
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 #include "xcb/xproto.h"
18 #include "xcb/render.h"
19 #include "xcb/shape.h"
20 #include "xcb/xfixes.h"
22 xcb_extension_t xcb_input_id = { "XInputExtension", 0 };
25 /*****************************************************************************
27 ** void xcb_input_event_class_next
28 **
29 ** @param xcb_input_event_class_iterator_t *i
30 ** @returns void
32 *****************************************************************************/
34 void
35 xcb_input_event_class_next (xcb_input_event_class_iterator_t *i /**< */)
37 --i->rem;
38 ++i->data;
39 i->index += sizeof(xcb_input_event_class_t);
43 /*****************************************************************************
45 ** xcb_generic_iterator_t xcb_input_event_class_end
46 **
47 ** @param xcb_input_event_class_iterator_t i
48 ** @returns xcb_generic_iterator_t
50 *****************************************************************************/
52 xcb_generic_iterator_t
53 xcb_input_event_class_end (xcb_input_event_class_iterator_t i /**< */)
55 xcb_generic_iterator_t ret;
56 ret.data = i.data + i.rem;
57 ret.index = i.index + ((char *) ret.data - (char *) i.data);
58 ret.rem = 0;
59 return ret;
63 /*****************************************************************************
65 ** void xcb_input_key_code_next
66 **
67 ** @param xcb_input_key_code_iterator_t *i
68 ** @returns void
70 *****************************************************************************/
72 void
73 xcb_input_key_code_next (xcb_input_key_code_iterator_t *i /**< */)
75 --i->rem;
76 ++i->data;
77 i->index += sizeof(xcb_input_key_code_t);
81 /*****************************************************************************
83 ** xcb_generic_iterator_t xcb_input_key_code_end
84 **
85 ** @param xcb_input_key_code_iterator_t i
86 ** @returns xcb_generic_iterator_t
88 *****************************************************************************/
90 xcb_generic_iterator_t
91 xcb_input_key_code_end (xcb_input_key_code_iterator_t i /**< */)
93 xcb_generic_iterator_t ret;
94 ret.data = i.data + i.rem;
95 ret.index = i.index + ((char *) ret.data - (char *) i.data);
96 ret.rem = 0;
97 return ret;
101 /*****************************************************************************
103 ** void xcb_input_device_id_next
105 ** @param xcb_input_device_id_iterator_t *i
106 ** @returns void
108 *****************************************************************************/
110 void
111 xcb_input_device_id_next (xcb_input_device_id_iterator_t *i /**< */)
113 --i->rem;
114 ++i->data;
115 i->index += sizeof(xcb_input_device_id_t);
119 /*****************************************************************************
121 ** xcb_generic_iterator_t xcb_input_device_id_end
123 ** @param xcb_input_device_id_iterator_t i
124 ** @returns xcb_generic_iterator_t
126 *****************************************************************************/
128 xcb_generic_iterator_t
129 xcb_input_device_id_end (xcb_input_device_id_iterator_t i /**< */)
131 xcb_generic_iterator_t ret;
132 ret.data = i.data + i.rem;
133 ret.index = i.index + ((char *) ret.data - (char *) i.data);
134 ret.rem = 0;
135 return ret;
139 /*****************************************************************************
141 ** void xcb_input_fp1616_next
143 ** @param xcb_input_fp1616_iterator_t *i
144 ** @returns void
146 *****************************************************************************/
148 void
149 xcb_input_fp1616_next (xcb_input_fp1616_iterator_t *i /**< */)
151 --i->rem;
152 ++i->data;
153 i->index += sizeof(xcb_input_fp1616_t);
157 /*****************************************************************************
159 ** xcb_generic_iterator_t xcb_input_fp1616_end
161 ** @param xcb_input_fp1616_iterator_t i
162 ** @returns xcb_generic_iterator_t
164 *****************************************************************************/
166 xcb_generic_iterator_t
167 xcb_input_fp1616_end (xcb_input_fp1616_iterator_t i /**< */)
169 xcb_generic_iterator_t ret;
170 ret.data = i.data + i.rem;
171 ret.index = i.index + ((char *) ret.data - (char *) i.data);
172 ret.rem = 0;
173 return ret;
177 /*****************************************************************************
179 ** void xcb_input_fp3232_next
181 ** @param xcb_input_fp3232_iterator_t *i
182 ** @returns void
184 *****************************************************************************/
186 void
187 xcb_input_fp3232_next (xcb_input_fp3232_iterator_t *i /**< */)
189 --i->rem;
190 ++i->data;
191 i->index += sizeof(xcb_input_fp3232_t);
195 /*****************************************************************************
197 ** xcb_generic_iterator_t xcb_input_fp3232_end
199 ** @param xcb_input_fp3232_iterator_t i
200 ** @returns xcb_generic_iterator_t
202 *****************************************************************************/
204 xcb_generic_iterator_t
205 xcb_input_fp3232_end (xcb_input_fp3232_iterator_t i /**< */)
207 xcb_generic_iterator_t ret;
208 ret.data = i.data + i.rem;
209 ret.index = i.index + ((char *) ret.data - (char *) i.data);
210 ret.rem = 0;
211 return ret;
215 xcb_input_get_extension_version_sizeof (const void *_buffer /**< */)
217 char *xcb_tmp = (char *)_buffer;
218 const xcb_input_get_extension_version_request_t *_aux = (xcb_input_get_extension_version_request_t *)_buffer;
219 unsigned int xcb_buffer_len = 0;
220 unsigned int xcb_block_len = 0;
221 unsigned int xcb_pad = 0;
222 unsigned int xcb_align_to = 0;
225 xcb_block_len += sizeof(xcb_input_get_extension_version_request_t);
226 xcb_tmp += xcb_block_len;
227 xcb_buffer_len += xcb_block_len;
228 xcb_block_len = 0;
229 /* name */
230 xcb_block_len += _aux->name_len * sizeof(char);
231 xcb_tmp += xcb_block_len;
232 xcb_align_to = ALIGNOF(char);
233 /* insert padding */
234 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
235 xcb_buffer_len += xcb_block_len + xcb_pad;
236 if (0 != xcb_pad) {
237 xcb_tmp += xcb_pad;
238 xcb_pad = 0;
240 xcb_block_len = 0;
242 return xcb_buffer_len;
246 /*****************************************************************************
248 ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version
250 ** @param xcb_connection_t *c
251 ** @param uint16_t name_len
252 ** @param const char *name
253 ** @returns xcb_input_get_extension_version_cookie_t
255 *****************************************************************************/
257 xcb_input_get_extension_version_cookie_t
258 xcb_input_get_extension_version (xcb_connection_t *c /**< */,
259 uint16_t name_len /**< */,
260 const char *name /**< */)
262 static const xcb_protocol_request_t xcb_req = {
263 /* count */ 4,
264 /* ext */ &xcb_input_id,
265 /* opcode */ XCB_INPUT_GET_EXTENSION_VERSION,
266 /* isvoid */ 0
269 struct iovec xcb_parts[6];
270 xcb_input_get_extension_version_cookie_t xcb_ret;
271 xcb_input_get_extension_version_request_t xcb_out;
273 xcb_out.name_len = name_len;
274 memset(xcb_out.pad0, 0, 2);
276 xcb_parts[2].iov_base = (char *) &xcb_out;
277 xcb_parts[2].iov_len = sizeof(xcb_out);
278 xcb_parts[3].iov_base = 0;
279 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
280 /* char name */
281 xcb_parts[4].iov_base = (char *) name;
282 xcb_parts[4].iov_len = name_len * sizeof(char);
283 xcb_parts[5].iov_base = 0;
284 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
286 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
287 return xcb_ret;
291 /*****************************************************************************
293 ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version_unchecked
295 ** @param xcb_connection_t *c
296 ** @param uint16_t name_len
297 ** @param const char *name
298 ** @returns xcb_input_get_extension_version_cookie_t
300 *****************************************************************************/
302 xcb_input_get_extension_version_cookie_t
303 xcb_input_get_extension_version_unchecked (xcb_connection_t *c /**< */,
304 uint16_t name_len /**< */,
305 const char *name /**< */)
307 static const xcb_protocol_request_t xcb_req = {
308 /* count */ 4,
309 /* ext */ &xcb_input_id,
310 /* opcode */ XCB_INPUT_GET_EXTENSION_VERSION,
311 /* isvoid */ 0
314 struct iovec xcb_parts[6];
315 xcb_input_get_extension_version_cookie_t xcb_ret;
316 xcb_input_get_extension_version_request_t xcb_out;
318 xcb_out.name_len = name_len;
319 memset(xcb_out.pad0, 0, 2);
321 xcb_parts[2].iov_base = (char *) &xcb_out;
322 xcb_parts[2].iov_len = sizeof(xcb_out);
323 xcb_parts[3].iov_base = 0;
324 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
325 /* char name */
326 xcb_parts[4].iov_base = (char *) name;
327 xcb_parts[4].iov_len = name_len * sizeof(char);
328 xcb_parts[5].iov_base = 0;
329 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
331 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
332 return xcb_ret;
336 /*****************************************************************************
338 ** xcb_input_get_extension_version_reply_t * xcb_input_get_extension_version_reply
340 ** @param xcb_connection_t *c
341 ** @param xcb_input_get_extension_version_cookie_t cookie
342 ** @param xcb_generic_error_t **e
343 ** @returns xcb_input_get_extension_version_reply_t *
345 *****************************************************************************/
347 xcb_input_get_extension_version_reply_t *
348 xcb_input_get_extension_version_reply (xcb_connection_t *c /**< */,
349 xcb_input_get_extension_version_cookie_t cookie /**< */,
350 xcb_generic_error_t **e /**< */)
352 return (xcb_input_get_extension_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
356 /*****************************************************************************
358 ** void xcb_input_device_info_next
360 ** @param xcb_input_device_info_iterator_t *i
361 ** @returns void
363 *****************************************************************************/
365 void
366 xcb_input_device_info_next (xcb_input_device_info_iterator_t *i /**< */)
368 --i->rem;
369 ++i->data;
370 i->index += sizeof(xcb_input_device_info_t);
374 /*****************************************************************************
376 ** xcb_generic_iterator_t xcb_input_device_info_end
378 ** @param xcb_input_device_info_iterator_t i
379 ** @returns xcb_generic_iterator_t
381 *****************************************************************************/
383 xcb_generic_iterator_t
384 xcb_input_device_info_end (xcb_input_device_info_iterator_t i /**< */)
386 xcb_generic_iterator_t ret;
387 ret.data = i.data + i.rem;
388 ret.index = i.index + ((char *) ret.data - (char *) i.data);
389 ret.rem = 0;
390 return ret;
394 /*****************************************************************************
396 ** void xcb_input_key_info_next
398 ** @param xcb_input_key_info_iterator_t *i
399 ** @returns void
401 *****************************************************************************/
403 void
404 xcb_input_key_info_next (xcb_input_key_info_iterator_t *i /**< */)
406 --i->rem;
407 ++i->data;
408 i->index += sizeof(xcb_input_key_info_t);
412 /*****************************************************************************
414 ** xcb_generic_iterator_t xcb_input_key_info_end
416 ** @param xcb_input_key_info_iterator_t i
417 ** @returns xcb_generic_iterator_t
419 *****************************************************************************/
421 xcb_generic_iterator_t
422 xcb_input_key_info_end (xcb_input_key_info_iterator_t i /**< */)
424 xcb_generic_iterator_t ret;
425 ret.data = i.data + i.rem;
426 ret.index = i.index + ((char *) ret.data - (char *) i.data);
427 ret.rem = 0;
428 return ret;
432 /*****************************************************************************
434 ** void xcb_input_button_info_next
436 ** @param xcb_input_button_info_iterator_t *i
437 ** @returns void
439 *****************************************************************************/
441 void
442 xcb_input_button_info_next (xcb_input_button_info_iterator_t *i /**< */)
444 --i->rem;
445 ++i->data;
446 i->index += sizeof(xcb_input_button_info_t);
450 /*****************************************************************************
452 ** xcb_generic_iterator_t xcb_input_button_info_end
454 ** @param xcb_input_button_info_iterator_t i
455 ** @returns xcb_generic_iterator_t
457 *****************************************************************************/
459 xcb_generic_iterator_t
460 xcb_input_button_info_end (xcb_input_button_info_iterator_t i /**< */)
462 xcb_generic_iterator_t ret;
463 ret.data = i.data + i.rem;
464 ret.index = i.index + ((char *) ret.data - (char *) i.data);
465 ret.rem = 0;
466 return ret;
470 /*****************************************************************************
472 ** void xcb_input_axis_info_next
474 ** @param xcb_input_axis_info_iterator_t *i
475 ** @returns void
477 *****************************************************************************/
479 void
480 xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i /**< */)
482 --i->rem;
483 ++i->data;
484 i->index += sizeof(xcb_input_axis_info_t);
488 /*****************************************************************************
490 ** xcb_generic_iterator_t xcb_input_axis_info_end
492 ** @param xcb_input_axis_info_iterator_t i
493 ** @returns xcb_generic_iterator_t
495 *****************************************************************************/
497 xcb_generic_iterator_t
498 xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i /**< */)
500 xcb_generic_iterator_t ret;
501 ret.data = i.data + i.rem;
502 ret.index = i.index + ((char *) ret.data - (char *) i.data);
503 ret.rem = 0;
504 return ret;
508 xcb_input_valuator_info_sizeof (const void *_buffer /**< */)
510 char *xcb_tmp = (char *)_buffer;
511 const xcb_input_valuator_info_t *_aux = (xcb_input_valuator_info_t *)_buffer;
512 unsigned int xcb_buffer_len = 0;
513 unsigned int xcb_block_len = 0;
514 unsigned int xcb_pad = 0;
515 unsigned int xcb_align_to = 0;
518 xcb_block_len += sizeof(xcb_input_valuator_info_t);
519 xcb_tmp += xcb_block_len;
520 xcb_buffer_len += xcb_block_len;
521 xcb_block_len = 0;
522 /* axes */
523 xcb_block_len += _aux->axes_len * sizeof(xcb_input_axis_info_t);
524 xcb_tmp += xcb_block_len;
525 xcb_align_to = ALIGNOF(xcb_input_axis_info_t);
526 /* insert padding */
527 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
528 xcb_buffer_len += xcb_block_len + xcb_pad;
529 if (0 != xcb_pad) {
530 xcb_tmp += xcb_pad;
531 xcb_pad = 0;
533 xcb_block_len = 0;
535 return xcb_buffer_len;
539 /*****************************************************************************
541 ** xcb_input_axis_info_t * xcb_input_valuator_info_axes
543 ** @param const xcb_input_valuator_info_t *R
544 ** @returns xcb_input_axis_info_t *
546 *****************************************************************************/
548 xcb_input_axis_info_t *
549 xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R /**< */)
551 return (xcb_input_axis_info_t *) (R + 1);
555 /*****************************************************************************
557 ** int xcb_input_valuator_info_axes_length
559 ** @param const xcb_input_valuator_info_t *R
560 ** @returns int
562 *****************************************************************************/
565 xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R /**< */)
567 return R->axes_len;
571 /*****************************************************************************
573 ** xcb_input_axis_info_iterator_t xcb_input_valuator_info_axes_iterator
575 ** @param const xcb_input_valuator_info_t *R
576 ** @returns xcb_input_axis_info_iterator_t
578 *****************************************************************************/
580 xcb_input_axis_info_iterator_t
581 xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R /**< */)
583 xcb_input_axis_info_iterator_t i;
584 i.data = (xcb_input_axis_info_t *) (R + 1);
585 i.rem = R->axes_len;
586 i.index = (char *) i.data - (char *) R;
587 return i;
591 /*****************************************************************************
593 ** void xcb_input_valuator_info_next
595 ** @param xcb_input_valuator_info_iterator_t *i
596 ** @returns void
598 *****************************************************************************/
600 void
601 xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i /**< */)
603 xcb_input_valuator_info_t *R = i->data;
604 xcb_generic_iterator_t child;
605 child.data = (xcb_input_valuator_info_t *)(((char *)R) + xcb_input_valuator_info_sizeof(R));
606 i->index = (char *) child.data - (char *) i->data;
607 --i->rem;
608 i->data = (xcb_input_valuator_info_t *) child.data;
612 /*****************************************************************************
614 ** xcb_generic_iterator_t xcb_input_valuator_info_end
616 ** @param xcb_input_valuator_info_iterator_t i
617 ** @returns xcb_generic_iterator_t
619 *****************************************************************************/
621 xcb_generic_iterator_t
622 xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i /**< */)
624 xcb_generic_iterator_t ret;
625 while(i.rem > 0)
626 xcb_input_valuator_info_next(&i);
627 ret.data = i.data;
628 ret.rem = i.rem;
629 ret.index = i.index;
630 return ret;
634 /*****************************************************************************
636 ** void xcb_input_input_info_next
638 ** @param xcb_input_input_info_iterator_t *i
639 ** @returns void
641 *****************************************************************************/
643 void
644 xcb_input_input_info_next (xcb_input_input_info_iterator_t *i /**< */)
646 --i->rem;
647 ++i->data;
648 i->index += sizeof(xcb_input_input_info_t);
652 /*****************************************************************************
654 ** xcb_generic_iterator_t xcb_input_input_info_end
656 ** @param xcb_input_input_info_iterator_t i
657 ** @returns xcb_generic_iterator_t
659 *****************************************************************************/
661 xcb_generic_iterator_t
662 xcb_input_input_info_end (xcb_input_input_info_iterator_t i /**< */)
664 xcb_generic_iterator_t ret;
665 ret.data = i.data + i.rem;
666 ret.index = i.index + ((char *) ret.data - (char *) i.data);
667 ret.rem = 0;
668 return ret;
672 xcb_input_device_name_sizeof (const void *_buffer /**< */)
674 char *xcb_tmp = (char *)_buffer;
675 const xcb_input_device_name_t *_aux = (xcb_input_device_name_t *)_buffer;
676 unsigned int xcb_buffer_len = 0;
677 unsigned int xcb_block_len = 0;
678 unsigned int xcb_pad = 0;
679 unsigned int xcb_align_to = 0;
682 xcb_block_len += sizeof(xcb_input_device_name_t);
683 xcb_tmp += xcb_block_len;
684 xcb_buffer_len += xcb_block_len;
685 xcb_block_len = 0;
686 /* string */
687 xcb_block_len += _aux->len * sizeof(char);
688 xcb_tmp += xcb_block_len;
689 xcb_align_to = ALIGNOF(char);
690 /* insert padding */
691 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
692 xcb_buffer_len += xcb_block_len + xcb_pad;
693 if (0 != xcb_pad) {
694 xcb_tmp += xcb_pad;
695 xcb_pad = 0;
697 xcb_block_len = 0;
699 return xcb_buffer_len;
703 /*****************************************************************************
705 ** char * xcb_input_device_name_string
707 ** @param const xcb_input_device_name_t *R
708 ** @returns char *
710 *****************************************************************************/
712 char *
713 xcb_input_device_name_string (const xcb_input_device_name_t *R /**< */)
715 return (char *) (R + 1);
719 /*****************************************************************************
721 ** int xcb_input_device_name_string_length
723 ** @param const xcb_input_device_name_t *R
724 ** @returns int
726 *****************************************************************************/
729 xcb_input_device_name_string_length (const xcb_input_device_name_t *R /**< */)
731 return R->len;
735 /*****************************************************************************
737 ** xcb_generic_iterator_t xcb_input_device_name_string_end
739 ** @param const xcb_input_device_name_t *R
740 ** @returns xcb_generic_iterator_t
742 *****************************************************************************/
744 xcb_generic_iterator_t
745 xcb_input_device_name_string_end (const xcb_input_device_name_t *R /**< */)
747 xcb_generic_iterator_t i;
748 i.data = ((char *) (R + 1)) + (R->len);
749 i.rem = 0;
750 i.index = (char *) i.data - (char *) R;
751 return i;
755 /*****************************************************************************
757 ** void xcb_input_device_name_next
759 ** @param xcb_input_device_name_iterator_t *i
760 ** @returns void
762 *****************************************************************************/
764 void
765 xcb_input_device_name_next (xcb_input_device_name_iterator_t *i /**< */)
767 xcb_input_device_name_t *R = i->data;
768 xcb_generic_iterator_t child;
769 child.data = (xcb_input_device_name_t *)(((char *)R) + xcb_input_device_name_sizeof(R));
770 i->index = (char *) child.data - (char *) i->data;
771 --i->rem;
772 i->data = (xcb_input_device_name_t *) child.data;
776 /*****************************************************************************
778 ** xcb_generic_iterator_t xcb_input_device_name_end
780 ** @param xcb_input_device_name_iterator_t i
781 ** @returns xcb_generic_iterator_t
783 *****************************************************************************/
785 xcb_generic_iterator_t
786 xcb_input_device_name_end (xcb_input_device_name_iterator_t i /**< */)
788 xcb_generic_iterator_t ret;
789 while(i.rem > 0)
790 xcb_input_device_name_next(&i);
791 ret.data = i.data;
792 ret.rem = i.rem;
793 ret.index = i.index;
794 return ret;
798 xcb_input_list_input_devices_sizeof (const void *_buffer /**< */)
800 char *xcb_tmp = (char *)_buffer;
801 const xcb_input_list_input_devices_reply_t *_aux = (xcb_input_list_input_devices_reply_t *)_buffer;
802 unsigned int xcb_buffer_len = 0;
803 unsigned int xcb_block_len = 0;
804 unsigned int xcb_pad = 0;
805 unsigned int xcb_align_to = 0;
808 xcb_block_len += sizeof(xcb_input_list_input_devices_reply_t);
809 xcb_tmp += xcb_block_len;
810 xcb_buffer_len += xcb_block_len;
811 xcb_block_len = 0;
812 /* devices */
813 xcb_block_len += _aux->devices_len * sizeof(xcb_input_device_info_t);
814 xcb_tmp += xcb_block_len;
815 xcb_align_to = ALIGNOF(xcb_input_device_info_t);
816 /* insert padding */
817 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
818 xcb_buffer_len += xcb_block_len + xcb_pad;
819 if (0 != xcb_pad) {
820 xcb_tmp += xcb_pad;
821 xcb_pad = 0;
823 xcb_block_len = 0;
825 return xcb_buffer_len;
829 /*****************************************************************************
831 ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices
833 ** @param xcb_connection_t *c
834 ** @returns xcb_input_list_input_devices_cookie_t
836 *****************************************************************************/
838 xcb_input_list_input_devices_cookie_t
839 xcb_input_list_input_devices (xcb_connection_t *c /**< */)
841 static const xcb_protocol_request_t xcb_req = {
842 /* count */ 2,
843 /* ext */ &xcb_input_id,
844 /* opcode */ XCB_INPUT_LIST_INPUT_DEVICES,
845 /* isvoid */ 0
848 struct iovec xcb_parts[4];
849 xcb_input_list_input_devices_cookie_t xcb_ret;
850 xcb_input_list_input_devices_request_t xcb_out;
853 xcb_parts[2].iov_base = (char *) &xcb_out;
854 xcb_parts[2].iov_len = sizeof(xcb_out);
855 xcb_parts[3].iov_base = 0;
856 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
858 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
859 return xcb_ret;
863 /*****************************************************************************
865 ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices_unchecked
867 ** @param xcb_connection_t *c
868 ** @returns xcb_input_list_input_devices_cookie_t
870 *****************************************************************************/
872 xcb_input_list_input_devices_cookie_t
873 xcb_input_list_input_devices_unchecked (xcb_connection_t *c /**< */)
875 static const xcb_protocol_request_t xcb_req = {
876 /* count */ 2,
877 /* ext */ &xcb_input_id,
878 /* opcode */ XCB_INPUT_LIST_INPUT_DEVICES,
879 /* isvoid */ 0
882 struct iovec xcb_parts[4];
883 xcb_input_list_input_devices_cookie_t xcb_ret;
884 xcb_input_list_input_devices_request_t xcb_out;
887 xcb_parts[2].iov_base = (char *) &xcb_out;
888 xcb_parts[2].iov_len = sizeof(xcb_out);
889 xcb_parts[3].iov_base = 0;
890 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
892 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
893 return xcb_ret;
897 /*****************************************************************************
899 ** xcb_input_device_info_t * xcb_input_list_input_devices_devices
901 ** @param const xcb_input_list_input_devices_reply_t *R
902 ** @returns xcb_input_device_info_t *
904 *****************************************************************************/
906 xcb_input_device_info_t *
907 xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R /**< */)
909 return (xcb_input_device_info_t *) (R + 1);
913 /*****************************************************************************
915 ** int xcb_input_list_input_devices_devices_length
917 ** @param const xcb_input_list_input_devices_reply_t *R
918 ** @returns int
920 *****************************************************************************/
923 xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R /**< */)
925 return R->devices_len;
929 /*****************************************************************************
931 ** xcb_input_device_info_iterator_t xcb_input_list_input_devices_devices_iterator
933 ** @param const xcb_input_list_input_devices_reply_t *R
934 ** @returns xcb_input_device_info_iterator_t
936 *****************************************************************************/
938 xcb_input_device_info_iterator_t
939 xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R /**< */)
941 xcb_input_device_info_iterator_t i;
942 i.data = (xcb_input_device_info_t *) (R + 1);
943 i.rem = R->devices_len;
944 i.index = (char *) i.data - (char *) R;
945 return i;
949 /*****************************************************************************
951 ** xcb_input_list_input_devices_reply_t * xcb_input_list_input_devices_reply
953 ** @param xcb_connection_t *c
954 ** @param xcb_input_list_input_devices_cookie_t cookie
955 ** @param xcb_generic_error_t **e
956 ** @returns xcb_input_list_input_devices_reply_t *
958 *****************************************************************************/
960 xcb_input_list_input_devices_reply_t *
961 xcb_input_list_input_devices_reply (xcb_connection_t *c /**< */,
962 xcb_input_list_input_devices_cookie_t cookie /**< */,
963 xcb_generic_error_t **e /**< */)
965 return (xcb_input_list_input_devices_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
969 /*****************************************************************************
971 ** void xcb_input_input_class_info_next
973 ** @param xcb_input_input_class_info_iterator_t *i
974 ** @returns void
976 *****************************************************************************/
978 void
979 xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i /**< */)
981 --i->rem;
982 ++i->data;
983 i->index += sizeof(xcb_input_input_class_info_t);
987 /*****************************************************************************
989 ** xcb_generic_iterator_t xcb_input_input_class_info_end
991 ** @param xcb_input_input_class_info_iterator_t i
992 ** @returns xcb_generic_iterator_t
994 *****************************************************************************/
996 xcb_generic_iterator_t
997 xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i /**< */)
999 xcb_generic_iterator_t ret;
1000 ret.data = i.data + i.rem;
1001 ret.index = i.index + ((char *) ret.data - (char *) i.data);
1002 ret.rem = 0;
1003 return ret;
1007 xcb_input_open_device_sizeof (const void *_buffer /**< */)
1009 char *xcb_tmp = (char *)_buffer;
1010 const xcb_input_open_device_reply_t *_aux = (xcb_input_open_device_reply_t *)_buffer;
1011 unsigned int xcb_buffer_len = 0;
1012 unsigned int xcb_block_len = 0;
1013 unsigned int xcb_pad = 0;
1014 unsigned int xcb_align_to = 0;
1017 xcb_block_len += sizeof(xcb_input_open_device_reply_t);
1018 xcb_tmp += xcb_block_len;
1019 xcb_buffer_len += xcb_block_len;
1020 xcb_block_len = 0;
1021 /* class_info */
1022 xcb_block_len += _aux->num_classes * sizeof(xcb_input_input_class_info_t);
1023 xcb_tmp += xcb_block_len;
1024 xcb_align_to = ALIGNOF(xcb_input_input_class_info_t);
1025 /* insert padding */
1026 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1027 xcb_buffer_len += xcb_block_len + xcb_pad;
1028 if (0 != xcb_pad) {
1029 xcb_tmp += xcb_pad;
1030 xcb_pad = 0;
1032 xcb_block_len = 0;
1034 return xcb_buffer_len;
1038 /*****************************************************************************
1040 ** xcb_input_open_device_cookie_t xcb_input_open_device
1042 ** @param xcb_connection_t *c
1043 ** @param uint8_t device_id
1044 ** @returns xcb_input_open_device_cookie_t
1046 *****************************************************************************/
1048 xcb_input_open_device_cookie_t
1049 xcb_input_open_device (xcb_connection_t *c /**< */,
1050 uint8_t device_id /**< */)
1052 static const xcb_protocol_request_t xcb_req = {
1053 /* count */ 2,
1054 /* ext */ &xcb_input_id,
1055 /* opcode */ XCB_INPUT_OPEN_DEVICE,
1056 /* isvoid */ 0
1059 struct iovec xcb_parts[4];
1060 xcb_input_open_device_cookie_t xcb_ret;
1061 xcb_input_open_device_request_t xcb_out;
1063 xcb_out.device_id = device_id;
1064 memset(xcb_out.pad0, 0, 3);
1066 xcb_parts[2].iov_base = (char *) &xcb_out;
1067 xcb_parts[2].iov_len = sizeof(xcb_out);
1068 xcb_parts[3].iov_base = 0;
1069 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1071 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1072 return xcb_ret;
1076 /*****************************************************************************
1078 ** xcb_input_open_device_cookie_t xcb_input_open_device_unchecked
1080 ** @param xcb_connection_t *c
1081 ** @param uint8_t device_id
1082 ** @returns xcb_input_open_device_cookie_t
1084 *****************************************************************************/
1086 xcb_input_open_device_cookie_t
1087 xcb_input_open_device_unchecked (xcb_connection_t *c /**< */,
1088 uint8_t device_id /**< */)
1090 static const xcb_protocol_request_t xcb_req = {
1091 /* count */ 2,
1092 /* ext */ &xcb_input_id,
1093 /* opcode */ XCB_INPUT_OPEN_DEVICE,
1094 /* isvoid */ 0
1097 struct iovec xcb_parts[4];
1098 xcb_input_open_device_cookie_t xcb_ret;
1099 xcb_input_open_device_request_t xcb_out;
1101 xcb_out.device_id = device_id;
1102 memset(xcb_out.pad0, 0, 3);
1104 xcb_parts[2].iov_base = (char *) &xcb_out;
1105 xcb_parts[2].iov_len = sizeof(xcb_out);
1106 xcb_parts[3].iov_base = 0;
1107 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1109 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1110 return xcb_ret;
1114 /*****************************************************************************
1116 ** xcb_input_input_class_info_t * xcb_input_open_device_class_info
1118 ** @param const xcb_input_open_device_reply_t *R
1119 ** @returns xcb_input_input_class_info_t *
1121 *****************************************************************************/
1123 xcb_input_input_class_info_t *
1124 xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R /**< */)
1126 return (xcb_input_input_class_info_t *) (R + 1);
1130 /*****************************************************************************
1132 ** int xcb_input_open_device_class_info_length
1134 ** @param const xcb_input_open_device_reply_t *R
1135 ** @returns int
1137 *****************************************************************************/
1140 xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R /**< */)
1142 return R->num_classes;
1146 /*****************************************************************************
1148 ** xcb_input_input_class_info_iterator_t xcb_input_open_device_class_info_iterator
1150 ** @param const xcb_input_open_device_reply_t *R
1151 ** @returns xcb_input_input_class_info_iterator_t
1153 *****************************************************************************/
1155 xcb_input_input_class_info_iterator_t
1156 xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R /**< */)
1158 xcb_input_input_class_info_iterator_t i;
1159 i.data = (xcb_input_input_class_info_t *) (R + 1);
1160 i.rem = R->num_classes;
1161 i.index = (char *) i.data - (char *) R;
1162 return i;
1166 /*****************************************************************************
1168 ** xcb_input_open_device_reply_t * xcb_input_open_device_reply
1170 ** @param xcb_connection_t *c
1171 ** @param xcb_input_open_device_cookie_t cookie
1172 ** @param xcb_generic_error_t **e
1173 ** @returns xcb_input_open_device_reply_t *
1175 *****************************************************************************/
1177 xcb_input_open_device_reply_t *
1178 xcb_input_open_device_reply (xcb_connection_t *c /**< */,
1179 xcb_input_open_device_cookie_t cookie /**< */,
1180 xcb_generic_error_t **e /**< */)
1182 return (xcb_input_open_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1186 /*****************************************************************************
1188 ** xcb_void_cookie_t xcb_input_close_device_checked
1190 ** @param xcb_connection_t *c
1191 ** @param uint8_t device_id
1192 ** @returns xcb_void_cookie_t
1194 *****************************************************************************/
1196 xcb_void_cookie_t
1197 xcb_input_close_device_checked (xcb_connection_t *c /**< */,
1198 uint8_t device_id /**< */)
1200 static const xcb_protocol_request_t xcb_req = {
1201 /* count */ 2,
1202 /* ext */ &xcb_input_id,
1203 /* opcode */ XCB_INPUT_CLOSE_DEVICE,
1204 /* isvoid */ 1
1207 struct iovec xcb_parts[4];
1208 xcb_void_cookie_t xcb_ret;
1209 xcb_input_close_device_request_t xcb_out;
1211 xcb_out.device_id = device_id;
1212 memset(xcb_out.pad0, 0, 3);
1214 xcb_parts[2].iov_base = (char *) &xcb_out;
1215 xcb_parts[2].iov_len = sizeof(xcb_out);
1216 xcb_parts[3].iov_base = 0;
1217 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1219 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1220 return xcb_ret;
1224 /*****************************************************************************
1226 ** xcb_void_cookie_t xcb_input_close_device
1228 ** @param xcb_connection_t *c
1229 ** @param uint8_t device_id
1230 ** @returns xcb_void_cookie_t
1232 *****************************************************************************/
1234 xcb_void_cookie_t
1235 xcb_input_close_device (xcb_connection_t *c /**< */,
1236 uint8_t device_id /**< */)
1238 static const xcb_protocol_request_t xcb_req = {
1239 /* count */ 2,
1240 /* ext */ &xcb_input_id,
1241 /* opcode */ XCB_INPUT_CLOSE_DEVICE,
1242 /* isvoid */ 1
1245 struct iovec xcb_parts[4];
1246 xcb_void_cookie_t xcb_ret;
1247 xcb_input_close_device_request_t xcb_out;
1249 xcb_out.device_id = device_id;
1250 memset(xcb_out.pad0, 0, 3);
1252 xcb_parts[2].iov_base = (char *) &xcb_out;
1253 xcb_parts[2].iov_len = sizeof(xcb_out);
1254 xcb_parts[3].iov_base = 0;
1255 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1257 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1258 return xcb_ret;
1262 /*****************************************************************************
1264 ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode
1266 ** @param xcb_connection_t *c
1267 ** @param uint8_t device_id
1268 ** @param uint8_t mode
1269 ** @returns xcb_input_set_device_mode_cookie_t
1271 *****************************************************************************/
1273 xcb_input_set_device_mode_cookie_t
1274 xcb_input_set_device_mode (xcb_connection_t *c /**< */,
1275 uint8_t device_id /**< */,
1276 uint8_t mode /**< */)
1278 static const xcb_protocol_request_t xcb_req = {
1279 /* count */ 2,
1280 /* ext */ &xcb_input_id,
1281 /* opcode */ XCB_INPUT_SET_DEVICE_MODE,
1282 /* isvoid */ 0
1285 struct iovec xcb_parts[4];
1286 xcb_input_set_device_mode_cookie_t xcb_ret;
1287 xcb_input_set_device_mode_request_t xcb_out;
1289 xcb_out.device_id = device_id;
1290 xcb_out.mode = mode;
1291 memset(xcb_out.pad0, 0, 2);
1293 xcb_parts[2].iov_base = (char *) &xcb_out;
1294 xcb_parts[2].iov_len = sizeof(xcb_out);
1295 xcb_parts[3].iov_base = 0;
1296 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1298 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1299 return xcb_ret;
1303 /*****************************************************************************
1305 ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode_unchecked
1307 ** @param xcb_connection_t *c
1308 ** @param uint8_t device_id
1309 ** @param uint8_t mode
1310 ** @returns xcb_input_set_device_mode_cookie_t
1312 *****************************************************************************/
1314 xcb_input_set_device_mode_cookie_t
1315 xcb_input_set_device_mode_unchecked (xcb_connection_t *c /**< */,
1316 uint8_t device_id /**< */,
1317 uint8_t mode /**< */)
1319 static const xcb_protocol_request_t xcb_req = {
1320 /* count */ 2,
1321 /* ext */ &xcb_input_id,
1322 /* opcode */ XCB_INPUT_SET_DEVICE_MODE,
1323 /* isvoid */ 0
1326 struct iovec xcb_parts[4];
1327 xcb_input_set_device_mode_cookie_t xcb_ret;
1328 xcb_input_set_device_mode_request_t xcb_out;
1330 xcb_out.device_id = device_id;
1331 xcb_out.mode = mode;
1332 memset(xcb_out.pad0, 0, 2);
1334 xcb_parts[2].iov_base = (char *) &xcb_out;
1335 xcb_parts[2].iov_len = sizeof(xcb_out);
1336 xcb_parts[3].iov_base = 0;
1337 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1339 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1340 return xcb_ret;
1344 /*****************************************************************************
1346 ** xcb_input_set_device_mode_reply_t * xcb_input_set_device_mode_reply
1348 ** @param xcb_connection_t *c
1349 ** @param xcb_input_set_device_mode_cookie_t cookie
1350 ** @param xcb_generic_error_t **e
1351 ** @returns xcb_input_set_device_mode_reply_t *
1353 *****************************************************************************/
1355 xcb_input_set_device_mode_reply_t *
1356 xcb_input_set_device_mode_reply (xcb_connection_t *c /**< */,
1357 xcb_input_set_device_mode_cookie_t cookie /**< */,
1358 xcb_generic_error_t **e /**< */)
1360 return (xcb_input_set_device_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1364 xcb_input_select_extension_event_sizeof (const void *_buffer /**< */)
1366 char *xcb_tmp = (char *)_buffer;
1367 const xcb_input_select_extension_event_request_t *_aux = (xcb_input_select_extension_event_request_t *)_buffer;
1368 unsigned int xcb_buffer_len = 0;
1369 unsigned int xcb_block_len = 0;
1370 unsigned int xcb_pad = 0;
1371 unsigned int xcb_align_to = 0;
1374 xcb_block_len += sizeof(xcb_input_select_extension_event_request_t);
1375 xcb_tmp += xcb_block_len;
1376 xcb_buffer_len += xcb_block_len;
1377 xcb_block_len = 0;
1378 /* classes */
1379 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1380 xcb_tmp += xcb_block_len;
1381 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1382 /* insert padding */
1383 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1384 xcb_buffer_len += xcb_block_len + xcb_pad;
1385 if (0 != xcb_pad) {
1386 xcb_tmp += xcb_pad;
1387 xcb_pad = 0;
1389 xcb_block_len = 0;
1391 return xcb_buffer_len;
1395 /*****************************************************************************
1397 ** xcb_void_cookie_t xcb_input_select_extension_event_checked
1399 ** @param xcb_connection_t *c
1400 ** @param xcb_window_t window
1401 ** @param uint16_t num_classes
1402 ** @param const xcb_input_event_class_t *classes
1403 ** @returns xcb_void_cookie_t
1405 *****************************************************************************/
1407 xcb_void_cookie_t
1408 xcb_input_select_extension_event_checked (xcb_connection_t *c /**< */,
1409 xcb_window_t window /**< */,
1410 uint16_t num_classes /**< */,
1411 const xcb_input_event_class_t *classes /**< */)
1413 static const xcb_protocol_request_t xcb_req = {
1414 /* count */ 4,
1415 /* ext */ &xcb_input_id,
1416 /* opcode */ XCB_INPUT_SELECT_EXTENSION_EVENT,
1417 /* isvoid */ 1
1420 struct iovec xcb_parts[6];
1421 xcb_void_cookie_t xcb_ret;
1422 xcb_input_select_extension_event_request_t xcb_out;
1424 xcb_out.window = window;
1425 xcb_out.num_classes = num_classes;
1426 memset(xcb_out.pad0, 0, 2);
1428 xcb_parts[2].iov_base = (char *) &xcb_out;
1429 xcb_parts[2].iov_len = sizeof(xcb_out);
1430 xcb_parts[3].iov_base = 0;
1431 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1432 /* xcb_input_event_class_t classes */
1433 xcb_parts[4].iov_base = (char *) classes;
1434 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1435 xcb_parts[5].iov_base = 0;
1436 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1438 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1439 return xcb_ret;
1443 /*****************************************************************************
1445 ** xcb_void_cookie_t xcb_input_select_extension_event
1447 ** @param xcb_connection_t *c
1448 ** @param xcb_window_t window
1449 ** @param uint16_t num_classes
1450 ** @param const xcb_input_event_class_t *classes
1451 ** @returns xcb_void_cookie_t
1453 *****************************************************************************/
1455 xcb_void_cookie_t
1456 xcb_input_select_extension_event (xcb_connection_t *c /**< */,
1457 xcb_window_t window /**< */,
1458 uint16_t num_classes /**< */,
1459 const xcb_input_event_class_t *classes /**< */)
1461 static const xcb_protocol_request_t xcb_req = {
1462 /* count */ 4,
1463 /* ext */ &xcb_input_id,
1464 /* opcode */ XCB_INPUT_SELECT_EXTENSION_EVENT,
1465 /* isvoid */ 1
1468 struct iovec xcb_parts[6];
1469 xcb_void_cookie_t xcb_ret;
1470 xcb_input_select_extension_event_request_t xcb_out;
1472 xcb_out.window = window;
1473 xcb_out.num_classes = num_classes;
1474 memset(xcb_out.pad0, 0, 2);
1476 xcb_parts[2].iov_base = (char *) &xcb_out;
1477 xcb_parts[2].iov_len = sizeof(xcb_out);
1478 xcb_parts[3].iov_base = 0;
1479 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1480 /* xcb_input_event_class_t classes */
1481 xcb_parts[4].iov_base = (char *) classes;
1482 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1483 xcb_parts[5].iov_base = 0;
1484 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1486 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1487 return xcb_ret;
1491 xcb_input_get_selected_extension_events_sizeof (const void *_buffer /**< */)
1493 char *xcb_tmp = (char *)_buffer;
1494 const xcb_input_get_selected_extension_events_reply_t *_aux = (xcb_input_get_selected_extension_events_reply_t *)_buffer;
1495 unsigned int xcb_buffer_len = 0;
1496 unsigned int xcb_block_len = 0;
1497 unsigned int xcb_pad = 0;
1498 unsigned int xcb_align_to = 0;
1501 xcb_block_len += sizeof(xcb_input_get_selected_extension_events_reply_t);
1502 xcb_tmp += xcb_block_len;
1503 xcb_buffer_len += xcb_block_len;
1504 xcb_block_len = 0;
1505 /* this_classes */
1506 xcb_block_len += _aux->num_this_classes * sizeof(xcb_input_event_class_t);
1507 xcb_tmp += xcb_block_len;
1508 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1509 /* insert padding */
1510 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1511 xcb_buffer_len += xcb_block_len + xcb_pad;
1512 if (0 != xcb_pad) {
1513 xcb_tmp += xcb_pad;
1514 xcb_pad = 0;
1516 xcb_block_len = 0;
1517 /* all_classes */
1518 xcb_block_len += _aux->num_all_classes * sizeof(xcb_input_event_class_t);
1519 xcb_tmp += xcb_block_len;
1520 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1521 /* insert padding */
1522 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1523 xcb_buffer_len += xcb_block_len + xcb_pad;
1524 if (0 != xcb_pad) {
1525 xcb_tmp += xcb_pad;
1526 xcb_pad = 0;
1528 xcb_block_len = 0;
1530 return xcb_buffer_len;
1534 /*****************************************************************************
1536 ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events
1538 ** @param xcb_connection_t *c
1539 ** @param xcb_window_t window
1540 ** @returns xcb_input_get_selected_extension_events_cookie_t
1542 *****************************************************************************/
1544 xcb_input_get_selected_extension_events_cookie_t
1545 xcb_input_get_selected_extension_events (xcb_connection_t *c /**< */,
1546 xcb_window_t window /**< */)
1548 static const xcb_protocol_request_t xcb_req = {
1549 /* count */ 2,
1550 /* ext */ &xcb_input_id,
1551 /* opcode */ XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS,
1552 /* isvoid */ 0
1555 struct iovec xcb_parts[4];
1556 xcb_input_get_selected_extension_events_cookie_t xcb_ret;
1557 xcb_input_get_selected_extension_events_request_t xcb_out;
1559 xcb_out.window = window;
1561 xcb_parts[2].iov_base = (char *) &xcb_out;
1562 xcb_parts[2].iov_len = sizeof(xcb_out);
1563 xcb_parts[3].iov_base = 0;
1564 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1566 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1567 return xcb_ret;
1571 /*****************************************************************************
1573 ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events_unchecked
1575 ** @param xcb_connection_t *c
1576 ** @param xcb_window_t window
1577 ** @returns xcb_input_get_selected_extension_events_cookie_t
1579 *****************************************************************************/
1581 xcb_input_get_selected_extension_events_cookie_t
1582 xcb_input_get_selected_extension_events_unchecked (xcb_connection_t *c /**< */,
1583 xcb_window_t window /**< */)
1585 static const xcb_protocol_request_t xcb_req = {
1586 /* count */ 2,
1587 /* ext */ &xcb_input_id,
1588 /* opcode */ XCB_INPUT_GET_SELECTED_EXTENSION_EVENTS,
1589 /* isvoid */ 0
1592 struct iovec xcb_parts[4];
1593 xcb_input_get_selected_extension_events_cookie_t xcb_ret;
1594 xcb_input_get_selected_extension_events_request_t xcb_out;
1596 xcb_out.window = window;
1598 xcb_parts[2].iov_base = (char *) &xcb_out;
1599 xcb_parts[2].iov_len = sizeof(xcb_out);
1600 xcb_parts[3].iov_base = 0;
1601 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1603 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1604 return xcb_ret;
1608 /*****************************************************************************
1610 ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_this_classes
1612 ** @param const xcb_input_get_selected_extension_events_reply_t *R
1613 ** @returns xcb_input_event_class_t *
1615 *****************************************************************************/
1617 xcb_input_event_class_t *
1618 xcb_input_get_selected_extension_events_this_classes (const xcb_input_get_selected_extension_events_reply_t *R /**< */)
1620 return (xcb_input_event_class_t *) (R + 1);
1624 /*****************************************************************************
1626 ** int xcb_input_get_selected_extension_events_this_classes_length
1628 ** @param const xcb_input_get_selected_extension_events_reply_t *R
1629 ** @returns int
1631 *****************************************************************************/
1634 xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R /**< */)
1636 return R->num_this_classes;
1640 /*****************************************************************************
1642 ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_this_classes_end
1644 ** @param const xcb_input_get_selected_extension_events_reply_t *R
1645 ** @returns xcb_generic_iterator_t
1647 *****************************************************************************/
1649 xcb_generic_iterator_t
1650 xcb_input_get_selected_extension_events_this_classes_end (const xcb_input_get_selected_extension_events_reply_t *R /**< */)
1652 xcb_generic_iterator_t i;
1653 i.data = ((xcb_input_event_class_t *) (R + 1)) + (R->num_this_classes);
1654 i.rem = 0;
1655 i.index = (char *) i.data - (char *) R;
1656 return i;
1660 /*****************************************************************************
1662 ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_all_classes
1664 ** @param const xcb_input_get_selected_extension_events_reply_t *R
1665 ** @returns xcb_input_event_class_t *
1667 *****************************************************************************/
1669 xcb_input_event_class_t *
1670 xcb_input_get_selected_extension_events_all_classes (const xcb_input_get_selected_extension_events_reply_t *R /**< */)
1672 xcb_generic_iterator_t prev = xcb_input_get_selected_extension_events_this_classes_end(R);
1673 return (xcb_input_event_class_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_input_event_class_t, prev.index) + 0);
1677 /*****************************************************************************
1679 ** int xcb_input_get_selected_extension_events_all_classes_length
1681 ** @param const xcb_input_get_selected_extension_events_reply_t *R
1682 ** @returns int
1684 *****************************************************************************/
1687 xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R /**< */)
1689 return R->num_all_classes;
1693 /*****************************************************************************
1695 ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_all_classes_end
1697 ** @param const xcb_input_get_selected_extension_events_reply_t *R
1698 ** @returns xcb_generic_iterator_t
1700 *****************************************************************************/
1702 xcb_generic_iterator_t
1703 xcb_input_get_selected_extension_events_all_classes_end (const xcb_input_get_selected_extension_events_reply_t *R /**< */)
1705 xcb_generic_iterator_t i;
1706 xcb_generic_iterator_t child = xcb_input_get_selected_extension_events_this_classes_end(R);
1707 i.data = ((xcb_input_event_class_t *) child.data) + (R->num_all_classes);
1708 i.rem = 0;
1709 i.index = (char *) i.data - (char *) R;
1710 return i;
1714 /*****************************************************************************
1716 ** xcb_input_get_selected_extension_events_reply_t * xcb_input_get_selected_extension_events_reply
1718 ** @param xcb_connection_t *c
1719 ** @param xcb_input_get_selected_extension_events_cookie_t cookie
1720 ** @param xcb_generic_error_t **e
1721 ** @returns xcb_input_get_selected_extension_events_reply_t *
1723 *****************************************************************************/
1725 xcb_input_get_selected_extension_events_reply_t *
1726 xcb_input_get_selected_extension_events_reply (xcb_connection_t *c /**< */,
1727 xcb_input_get_selected_extension_events_cookie_t cookie /**< */,
1728 xcb_generic_error_t **e /**< */)
1730 return (xcb_input_get_selected_extension_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1734 xcb_input_change_device_dont_propagate_list_sizeof (const void *_buffer /**< */)
1736 char *xcb_tmp = (char *)_buffer;
1737 const xcb_input_change_device_dont_propagate_list_request_t *_aux = (xcb_input_change_device_dont_propagate_list_request_t *)_buffer;
1738 unsigned int xcb_buffer_len = 0;
1739 unsigned int xcb_block_len = 0;
1740 unsigned int xcb_pad = 0;
1741 unsigned int xcb_align_to = 0;
1744 xcb_block_len += sizeof(xcb_input_change_device_dont_propagate_list_request_t);
1745 xcb_tmp += xcb_block_len;
1746 xcb_buffer_len += xcb_block_len;
1747 xcb_block_len = 0;
1748 /* classes */
1749 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1750 xcb_tmp += xcb_block_len;
1751 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1752 /* insert padding */
1753 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1754 xcb_buffer_len += xcb_block_len + xcb_pad;
1755 if (0 != xcb_pad) {
1756 xcb_tmp += xcb_pad;
1757 xcb_pad = 0;
1759 xcb_block_len = 0;
1761 return xcb_buffer_len;
1765 /*****************************************************************************
1767 ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list_checked
1769 ** @param xcb_connection_t *c
1770 ** @param xcb_window_t window
1771 ** @param uint16_t num_classes
1772 ** @param uint8_t mode
1773 ** @param const xcb_input_event_class_t *classes
1774 ** @returns xcb_void_cookie_t
1776 *****************************************************************************/
1778 xcb_void_cookie_t
1779 xcb_input_change_device_dont_propagate_list_checked (xcb_connection_t *c /**< */,
1780 xcb_window_t window /**< */,
1781 uint16_t num_classes /**< */,
1782 uint8_t mode /**< */,
1783 const xcb_input_event_class_t *classes /**< */)
1785 static const xcb_protocol_request_t xcb_req = {
1786 /* count */ 4,
1787 /* ext */ &xcb_input_id,
1788 /* opcode */ XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST,
1789 /* isvoid */ 1
1792 struct iovec xcb_parts[6];
1793 xcb_void_cookie_t xcb_ret;
1794 xcb_input_change_device_dont_propagate_list_request_t xcb_out;
1796 xcb_out.window = window;
1797 xcb_out.num_classes = num_classes;
1798 xcb_out.mode = mode;
1799 xcb_out.pad0 = 0;
1801 xcb_parts[2].iov_base = (char *) &xcb_out;
1802 xcb_parts[2].iov_len = sizeof(xcb_out);
1803 xcb_parts[3].iov_base = 0;
1804 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1805 /* xcb_input_event_class_t classes */
1806 xcb_parts[4].iov_base = (char *) classes;
1807 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1808 xcb_parts[5].iov_base = 0;
1809 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1811 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1812 return xcb_ret;
1816 /*****************************************************************************
1818 ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list
1820 ** @param xcb_connection_t *c
1821 ** @param xcb_window_t window
1822 ** @param uint16_t num_classes
1823 ** @param uint8_t mode
1824 ** @param const xcb_input_event_class_t *classes
1825 ** @returns xcb_void_cookie_t
1827 *****************************************************************************/
1829 xcb_void_cookie_t
1830 xcb_input_change_device_dont_propagate_list (xcb_connection_t *c /**< */,
1831 xcb_window_t window /**< */,
1832 uint16_t num_classes /**< */,
1833 uint8_t mode /**< */,
1834 const xcb_input_event_class_t *classes /**< */)
1836 static const xcb_protocol_request_t xcb_req = {
1837 /* count */ 4,
1838 /* ext */ &xcb_input_id,
1839 /* opcode */ XCB_INPUT_CHANGE_DEVICE_DONT_PROPAGATE_LIST,
1840 /* isvoid */ 1
1843 struct iovec xcb_parts[6];
1844 xcb_void_cookie_t xcb_ret;
1845 xcb_input_change_device_dont_propagate_list_request_t xcb_out;
1847 xcb_out.window = window;
1848 xcb_out.num_classes = num_classes;
1849 xcb_out.mode = mode;
1850 xcb_out.pad0 = 0;
1852 xcb_parts[2].iov_base = (char *) &xcb_out;
1853 xcb_parts[2].iov_len = sizeof(xcb_out);
1854 xcb_parts[3].iov_base = 0;
1855 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1856 /* xcb_input_event_class_t classes */
1857 xcb_parts[4].iov_base = (char *) classes;
1858 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
1859 xcb_parts[5].iov_base = 0;
1860 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
1862 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1863 return xcb_ret;
1867 xcb_input_get_device_dont_propagate_list_sizeof (const void *_buffer /**< */)
1869 char *xcb_tmp = (char *)_buffer;
1870 const xcb_input_get_device_dont_propagate_list_reply_t *_aux = (xcb_input_get_device_dont_propagate_list_reply_t *)_buffer;
1871 unsigned int xcb_buffer_len = 0;
1872 unsigned int xcb_block_len = 0;
1873 unsigned int xcb_pad = 0;
1874 unsigned int xcb_align_to = 0;
1877 xcb_block_len += sizeof(xcb_input_get_device_dont_propagate_list_reply_t);
1878 xcb_tmp += xcb_block_len;
1879 xcb_buffer_len += xcb_block_len;
1880 xcb_block_len = 0;
1881 /* classes */
1882 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
1883 xcb_tmp += xcb_block_len;
1884 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
1885 /* insert padding */
1886 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1887 xcb_buffer_len += xcb_block_len + xcb_pad;
1888 if (0 != xcb_pad) {
1889 xcb_tmp += xcb_pad;
1890 xcb_pad = 0;
1892 xcb_block_len = 0;
1894 return xcb_buffer_len;
1898 /*****************************************************************************
1900 ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list
1902 ** @param xcb_connection_t *c
1903 ** @param xcb_window_t window
1904 ** @returns xcb_input_get_device_dont_propagate_list_cookie_t
1906 *****************************************************************************/
1908 xcb_input_get_device_dont_propagate_list_cookie_t
1909 xcb_input_get_device_dont_propagate_list (xcb_connection_t *c /**< */,
1910 xcb_window_t window /**< */)
1912 static const xcb_protocol_request_t xcb_req = {
1913 /* count */ 2,
1914 /* ext */ &xcb_input_id,
1915 /* opcode */ XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST,
1916 /* isvoid */ 0
1919 struct iovec xcb_parts[4];
1920 xcb_input_get_device_dont_propagate_list_cookie_t xcb_ret;
1921 xcb_input_get_device_dont_propagate_list_request_t xcb_out;
1923 xcb_out.window = window;
1925 xcb_parts[2].iov_base = (char *) &xcb_out;
1926 xcb_parts[2].iov_len = sizeof(xcb_out);
1927 xcb_parts[3].iov_base = 0;
1928 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1930 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1931 return xcb_ret;
1935 /*****************************************************************************
1937 ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list_unchecked
1939 ** @param xcb_connection_t *c
1940 ** @param xcb_window_t window
1941 ** @returns xcb_input_get_device_dont_propagate_list_cookie_t
1943 *****************************************************************************/
1945 xcb_input_get_device_dont_propagate_list_cookie_t
1946 xcb_input_get_device_dont_propagate_list_unchecked (xcb_connection_t *c /**< */,
1947 xcb_window_t window /**< */)
1949 static const xcb_protocol_request_t xcb_req = {
1950 /* count */ 2,
1951 /* ext */ &xcb_input_id,
1952 /* opcode */ XCB_INPUT_GET_DEVICE_DONT_PROPAGATE_LIST,
1953 /* isvoid */ 0
1956 struct iovec xcb_parts[4];
1957 xcb_input_get_device_dont_propagate_list_cookie_t xcb_ret;
1958 xcb_input_get_device_dont_propagate_list_request_t xcb_out;
1960 xcb_out.window = window;
1962 xcb_parts[2].iov_base = (char *) &xcb_out;
1963 xcb_parts[2].iov_len = sizeof(xcb_out);
1964 xcb_parts[3].iov_base = 0;
1965 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1967 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1968 return xcb_ret;
1972 /*****************************************************************************
1974 ** xcb_input_event_class_t * xcb_input_get_device_dont_propagate_list_classes
1976 ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1977 ** @returns xcb_input_event_class_t *
1979 *****************************************************************************/
1981 xcb_input_event_class_t *
1982 xcb_input_get_device_dont_propagate_list_classes (const xcb_input_get_device_dont_propagate_list_reply_t *R /**< */)
1984 return (xcb_input_event_class_t *) (R + 1);
1988 /*****************************************************************************
1990 ** int xcb_input_get_device_dont_propagate_list_classes_length
1992 ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
1993 ** @returns int
1995 *****************************************************************************/
1998 xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R /**< */)
2000 return R->num_classes;
2004 /*****************************************************************************
2006 ** xcb_generic_iterator_t xcb_input_get_device_dont_propagate_list_classes_end
2008 ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R
2009 ** @returns xcb_generic_iterator_t
2011 *****************************************************************************/
2013 xcb_generic_iterator_t
2014 xcb_input_get_device_dont_propagate_list_classes_end (const xcb_input_get_device_dont_propagate_list_reply_t *R /**< */)
2016 xcb_generic_iterator_t i;
2017 i.data = ((xcb_input_event_class_t *) (R + 1)) + (R->num_classes);
2018 i.rem = 0;
2019 i.index = (char *) i.data - (char *) R;
2020 return i;
2024 /*****************************************************************************
2026 ** xcb_input_get_device_dont_propagate_list_reply_t * xcb_input_get_device_dont_propagate_list_reply
2028 ** @param xcb_connection_t *c
2029 ** @param xcb_input_get_device_dont_propagate_list_cookie_t cookie
2030 ** @param xcb_generic_error_t **e
2031 ** @returns xcb_input_get_device_dont_propagate_list_reply_t *
2033 *****************************************************************************/
2035 xcb_input_get_device_dont_propagate_list_reply_t *
2036 xcb_input_get_device_dont_propagate_list_reply (xcb_connection_t *c /**< */,
2037 xcb_input_get_device_dont_propagate_list_cookie_t cookie /**< */,
2038 xcb_generic_error_t **e /**< */)
2040 return (xcb_input_get_device_dont_propagate_list_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2044 /*****************************************************************************
2046 ** void xcb_input_device_time_coord_next
2048 ** @param xcb_input_device_time_coord_iterator_t *i
2049 ** @returns void
2051 *****************************************************************************/
2053 void
2054 xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i /**< */)
2056 --i->rem;
2057 ++i->data;
2058 i->index += sizeof(xcb_input_device_time_coord_t);
2062 /*****************************************************************************
2064 ** xcb_generic_iterator_t xcb_input_device_time_coord_end
2066 ** @param xcb_input_device_time_coord_iterator_t i
2067 ** @returns xcb_generic_iterator_t
2069 *****************************************************************************/
2071 xcb_generic_iterator_t
2072 xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i /**< */)
2074 xcb_generic_iterator_t ret;
2075 ret.data = i.data + i.rem;
2076 ret.index = i.index + ((char *) ret.data - (char *) i.data);
2077 ret.rem = 0;
2078 return ret;
2082 /*****************************************************************************
2084 ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events
2086 ** @param xcb_connection_t *c
2087 ** @param xcb_timestamp_t start
2088 ** @param xcb_timestamp_t stop
2089 ** @param uint8_t device_id
2090 ** @returns xcb_input_get_device_motion_events_cookie_t
2092 *****************************************************************************/
2094 xcb_input_get_device_motion_events_cookie_t
2095 xcb_input_get_device_motion_events (xcb_connection_t *c /**< */,
2096 xcb_timestamp_t start /**< */,
2097 xcb_timestamp_t stop /**< */,
2098 uint8_t device_id /**< */)
2100 static const xcb_protocol_request_t xcb_req = {
2101 /* count */ 2,
2102 /* ext */ &xcb_input_id,
2103 /* opcode */ XCB_INPUT_GET_DEVICE_MOTION_EVENTS,
2104 /* isvoid */ 0
2107 struct iovec xcb_parts[4];
2108 xcb_input_get_device_motion_events_cookie_t xcb_ret;
2109 xcb_input_get_device_motion_events_request_t xcb_out;
2111 xcb_out.start = start;
2112 xcb_out.stop = stop;
2113 xcb_out.device_id = device_id;
2115 xcb_parts[2].iov_base = (char *) &xcb_out;
2116 xcb_parts[2].iov_len = sizeof(xcb_out);
2117 xcb_parts[3].iov_base = 0;
2118 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2120 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2121 return xcb_ret;
2125 /*****************************************************************************
2127 ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events_unchecked
2129 ** @param xcb_connection_t *c
2130 ** @param xcb_timestamp_t start
2131 ** @param xcb_timestamp_t stop
2132 ** @param uint8_t device_id
2133 ** @returns xcb_input_get_device_motion_events_cookie_t
2135 *****************************************************************************/
2137 xcb_input_get_device_motion_events_cookie_t
2138 xcb_input_get_device_motion_events_unchecked (xcb_connection_t *c /**< */,
2139 xcb_timestamp_t start /**< */,
2140 xcb_timestamp_t stop /**< */,
2141 uint8_t device_id /**< */)
2143 static const xcb_protocol_request_t xcb_req = {
2144 /* count */ 2,
2145 /* ext */ &xcb_input_id,
2146 /* opcode */ XCB_INPUT_GET_DEVICE_MOTION_EVENTS,
2147 /* isvoid */ 0
2150 struct iovec xcb_parts[4];
2151 xcb_input_get_device_motion_events_cookie_t xcb_ret;
2152 xcb_input_get_device_motion_events_request_t xcb_out;
2154 xcb_out.start = start;
2155 xcb_out.stop = stop;
2156 xcb_out.device_id = device_id;
2158 xcb_parts[2].iov_base = (char *) &xcb_out;
2159 xcb_parts[2].iov_len = sizeof(xcb_out);
2160 xcb_parts[3].iov_base = 0;
2161 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2163 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2164 return xcb_ret;
2168 /*****************************************************************************
2170 ** xcb_input_get_device_motion_events_reply_t * xcb_input_get_device_motion_events_reply
2172 ** @param xcb_connection_t *c
2173 ** @param xcb_input_get_device_motion_events_cookie_t cookie
2174 ** @param xcb_generic_error_t **e
2175 ** @returns xcb_input_get_device_motion_events_reply_t *
2177 *****************************************************************************/
2179 xcb_input_get_device_motion_events_reply_t *
2180 xcb_input_get_device_motion_events_reply (xcb_connection_t *c /**< */,
2181 xcb_input_get_device_motion_events_cookie_t cookie /**< */,
2182 xcb_generic_error_t **e /**< */)
2184 return (xcb_input_get_device_motion_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2188 /*****************************************************************************
2190 ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device
2192 ** @param xcb_connection_t *c
2193 ** @param uint8_t device_id
2194 ** @returns xcb_input_change_keyboard_device_cookie_t
2196 *****************************************************************************/
2198 xcb_input_change_keyboard_device_cookie_t
2199 xcb_input_change_keyboard_device (xcb_connection_t *c /**< */,
2200 uint8_t device_id /**< */)
2202 static const xcb_protocol_request_t xcb_req = {
2203 /* count */ 2,
2204 /* ext */ &xcb_input_id,
2205 /* opcode */ XCB_INPUT_CHANGE_KEYBOARD_DEVICE,
2206 /* isvoid */ 0
2209 struct iovec xcb_parts[4];
2210 xcb_input_change_keyboard_device_cookie_t xcb_ret;
2211 xcb_input_change_keyboard_device_request_t xcb_out;
2213 xcb_out.device_id = device_id;
2214 memset(xcb_out.pad0, 0, 3);
2216 xcb_parts[2].iov_base = (char *) &xcb_out;
2217 xcb_parts[2].iov_len = sizeof(xcb_out);
2218 xcb_parts[3].iov_base = 0;
2219 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2221 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2222 return xcb_ret;
2226 /*****************************************************************************
2228 ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device_unchecked
2230 ** @param xcb_connection_t *c
2231 ** @param uint8_t device_id
2232 ** @returns xcb_input_change_keyboard_device_cookie_t
2234 *****************************************************************************/
2236 xcb_input_change_keyboard_device_cookie_t
2237 xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c /**< */,
2238 uint8_t device_id /**< */)
2240 static const xcb_protocol_request_t xcb_req = {
2241 /* count */ 2,
2242 /* ext */ &xcb_input_id,
2243 /* opcode */ XCB_INPUT_CHANGE_KEYBOARD_DEVICE,
2244 /* isvoid */ 0
2247 struct iovec xcb_parts[4];
2248 xcb_input_change_keyboard_device_cookie_t xcb_ret;
2249 xcb_input_change_keyboard_device_request_t xcb_out;
2251 xcb_out.device_id = device_id;
2252 memset(xcb_out.pad0, 0, 3);
2254 xcb_parts[2].iov_base = (char *) &xcb_out;
2255 xcb_parts[2].iov_len = sizeof(xcb_out);
2256 xcb_parts[3].iov_base = 0;
2257 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2259 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2260 return xcb_ret;
2264 /*****************************************************************************
2266 ** xcb_input_change_keyboard_device_reply_t * xcb_input_change_keyboard_device_reply
2268 ** @param xcb_connection_t *c
2269 ** @param xcb_input_change_keyboard_device_cookie_t cookie
2270 ** @param xcb_generic_error_t **e
2271 ** @returns xcb_input_change_keyboard_device_reply_t *
2273 *****************************************************************************/
2275 xcb_input_change_keyboard_device_reply_t *
2276 xcb_input_change_keyboard_device_reply (xcb_connection_t *c /**< */,
2277 xcb_input_change_keyboard_device_cookie_t cookie /**< */,
2278 xcb_generic_error_t **e /**< */)
2280 return (xcb_input_change_keyboard_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2284 /*****************************************************************************
2286 ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device
2288 ** @param xcb_connection_t *c
2289 ** @param uint8_t x_axis
2290 ** @param uint8_t y_axis
2291 ** @param uint8_t device_id
2292 ** @returns xcb_input_change_pointer_device_cookie_t
2294 *****************************************************************************/
2296 xcb_input_change_pointer_device_cookie_t
2297 xcb_input_change_pointer_device (xcb_connection_t *c /**< */,
2298 uint8_t x_axis /**< */,
2299 uint8_t y_axis /**< */,
2300 uint8_t device_id /**< */)
2302 static const xcb_protocol_request_t xcb_req = {
2303 /* count */ 2,
2304 /* ext */ &xcb_input_id,
2305 /* opcode */ XCB_INPUT_CHANGE_POINTER_DEVICE,
2306 /* isvoid */ 0
2309 struct iovec xcb_parts[4];
2310 xcb_input_change_pointer_device_cookie_t xcb_ret;
2311 xcb_input_change_pointer_device_request_t xcb_out;
2313 xcb_out.x_axis = x_axis;
2314 xcb_out.y_axis = y_axis;
2315 xcb_out.device_id = device_id;
2316 xcb_out.pad0 = 0;
2318 xcb_parts[2].iov_base = (char *) &xcb_out;
2319 xcb_parts[2].iov_len = sizeof(xcb_out);
2320 xcb_parts[3].iov_base = 0;
2321 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2323 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2324 return xcb_ret;
2328 /*****************************************************************************
2330 ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device_unchecked
2332 ** @param xcb_connection_t *c
2333 ** @param uint8_t x_axis
2334 ** @param uint8_t y_axis
2335 ** @param uint8_t device_id
2336 ** @returns xcb_input_change_pointer_device_cookie_t
2338 *****************************************************************************/
2340 xcb_input_change_pointer_device_cookie_t
2341 xcb_input_change_pointer_device_unchecked (xcb_connection_t *c /**< */,
2342 uint8_t x_axis /**< */,
2343 uint8_t y_axis /**< */,
2344 uint8_t device_id /**< */)
2346 static const xcb_protocol_request_t xcb_req = {
2347 /* count */ 2,
2348 /* ext */ &xcb_input_id,
2349 /* opcode */ XCB_INPUT_CHANGE_POINTER_DEVICE,
2350 /* isvoid */ 0
2353 struct iovec xcb_parts[4];
2354 xcb_input_change_pointer_device_cookie_t xcb_ret;
2355 xcb_input_change_pointer_device_request_t xcb_out;
2357 xcb_out.x_axis = x_axis;
2358 xcb_out.y_axis = y_axis;
2359 xcb_out.device_id = device_id;
2360 xcb_out.pad0 = 0;
2362 xcb_parts[2].iov_base = (char *) &xcb_out;
2363 xcb_parts[2].iov_len = sizeof(xcb_out);
2364 xcb_parts[3].iov_base = 0;
2365 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2367 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2368 return xcb_ret;
2372 /*****************************************************************************
2374 ** xcb_input_change_pointer_device_reply_t * xcb_input_change_pointer_device_reply
2376 ** @param xcb_connection_t *c
2377 ** @param xcb_input_change_pointer_device_cookie_t cookie
2378 ** @param xcb_generic_error_t **e
2379 ** @returns xcb_input_change_pointer_device_reply_t *
2381 *****************************************************************************/
2383 xcb_input_change_pointer_device_reply_t *
2384 xcb_input_change_pointer_device_reply (xcb_connection_t *c /**< */,
2385 xcb_input_change_pointer_device_cookie_t cookie /**< */,
2386 xcb_generic_error_t **e /**< */)
2388 return (xcb_input_change_pointer_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2392 xcb_input_grab_device_sizeof (const void *_buffer /**< */)
2394 char *xcb_tmp = (char *)_buffer;
2395 const xcb_input_grab_device_request_t *_aux = (xcb_input_grab_device_request_t *)_buffer;
2396 unsigned int xcb_buffer_len = 0;
2397 unsigned int xcb_block_len = 0;
2398 unsigned int xcb_pad = 0;
2399 unsigned int xcb_align_to = 0;
2402 xcb_block_len += sizeof(xcb_input_grab_device_request_t);
2403 xcb_tmp += xcb_block_len;
2404 xcb_buffer_len += xcb_block_len;
2405 xcb_block_len = 0;
2406 /* classes */
2407 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2408 xcb_tmp += xcb_block_len;
2409 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2410 /* insert padding */
2411 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2412 xcb_buffer_len += xcb_block_len + xcb_pad;
2413 if (0 != xcb_pad) {
2414 xcb_tmp += xcb_pad;
2415 xcb_pad = 0;
2417 xcb_block_len = 0;
2419 return xcb_buffer_len;
2423 /*****************************************************************************
2425 ** xcb_input_grab_device_cookie_t xcb_input_grab_device
2427 ** @param xcb_connection_t *c
2428 ** @param xcb_window_t grab_window
2429 ** @param xcb_timestamp_t time
2430 ** @param uint16_t num_classes
2431 ** @param uint8_t this_device_mode
2432 ** @param uint8_t other_device_mode
2433 ** @param uint8_t owner_events
2434 ** @param uint8_t device_id
2435 ** @param const xcb_input_event_class_t *classes
2436 ** @returns xcb_input_grab_device_cookie_t
2438 *****************************************************************************/
2440 xcb_input_grab_device_cookie_t
2441 xcb_input_grab_device (xcb_connection_t *c /**< */,
2442 xcb_window_t grab_window /**< */,
2443 xcb_timestamp_t time /**< */,
2444 uint16_t num_classes /**< */,
2445 uint8_t this_device_mode /**< */,
2446 uint8_t other_device_mode /**< */,
2447 uint8_t owner_events /**< */,
2448 uint8_t device_id /**< */,
2449 const xcb_input_event_class_t *classes /**< */)
2451 static const xcb_protocol_request_t xcb_req = {
2452 /* count */ 4,
2453 /* ext */ &xcb_input_id,
2454 /* opcode */ XCB_INPUT_GRAB_DEVICE,
2455 /* isvoid */ 0
2458 struct iovec xcb_parts[6];
2459 xcb_input_grab_device_cookie_t xcb_ret;
2460 xcb_input_grab_device_request_t xcb_out;
2462 xcb_out.grab_window = grab_window;
2463 xcb_out.time = time;
2464 xcb_out.num_classes = num_classes;
2465 xcb_out.this_device_mode = this_device_mode;
2466 xcb_out.other_device_mode = other_device_mode;
2467 xcb_out.owner_events = owner_events;
2468 xcb_out.device_id = device_id;
2469 memset(xcb_out.pad0, 0, 2);
2471 xcb_parts[2].iov_base = (char *) &xcb_out;
2472 xcb_parts[2].iov_len = sizeof(xcb_out);
2473 xcb_parts[3].iov_base = 0;
2474 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2475 /* xcb_input_event_class_t classes */
2476 xcb_parts[4].iov_base = (char *) classes;
2477 xcb_parts[4].iov_len = num_classes * sizeof(uint32_t);
2478 xcb_parts[5].iov_base = 0;
2479 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2481 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2482 return xcb_ret;
2486 /*****************************************************************************
2488 ** xcb_input_grab_device_cookie_t xcb_input_grab_device_unchecked
2490 ** @param xcb_connection_t *c
2491 ** @param xcb_window_t grab_window
2492 ** @param xcb_timestamp_t time
2493 ** @param uint16_t num_classes
2494 ** @param uint8_t this_device_mode
2495 ** @param uint8_t other_device_mode
2496 ** @param uint8_t owner_events
2497 ** @param uint8_t device_id
2498 ** @param const xcb_input_event_class_t *classes
2499 ** @returns xcb_input_grab_device_cookie_t
2501 *****************************************************************************/
2503 xcb_input_grab_device_cookie_t
2504 xcb_input_grab_device_unchecked (xcb_connection_t *c /**< */,
2505 xcb_window_t grab_window /**< */,
2506 xcb_timestamp_t time /**< */,
2507 uint16_t num_classes /**< */,
2508 uint8_t this_device_mode /**< */,
2509 uint8_t other_device_mode /**< */,
2510 uint8_t owner_events /**< */,
2511 uint8_t device_id /**< */,
2512 const xcb_input_event_class_t *classes /**< */)
2514 static const xcb_protocol_request_t xcb_req = {
2515 /* count */ 4,
2516 /* ext */ &xcb_input_id,
2517 /* opcode */ XCB_INPUT_GRAB_DEVICE,
2518 /* isvoid */ 0
2521 struct iovec xcb_parts[6];
2522 xcb_input_grab_device_cookie_t xcb_ret;
2523 xcb_input_grab_device_request_t xcb_out;
2525 xcb_out.grab_window = grab_window;
2526 xcb_out.time = time;
2527 xcb_out.num_classes = num_classes;
2528 xcb_out.this_device_mode = this_device_mode;
2529 xcb_out.other_device_mode = other_device_mode;
2530 xcb_out.owner_events = owner_events;
2531 xcb_out.device_id = device_id;
2532 memset(xcb_out.pad0, 0, 2);
2534 xcb_parts[2].iov_base = (char *) &xcb_out;
2535 xcb_parts[2].iov_len = sizeof(xcb_out);
2536 xcb_parts[3].iov_base = 0;
2537 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2538 /* xcb_input_event_class_t classes */
2539 xcb_parts[4].iov_base = (char *) classes;
2540 xcb_parts[4].iov_len = num_classes * sizeof(uint32_t);
2541 xcb_parts[5].iov_base = 0;
2542 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2544 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2545 return xcb_ret;
2549 /*****************************************************************************
2551 ** xcb_input_grab_device_reply_t * xcb_input_grab_device_reply
2553 ** @param xcb_connection_t *c
2554 ** @param xcb_input_grab_device_cookie_t cookie
2555 ** @param xcb_generic_error_t **e
2556 ** @returns xcb_input_grab_device_reply_t *
2558 *****************************************************************************/
2560 xcb_input_grab_device_reply_t *
2561 xcb_input_grab_device_reply (xcb_connection_t *c /**< */,
2562 xcb_input_grab_device_cookie_t cookie /**< */,
2563 xcb_generic_error_t **e /**< */)
2565 return (xcb_input_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2569 /*****************************************************************************
2571 ** xcb_void_cookie_t xcb_input_ungrab_device_checked
2573 ** @param xcb_connection_t *c
2574 ** @param xcb_timestamp_t time
2575 ** @param uint8_t device_id
2576 ** @returns xcb_void_cookie_t
2578 *****************************************************************************/
2580 xcb_void_cookie_t
2581 xcb_input_ungrab_device_checked (xcb_connection_t *c /**< */,
2582 xcb_timestamp_t time /**< */,
2583 uint8_t device_id /**< */)
2585 static const xcb_protocol_request_t xcb_req = {
2586 /* count */ 2,
2587 /* ext */ &xcb_input_id,
2588 /* opcode */ XCB_INPUT_UNGRAB_DEVICE,
2589 /* isvoid */ 1
2592 struct iovec xcb_parts[4];
2593 xcb_void_cookie_t xcb_ret;
2594 xcb_input_ungrab_device_request_t xcb_out;
2596 xcb_out.time = time;
2597 xcb_out.device_id = device_id;
2599 xcb_parts[2].iov_base = (char *) &xcb_out;
2600 xcb_parts[2].iov_len = sizeof(xcb_out);
2601 xcb_parts[3].iov_base = 0;
2602 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2604 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2605 return xcb_ret;
2609 /*****************************************************************************
2611 ** xcb_void_cookie_t xcb_input_ungrab_device
2613 ** @param xcb_connection_t *c
2614 ** @param xcb_timestamp_t time
2615 ** @param uint8_t device_id
2616 ** @returns xcb_void_cookie_t
2618 *****************************************************************************/
2620 xcb_void_cookie_t
2621 xcb_input_ungrab_device (xcb_connection_t *c /**< */,
2622 xcb_timestamp_t time /**< */,
2623 uint8_t device_id /**< */)
2625 static const xcb_protocol_request_t xcb_req = {
2626 /* count */ 2,
2627 /* ext */ &xcb_input_id,
2628 /* opcode */ XCB_INPUT_UNGRAB_DEVICE,
2629 /* isvoid */ 1
2632 struct iovec xcb_parts[4];
2633 xcb_void_cookie_t xcb_ret;
2634 xcb_input_ungrab_device_request_t xcb_out;
2636 xcb_out.time = time;
2637 xcb_out.device_id = device_id;
2639 xcb_parts[2].iov_base = (char *) &xcb_out;
2640 xcb_parts[2].iov_len = sizeof(xcb_out);
2641 xcb_parts[3].iov_base = 0;
2642 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2644 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2645 return xcb_ret;
2649 xcb_input_grab_device_key_sizeof (const void *_buffer /**< */)
2651 char *xcb_tmp = (char *)_buffer;
2652 const xcb_input_grab_device_key_request_t *_aux = (xcb_input_grab_device_key_request_t *)_buffer;
2653 unsigned int xcb_buffer_len = 0;
2654 unsigned int xcb_block_len = 0;
2655 unsigned int xcb_pad = 0;
2656 unsigned int xcb_align_to = 0;
2659 xcb_block_len += sizeof(xcb_input_grab_device_key_request_t);
2660 xcb_tmp += xcb_block_len;
2661 xcb_buffer_len += xcb_block_len;
2662 xcb_block_len = 0;
2663 /* classes */
2664 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2665 xcb_tmp += xcb_block_len;
2666 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2667 /* insert padding */
2668 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2669 xcb_buffer_len += xcb_block_len + xcb_pad;
2670 if (0 != xcb_pad) {
2671 xcb_tmp += xcb_pad;
2672 xcb_pad = 0;
2674 xcb_block_len = 0;
2676 return xcb_buffer_len;
2680 /*****************************************************************************
2682 ** xcb_void_cookie_t xcb_input_grab_device_key_checked
2684 ** @param xcb_connection_t *c
2685 ** @param xcb_window_t grab_window
2686 ** @param uint16_t num_classes
2687 ** @param uint16_t modifiers
2688 ** @param uint8_t modifier_device
2689 ** @param uint8_t grabbed_device
2690 ** @param uint8_t key
2691 ** @param uint8_t this_device_mode
2692 ** @param uint8_t other_device_mode
2693 ** @param uint8_t owner_events
2694 ** @param const xcb_input_event_class_t *classes
2695 ** @returns xcb_void_cookie_t
2697 *****************************************************************************/
2699 xcb_void_cookie_t
2700 xcb_input_grab_device_key_checked (xcb_connection_t *c /**< */,
2701 xcb_window_t grab_window /**< */,
2702 uint16_t num_classes /**< */,
2703 uint16_t modifiers /**< */,
2704 uint8_t modifier_device /**< */,
2705 uint8_t grabbed_device /**< */,
2706 uint8_t key /**< */,
2707 uint8_t this_device_mode /**< */,
2708 uint8_t other_device_mode /**< */,
2709 uint8_t owner_events /**< */,
2710 const xcb_input_event_class_t *classes /**< */)
2712 static const xcb_protocol_request_t xcb_req = {
2713 /* count */ 4,
2714 /* ext */ &xcb_input_id,
2715 /* opcode */ XCB_INPUT_GRAB_DEVICE_KEY,
2716 /* isvoid */ 1
2719 struct iovec xcb_parts[6];
2720 xcb_void_cookie_t xcb_ret;
2721 xcb_input_grab_device_key_request_t xcb_out;
2723 xcb_out.grab_window = grab_window;
2724 xcb_out.num_classes = num_classes;
2725 xcb_out.modifiers = modifiers;
2726 xcb_out.modifier_device = modifier_device;
2727 xcb_out.grabbed_device = grabbed_device;
2728 xcb_out.key = key;
2729 xcb_out.this_device_mode = this_device_mode;
2730 xcb_out.other_device_mode = other_device_mode;
2731 xcb_out.owner_events = owner_events;
2732 memset(xcb_out.pad0, 0, 2);
2734 xcb_parts[2].iov_base = (char *) &xcb_out;
2735 xcb_parts[2].iov_len = sizeof(xcb_out);
2736 xcb_parts[3].iov_base = 0;
2737 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2738 /* xcb_input_event_class_t classes */
2739 xcb_parts[4].iov_base = (char *) classes;
2740 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2741 xcb_parts[5].iov_base = 0;
2742 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2744 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2745 return xcb_ret;
2749 /*****************************************************************************
2751 ** xcb_void_cookie_t xcb_input_grab_device_key
2753 ** @param xcb_connection_t *c
2754 ** @param xcb_window_t grab_window
2755 ** @param uint16_t num_classes
2756 ** @param uint16_t modifiers
2757 ** @param uint8_t modifier_device
2758 ** @param uint8_t grabbed_device
2759 ** @param uint8_t key
2760 ** @param uint8_t this_device_mode
2761 ** @param uint8_t other_device_mode
2762 ** @param uint8_t owner_events
2763 ** @param const xcb_input_event_class_t *classes
2764 ** @returns xcb_void_cookie_t
2766 *****************************************************************************/
2768 xcb_void_cookie_t
2769 xcb_input_grab_device_key (xcb_connection_t *c /**< */,
2770 xcb_window_t grab_window /**< */,
2771 uint16_t num_classes /**< */,
2772 uint16_t modifiers /**< */,
2773 uint8_t modifier_device /**< */,
2774 uint8_t grabbed_device /**< */,
2775 uint8_t key /**< */,
2776 uint8_t this_device_mode /**< */,
2777 uint8_t other_device_mode /**< */,
2778 uint8_t owner_events /**< */,
2779 const xcb_input_event_class_t *classes /**< */)
2781 static const xcb_protocol_request_t xcb_req = {
2782 /* count */ 4,
2783 /* ext */ &xcb_input_id,
2784 /* opcode */ XCB_INPUT_GRAB_DEVICE_KEY,
2785 /* isvoid */ 1
2788 struct iovec xcb_parts[6];
2789 xcb_void_cookie_t xcb_ret;
2790 xcb_input_grab_device_key_request_t xcb_out;
2792 xcb_out.grab_window = grab_window;
2793 xcb_out.num_classes = num_classes;
2794 xcb_out.modifiers = modifiers;
2795 xcb_out.modifier_device = modifier_device;
2796 xcb_out.grabbed_device = grabbed_device;
2797 xcb_out.key = key;
2798 xcb_out.this_device_mode = this_device_mode;
2799 xcb_out.other_device_mode = other_device_mode;
2800 xcb_out.owner_events = owner_events;
2801 memset(xcb_out.pad0, 0, 2);
2803 xcb_parts[2].iov_base = (char *) &xcb_out;
2804 xcb_parts[2].iov_len = sizeof(xcb_out);
2805 xcb_parts[3].iov_base = 0;
2806 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2807 /* xcb_input_event_class_t classes */
2808 xcb_parts[4].iov_base = (char *) classes;
2809 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
2810 xcb_parts[5].iov_base = 0;
2811 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2813 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2814 return xcb_ret;
2818 /*****************************************************************************
2820 ** xcb_void_cookie_t xcb_input_ungrab_device_key_checked
2822 ** @param xcb_connection_t *c
2823 ** @param xcb_window_t grabWindow
2824 ** @param uint16_t modifiers
2825 ** @param uint8_t modifier_device
2826 ** @param uint8_t key
2827 ** @param uint8_t grabbed_device
2828 ** @returns xcb_void_cookie_t
2830 *****************************************************************************/
2832 xcb_void_cookie_t
2833 xcb_input_ungrab_device_key_checked (xcb_connection_t *c /**< */,
2834 xcb_window_t grabWindow /**< */,
2835 uint16_t modifiers /**< */,
2836 uint8_t modifier_device /**< */,
2837 uint8_t key /**< */,
2838 uint8_t grabbed_device /**< */)
2840 static const xcb_protocol_request_t xcb_req = {
2841 /* count */ 2,
2842 /* ext */ &xcb_input_id,
2843 /* opcode */ XCB_INPUT_UNGRAB_DEVICE_KEY,
2844 /* isvoid */ 1
2847 struct iovec xcb_parts[4];
2848 xcb_void_cookie_t xcb_ret;
2849 xcb_input_ungrab_device_key_request_t xcb_out;
2851 xcb_out.grabWindow = grabWindow;
2852 xcb_out.modifiers = modifiers;
2853 xcb_out.modifier_device = modifier_device;
2854 xcb_out.key = key;
2855 xcb_out.grabbed_device = grabbed_device;
2857 xcb_parts[2].iov_base = (char *) &xcb_out;
2858 xcb_parts[2].iov_len = sizeof(xcb_out);
2859 xcb_parts[3].iov_base = 0;
2860 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2862 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2863 return xcb_ret;
2867 /*****************************************************************************
2869 ** xcb_void_cookie_t xcb_input_ungrab_device_key
2871 ** @param xcb_connection_t *c
2872 ** @param xcb_window_t grabWindow
2873 ** @param uint16_t modifiers
2874 ** @param uint8_t modifier_device
2875 ** @param uint8_t key
2876 ** @param uint8_t grabbed_device
2877 ** @returns xcb_void_cookie_t
2879 *****************************************************************************/
2881 xcb_void_cookie_t
2882 xcb_input_ungrab_device_key (xcb_connection_t *c /**< */,
2883 xcb_window_t grabWindow /**< */,
2884 uint16_t modifiers /**< */,
2885 uint8_t modifier_device /**< */,
2886 uint8_t key /**< */,
2887 uint8_t grabbed_device /**< */)
2889 static const xcb_protocol_request_t xcb_req = {
2890 /* count */ 2,
2891 /* ext */ &xcb_input_id,
2892 /* opcode */ XCB_INPUT_UNGRAB_DEVICE_KEY,
2893 /* isvoid */ 1
2896 struct iovec xcb_parts[4];
2897 xcb_void_cookie_t xcb_ret;
2898 xcb_input_ungrab_device_key_request_t xcb_out;
2900 xcb_out.grabWindow = grabWindow;
2901 xcb_out.modifiers = modifiers;
2902 xcb_out.modifier_device = modifier_device;
2903 xcb_out.key = key;
2904 xcb_out.grabbed_device = grabbed_device;
2906 xcb_parts[2].iov_base = (char *) &xcb_out;
2907 xcb_parts[2].iov_len = sizeof(xcb_out);
2908 xcb_parts[3].iov_base = 0;
2909 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2911 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2912 return xcb_ret;
2916 xcb_input_grab_device_button_sizeof (const void *_buffer /**< */)
2918 char *xcb_tmp = (char *)_buffer;
2919 const xcb_input_grab_device_button_request_t *_aux = (xcb_input_grab_device_button_request_t *)_buffer;
2920 unsigned int xcb_buffer_len = 0;
2921 unsigned int xcb_block_len = 0;
2922 unsigned int xcb_pad = 0;
2923 unsigned int xcb_align_to = 0;
2926 xcb_block_len += sizeof(xcb_input_grab_device_button_request_t);
2927 xcb_tmp += xcb_block_len;
2928 xcb_buffer_len += xcb_block_len;
2929 xcb_block_len = 0;
2930 /* classes */
2931 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
2932 xcb_tmp += xcb_block_len;
2933 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
2934 /* insert padding */
2935 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2936 xcb_buffer_len += xcb_block_len + xcb_pad;
2937 if (0 != xcb_pad) {
2938 xcb_tmp += xcb_pad;
2939 xcb_pad = 0;
2941 xcb_block_len = 0;
2943 return xcb_buffer_len;
2947 /*****************************************************************************
2949 ** xcb_void_cookie_t xcb_input_grab_device_button_checked
2951 ** @param xcb_connection_t *c
2952 ** @param xcb_window_t grab_window
2953 ** @param uint8_t grabbed_device
2954 ** @param uint8_t modifier_device
2955 ** @param uint16_t num_classes
2956 ** @param uint16_t modifiers
2957 ** @param uint8_t this_device_mode
2958 ** @param uint8_t other_device_mode
2959 ** @param uint8_t button
2960 ** @param uint8_t owner_events
2961 ** @param const xcb_input_event_class_t *classes
2962 ** @returns xcb_void_cookie_t
2964 *****************************************************************************/
2966 xcb_void_cookie_t
2967 xcb_input_grab_device_button_checked (xcb_connection_t *c /**< */,
2968 xcb_window_t grab_window /**< */,
2969 uint8_t grabbed_device /**< */,
2970 uint8_t modifier_device /**< */,
2971 uint16_t num_classes /**< */,
2972 uint16_t modifiers /**< */,
2973 uint8_t this_device_mode /**< */,
2974 uint8_t other_device_mode /**< */,
2975 uint8_t button /**< */,
2976 uint8_t owner_events /**< */,
2977 const xcb_input_event_class_t *classes /**< */)
2979 static const xcb_protocol_request_t xcb_req = {
2980 /* count */ 4,
2981 /* ext */ &xcb_input_id,
2982 /* opcode */ XCB_INPUT_GRAB_DEVICE_BUTTON,
2983 /* isvoid */ 1
2986 struct iovec xcb_parts[6];
2987 xcb_void_cookie_t xcb_ret;
2988 xcb_input_grab_device_button_request_t xcb_out;
2990 xcb_out.grab_window = grab_window;
2991 xcb_out.grabbed_device = grabbed_device;
2992 xcb_out.modifier_device = modifier_device;
2993 xcb_out.num_classes = num_classes;
2994 xcb_out.modifiers = modifiers;
2995 xcb_out.this_device_mode = this_device_mode;
2996 xcb_out.other_device_mode = other_device_mode;
2997 xcb_out.button = button;
2998 xcb_out.owner_events = owner_events;
2999 memset(xcb_out.pad0, 0, 2);
3001 xcb_parts[2].iov_base = (char *) &xcb_out;
3002 xcb_parts[2].iov_len = sizeof(xcb_out);
3003 xcb_parts[3].iov_base = 0;
3004 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3005 /* xcb_input_event_class_t classes */
3006 xcb_parts[4].iov_base = (char *) classes;
3007 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
3008 xcb_parts[5].iov_base = 0;
3009 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3011 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3012 return xcb_ret;
3016 /*****************************************************************************
3018 ** xcb_void_cookie_t xcb_input_grab_device_button
3020 ** @param xcb_connection_t *c
3021 ** @param xcb_window_t grab_window
3022 ** @param uint8_t grabbed_device
3023 ** @param uint8_t modifier_device
3024 ** @param uint16_t num_classes
3025 ** @param uint16_t modifiers
3026 ** @param uint8_t this_device_mode
3027 ** @param uint8_t other_device_mode
3028 ** @param uint8_t button
3029 ** @param uint8_t owner_events
3030 ** @param const xcb_input_event_class_t *classes
3031 ** @returns xcb_void_cookie_t
3033 *****************************************************************************/
3035 xcb_void_cookie_t
3036 xcb_input_grab_device_button (xcb_connection_t *c /**< */,
3037 xcb_window_t grab_window /**< */,
3038 uint8_t grabbed_device /**< */,
3039 uint8_t modifier_device /**< */,
3040 uint16_t num_classes /**< */,
3041 uint16_t modifiers /**< */,
3042 uint8_t this_device_mode /**< */,
3043 uint8_t other_device_mode /**< */,
3044 uint8_t button /**< */,
3045 uint8_t owner_events /**< */,
3046 const xcb_input_event_class_t *classes /**< */)
3048 static const xcb_protocol_request_t xcb_req = {
3049 /* count */ 4,
3050 /* ext */ &xcb_input_id,
3051 /* opcode */ XCB_INPUT_GRAB_DEVICE_BUTTON,
3052 /* isvoid */ 1
3055 struct iovec xcb_parts[6];
3056 xcb_void_cookie_t xcb_ret;
3057 xcb_input_grab_device_button_request_t xcb_out;
3059 xcb_out.grab_window = grab_window;
3060 xcb_out.grabbed_device = grabbed_device;
3061 xcb_out.modifier_device = modifier_device;
3062 xcb_out.num_classes = num_classes;
3063 xcb_out.modifiers = modifiers;
3064 xcb_out.this_device_mode = this_device_mode;
3065 xcb_out.other_device_mode = other_device_mode;
3066 xcb_out.button = button;
3067 xcb_out.owner_events = owner_events;
3068 memset(xcb_out.pad0, 0, 2);
3070 xcb_parts[2].iov_base = (char *) &xcb_out;
3071 xcb_parts[2].iov_len = sizeof(xcb_out);
3072 xcb_parts[3].iov_base = 0;
3073 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3074 /* xcb_input_event_class_t classes */
3075 xcb_parts[4].iov_base = (char *) classes;
3076 xcb_parts[4].iov_len = num_classes * sizeof(xcb_input_event_class_t);
3077 xcb_parts[5].iov_base = 0;
3078 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
3080 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3081 return xcb_ret;
3085 /*****************************************************************************
3087 ** xcb_void_cookie_t xcb_input_ungrab_device_button_checked
3089 ** @param xcb_connection_t *c
3090 ** @param xcb_window_t grab_window
3091 ** @param uint16_t modifiers
3092 ** @param uint8_t modifier_device
3093 ** @param uint8_t button
3094 ** @param uint8_t grabbed_device
3095 ** @returns xcb_void_cookie_t
3097 *****************************************************************************/
3099 xcb_void_cookie_t
3100 xcb_input_ungrab_device_button_checked (xcb_connection_t *c /**< */,
3101 xcb_window_t grab_window /**< */,
3102 uint16_t modifiers /**< */,
3103 uint8_t modifier_device /**< */,
3104 uint8_t button /**< */,
3105 uint8_t grabbed_device /**< */)
3107 static const xcb_protocol_request_t xcb_req = {
3108 /* count */ 2,
3109 /* ext */ &xcb_input_id,
3110 /* opcode */ XCB_INPUT_UNGRAB_DEVICE_BUTTON,
3111 /* isvoid */ 1
3114 struct iovec xcb_parts[4];
3115 xcb_void_cookie_t xcb_ret;
3116 xcb_input_ungrab_device_button_request_t xcb_out;
3118 xcb_out.grab_window = grab_window;
3119 xcb_out.modifiers = modifiers;
3120 xcb_out.modifier_device = modifier_device;
3121 xcb_out.button = button;
3122 xcb_out.grabbed_device = grabbed_device;
3124 xcb_parts[2].iov_base = (char *) &xcb_out;
3125 xcb_parts[2].iov_len = sizeof(xcb_out);
3126 xcb_parts[3].iov_base = 0;
3127 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3129 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3130 return xcb_ret;
3134 /*****************************************************************************
3136 ** xcb_void_cookie_t xcb_input_ungrab_device_button
3138 ** @param xcb_connection_t *c
3139 ** @param xcb_window_t grab_window
3140 ** @param uint16_t modifiers
3141 ** @param uint8_t modifier_device
3142 ** @param uint8_t button
3143 ** @param uint8_t grabbed_device
3144 ** @returns xcb_void_cookie_t
3146 *****************************************************************************/
3148 xcb_void_cookie_t
3149 xcb_input_ungrab_device_button (xcb_connection_t *c /**< */,
3150 xcb_window_t grab_window /**< */,
3151 uint16_t modifiers /**< */,
3152 uint8_t modifier_device /**< */,
3153 uint8_t button /**< */,
3154 uint8_t grabbed_device /**< */)
3156 static const xcb_protocol_request_t xcb_req = {
3157 /* count */ 2,
3158 /* ext */ &xcb_input_id,
3159 /* opcode */ XCB_INPUT_UNGRAB_DEVICE_BUTTON,
3160 /* isvoid */ 1
3163 struct iovec xcb_parts[4];
3164 xcb_void_cookie_t xcb_ret;
3165 xcb_input_ungrab_device_button_request_t xcb_out;
3167 xcb_out.grab_window = grab_window;
3168 xcb_out.modifiers = modifiers;
3169 xcb_out.modifier_device = modifier_device;
3170 xcb_out.button = button;
3171 xcb_out.grabbed_device = grabbed_device;
3173 xcb_parts[2].iov_base = (char *) &xcb_out;
3174 xcb_parts[2].iov_len = sizeof(xcb_out);
3175 xcb_parts[3].iov_base = 0;
3176 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3178 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3179 return xcb_ret;
3183 /*****************************************************************************
3185 ** xcb_void_cookie_t xcb_input_allow_device_events_checked
3187 ** @param xcb_connection_t *c
3188 ** @param xcb_timestamp_t time
3189 ** @param uint8_t mode
3190 ** @param uint8_t device_id
3191 ** @returns xcb_void_cookie_t
3193 *****************************************************************************/
3195 xcb_void_cookie_t
3196 xcb_input_allow_device_events_checked (xcb_connection_t *c /**< */,
3197 xcb_timestamp_t time /**< */,
3198 uint8_t mode /**< */,
3199 uint8_t device_id /**< */)
3201 static const xcb_protocol_request_t xcb_req = {
3202 /* count */ 2,
3203 /* ext */ &xcb_input_id,
3204 /* opcode */ XCB_INPUT_ALLOW_DEVICE_EVENTS,
3205 /* isvoid */ 1
3208 struct iovec xcb_parts[4];
3209 xcb_void_cookie_t xcb_ret;
3210 xcb_input_allow_device_events_request_t xcb_out;
3212 xcb_out.time = time;
3213 xcb_out.mode = mode;
3214 xcb_out.device_id = device_id;
3216 xcb_parts[2].iov_base = (char *) &xcb_out;
3217 xcb_parts[2].iov_len = sizeof(xcb_out);
3218 xcb_parts[3].iov_base = 0;
3219 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3221 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3222 return xcb_ret;
3226 /*****************************************************************************
3228 ** xcb_void_cookie_t xcb_input_allow_device_events
3230 ** @param xcb_connection_t *c
3231 ** @param xcb_timestamp_t time
3232 ** @param uint8_t mode
3233 ** @param uint8_t device_id
3234 ** @returns xcb_void_cookie_t
3236 *****************************************************************************/
3238 xcb_void_cookie_t
3239 xcb_input_allow_device_events (xcb_connection_t *c /**< */,
3240 xcb_timestamp_t time /**< */,
3241 uint8_t mode /**< */,
3242 uint8_t device_id /**< */)
3244 static const xcb_protocol_request_t xcb_req = {
3245 /* count */ 2,
3246 /* ext */ &xcb_input_id,
3247 /* opcode */ XCB_INPUT_ALLOW_DEVICE_EVENTS,
3248 /* isvoid */ 1
3251 struct iovec xcb_parts[4];
3252 xcb_void_cookie_t xcb_ret;
3253 xcb_input_allow_device_events_request_t xcb_out;
3255 xcb_out.time = time;
3256 xcb_out.mode = mode;
3257 xcb_out.device_id = device_id;
3259 xcb_parts[2].iov_base = (char *) &xcb_out;
3260 xcb_parts[2].iov_len = sizeof(xcb_out);
3261 xcb_parts[3].iov_base = 0;
3262 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3264 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3265 return xcb_ret;
3269 /*****************************************************************************
3271 ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus
3273 ** @param xcb_connection_t *c
3274 ** @param uint8_t device_id
3275 ** @returns xcb_input_get_device_focus_cookie_t
3277 *****************************************************************************/
3279 xcb_input_get_device_focus_cookie_t
3280 xcb_input_get_device_focus (xcb_connection_t *c /**< */,
3281 uint8_t device_id /**< */)
3283 static const xcb_protocol_request_t xcb_req = {
3284 /* count */ 2,
3285 /* ext */ &xcb_input_id,
3286 /* opcode */ XCB_INPUT_GET_DEVICE_FOCUS,
3287 /* isvoid */ 0
3290 struct iovec xcb_parts[4];
3291 xcb_input_get_device_focus_cookie_t xcb_ret;
3292 xcb_input_get_device_focus_request_t xcb_out;
3294 xcb_out.device_id = device_id;
3295 memset(xcb_out.pad0, 0, 3);
3297 xcb_parts[2].iov_base = (char *) &xcb_out;
3298 xcb_parts[2].iov_len = sizeof(xcb_out);
3299 xcb_parts[3].iov_base = 0;
3300 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3302 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3303 return xcb_ret;
3307 /*****************************************************************************
3309 ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus_unchecked
3311 ** @param xcb_connection_t *c
3312 ** @param uint8_t device_id
3313 ** @returns xcb_input_get_device_focus_cookie_t
3315 *****************************************************************************/
3317 xcb_input_get_device_focus_cookie_t
3318 xcb_input_get_device_focus_unchecked (xcb_connection_t *c /**< */,
3319 uint8_t device_id /**< */)
3321 static const xcb_protocol_request_t xcb_req = {
3322 /* count */ 2,
3323 /* ext */ &xcb_input_id,
3324 /* opcode */ XCB_INPUT_GET_DEVICE_FOCUS,
3325 /* isvoid */ 0
3328 struct iovec xcb_parts[4];
3329 xcb_input_get_device_focus_cookie_t xcb_ret;
3330 xcb_input_get_device_focus_request_t xcb_out;
3332 xcb_out.device_id = device_id;
3333 memset(xcb_out.pad0, 0, 3);
3335 xcb_parts[2].iov_base = (char *) &xcb_out;
3336 xcb_parts[2].iov_len = sizeof(xcb_out);
3337 xcb_parts[3].iov_base = 0;
3338 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3340 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3341 return xcb_ret;
3345 /*****************************************************************************
3347 ** xcb_input_get_device_focus_reply_t * xcb_input_get_device_focus_reply
3349 ** @param xcb_connection_t *c
3350 ** @param xcb_input_get_device_focus_cookie_t cookie
3351 ** @param xcb_generic_error_t **e
3352 ** @returns xcb_input_get_device_focus_reply_t *
3354 *****************************************************************************/
3356 xcb_input_get_device_focus_reply_t *
3357 xcb_input_get_device_focus_reply (xcb_connection_t *c /**< */,
3358 xcb_input_get_device_focus_cookie_t cookie /**< */,
3359 xcb_generic_error_t **e /**< */)
3361 return (xcb_input_get_device_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
3365 /*****************************************************************************
3367 ** xcb_void_cookie_t xcb_input_set_device_focus_checked
3369 ** @param xcb_connection_t *c
3370 ** @param xcb_window_t focus
3371 ** @param xcb_timestamp_t time
3372 ** @param uint8_t revert_to
3373 ** @param uint8_t device_id
3374 ** @returns xcb_void_cookie_t
3376 *****************************************************************************/
3378 xcb_void_cookie_t
3379 xcb_input_set_device_focus_checked (xcb_connection_t *c /**< */,
3380 xcb_window_t focus /**< */,
3381 xcb_timestamp_t time /**< */,
3382 uint8_t revert_to /**< */,
3383 uint8_t device_id /**< */)
3385 static const xcb_protocol_request_t xcb_req = {
3386 /* count */ 2,
3387 /* ext */ &xcb_input_id,
3388 /* opcode */ XCB_INPUT_SET_DEVICE_FOCUS,
3389 /* isvoid */ 1
3392 struct iovec xcb_parts[4];
3393 xcb_void_cookie_t xcb_ret;
3394 xcb_input_set_device_focus_request_t xcb_out;
3396 xcb_out.focus = focus;
3397 xcb_out.time = time;
3398 xcb_out.revert_to = revert_to;
3399 xcb_out.device_id = device_id;
3401 xcb_parts[2].iov_base = (char *) &xcb_out;
3402 xcb_parts[2].iov_len = sizeof(xcb_out);
3403 xcb_parts[3].iov_base = 0;
3404 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3406 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3407 return xcb_ret;
3411 /*****************************************************************************
3413 ** xcb_void_cookie_t xcb_input_set_device_focus
3415 ** @param xcb_connection_t *c
3416 ** @param xcb_window_t focus
3417 ** @param xcb_timestamp_t time
3418 ** @param uint8_t revert_to
3419 ** @param uint8_t device_id
3420 ** @returns xcb_void_cookie_t
3422 *****************************************************************************/
3424 xcb_void_cookie_t
3425 xcb_input_set_device_focus (xcb_connection_t *c /**< */,
3426 xcb_window_t focus /**< */,
3427 xcb_timestamp_t time /**< */,
3428 uint8_t revert_to /**< */,
3429 uint8_t device_id /**< */)
3431 static const xcb_protocol_request_t xcb_req = {
3432 /* count */ 2,
3433 /* ext */ &xcb_input_id,
3434 /* opcode */ XCB_INPUT_SET_DEVICE_FOCUS,
3435 /* isvoid */ 1
3438 struct iovec xcb_parts[4];
3439 xcb_void_cookie_t xcb_ret;
3440 xcb_input_set_device_focus_request_t xcb_out;
3442 xcb_out.focus = focus;
3443 xcb_out.time = time;
3444 xcb_out.revert_to = revert_to;
3445 xcb_out.device_id = device_id;
3447 xcb_parts[2].iov_base = (char *) &xcb_out;
3448 xcb_parts[2].iov_len = sizeof(xcb_out);
3449 xcb_parts[3].iov_base = 0;
3450 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3452 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
3453 return xcb_ret;
3457 /*****************************************************************************
3459 ** void xcb_input_kbd_feedback_state_next
3461 ** @param xcb_input_kbd_feedback_state_iterator_t *i
3462 ** @returns void
3464 *****************************************************************************/
3466 void
3467 xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i /**< */)
3469 --i->rem;
3470 ++i->data;
3471 i->index += sizeof(xcb_input_kbd_feedback_state_t);
3475 /*****************************************************************************
3477 ** xcb_generic_iterator_t xcb_input_kbd_feedback_state_end
3479 ** @param xcb_input_kbd_feedback_state_iterator_t i
3480 ** @returns xcb_generic_iterator_t
3482 *****************************************************************************/
3484 xcb_generic_iterator_t
3485 xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i /**< */)
3487 xcb_generic_iterator_t ret;
3488 ret.data = i.data + i.rem;
3489 ret.index = i.index + ((char *) ret.data - (char *) i.data);
3490 ret.rem = 0;
3491 return ret;
3495 /*****************************************************************************
3497 ** void xcb_input_ptr_feedback_state_next
3499 ** @param xcb_input_ptr_feedback_state_iterator_t *i
3500 ** @returns void
3502 *****************************************************************************/
3504 void
3505 xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i /**< */)
3507 --i->rem;
3508 ++i->data;
3509 i->index += sizeof(xcb_input_ptr_feedback_state_t);
3513 /*****************************************************************************
3515 ** xcb_generic_iterator_t xcb_input_ptr_feedback_state_end
3517 ** @param xcb_input_ptr_feedback_state_iterator_t i
3518 ** @returns xcb_generic_iterator_t
3520 *****************************************************************************/
3522 xcb_generic_iterator_t
3523 xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i /**< */)
3525 xcb_generic_iterator_t ret;
3526 ret.data = i.data + i.rem;
3527 ret.index = i.index + ((char *) ret.data - (char *) i.data);
3528 ret.rem = 0;
3529 return ret;
3533 /*****************************************************************************
3535 ** void xcb_input_integer_feedback_state_next
3537 ** @param xcb_input_integer_feedback_state_iterator_t *i
3538 ** @returns void
3540 *****************************************************************************/
3542 void
3543 xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i /**< */)
3545 --i->rem;
3546 ++i->data;
3547 i->index += sizeof(xcb_input_integer_feedback_state_t);
3551 /*****************************************************************************
3553 ** xcb_generic_iterator_t xcb_input_integer_feedback_state_end
3555 ** @param xcb_input_integer_feedback_state_iterator_t i
3556 ** @returns xcb_generic_iterator_t
3558 *****************************************************************************/
3560 xcb_generic_iterator_t
3561 xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i /**< */)
3563 xcb_generic_iterator_t ret;
3564 ret.data = i.data + i.rem;
3565 ret.index = i.index + ((char *) ret.data - (char *) i.data);
3566 ret.rem = 0;
3567 return ret;
3571 xcb_input_string_feedback_state_sizeof (const void *_buffer /**< */)
3573 char *xcb_tmp = (char *)_buffer;
3574 const xcb_input_string_feedback_state_t *_aux = (xcb_input_string_feedback_state_t *)_buffer;
3575 unsigned int xcb_buffer_len = 0;
3576 unsigned int xcb_block_len = 0;
3577 unsigned int xcb_pad = 0;
3578 unsigned int xcb_align_to = 0;
3581 xcb_block_len += sizeof(xcb_input_string_feedback_state_t);
3582 xcb_tmp += xcb_block_len;
3583 xcb_buffer_len += xcb_block_len;
3584 xcb_block_len = 0;
3585 /* keysyms */
3586 xcb_block_len += _aux->num_keysyms * sizeof(xcb_keysym_t);
3587 xcb_tmp += xcb_block_len;
3588 xcb_align_to = ALIGNOF(xcb_keysym_t);
3589 /* insert padding */
3590 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3591 xcb_buffer_len += xcb_block_len + xcb_pad;
3592 if (0 != xcb_pad) {
3593 xcb_tmp += xcb_pad;
3594 xcb_pad = 0;
3596 xcb_block_len = 0;
3598 return xcb_buffer_len;
3602 /*****************************************************************************
3604 ** xcb_keysym_t * xcb_input_string_feedback_state_keysyms
3606 ** @param const xcb_input_string_feedback_state_t *R
3607 ** @returns xcb_keysym_t *
3609 *****************************************************************************/
3611 xcb_keysym_t *
3612 xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R /**< */)
3614 return (xcb_keysym_t *) (R + 1);
3618 /*****************************************************************************
3620 ** int xcb_input_string_feedback_state_keysyms_length
3622 ** @param const xcb_input_string_feedback_state_t *R
3623 ** @returns int
3625 *****************************************************************************/
3628 xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R /**< */)
3630 return R->num_keysyms;
3634 /*****************************************************************************
3636 ** xcb_generic_iterator_t xcb_input_string_feedback_state_keysyms_end
3638 ** @param const xcb_input_string_feedback_state_t *R
3639 ** @returns xcb_generic_iterator_t
3641 *****************************************************************************/
3643 xcb_generic_iterator_t
3644 xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R /**< */)
3646 xcb_generic_iterator_t i;
3647 i.data = ((xcb_keysym_t *) (R + 1)) + (R->num_keysyms);
3648 i.rem = 0;
3649 i.index = (char *) i.data - (char *) R;
3650 return i;
3654 /*****************************************************************************
3656 ** void xcb_input_string_feedback_state_next
3658 ** @param xcb_input_string_feedback_state_iterator_t *i
3659 ** @returns void
3661 *****************************************************************************/
3663 void
3664 xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i /**< */)
3666 xcb_input_string_feedback_state_t *R = i->data;
3667 xcb_generic_iterator_t child;
3668 child.data = (xcb_input_string_feedback_state_t *)(((char *)R) + xcb_input_string_feedback_state_sizeof(R));
3669 i->index = (char *) child.data - (char *) i->data;
3670 --i->rem;
3671 i->data = (xcb_input_string_feedback_state_t *) child.data;
3675 /*****************************************************************************
3677 ** xcb_generic_iterator_t xcb_input_string_feedback_state_end
3679 ** @param xcb_input_string_feedback_state_iterator_t i
3680 ** @returns xcb_generic_iterator_t
3682 *****************************************************************************/
3684 xcb_generic_iterator_t
3685 xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i /**< */)
3687 xcb_generic_iterator_t ret;
3688 while(i.rem > 0)
3689 xcb_input_string_feedback_state_next(&i);
3690 ret.data = i.data;
3691 ret.rem = i.rem;
3692 ret.index = i.index;
3693 return ret;
3697 /*****************************************************************************
3699 ** void xcb_input_bell_feedback_state_next
3701 ** @param xcb_input_bell_feedback_state_iterator_t *i
3702 ** @returns void
3704 *****************************************************************************/
3706 void
3707 xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i /**< */)
3709 --i->rem;
3710 ++i->data;
3711 i->index += sizeof(xcb_input_bell_feedback_state_t);
3715 /*****************************************************************************
3717 ** xcb_generic_iterator_t xcb_input_bell_feedback_state_end
3719 ** @param xcb_input_bell_feedback_state_iterator_t i
3720 ** @returns xcb_generic_iterator_t
3722 *****************************************************************************/
3724 xcb_generic_iterator_t
3725 xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i /**< */)
3727 xcb_generic_iterator_t ret;
3728 ret.data = i.data + i.rem;
3729 ret.index = i.index + ((char *) ret.data - (char *) i.data);
3730 ret.rem = 0;
3731 return ret;
3735 /*****************************************************************************
3737 ** void xcb_input_led_feedback_state_next
3739 ** @param xcb_input_led_feedback_state_iterator_t *i
3740 ** @returns void
3742 *****************************************************************************/
3744 void
3745 xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i /**< */)
3747 --i->rem;
3748 ++i->data;
3749 i->index += sizeof(xcb_input_led_feedback_state_t);
3753 /*****************************************************************************
3755 ** xcb_generic_iterator_t xcb_input_led_feedback_state_end
3757 ** @param xcb_input_led_feedback_state_iterator_t i
3758 ** @returns xcb_generic_iterator_t
3760 *****************************************************************************/
3762 xcb_generic_iterator_t
3763 xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i /**< */)
3765 xcb_generic_iterator_t ret;
3766 ret.data = i.data + i.rem;
3767 ret.index = i.index + ((char *) ret.data - (char *) i.data);
3768 ret.rem = 0;
3769 return ret;
3773 xcb_input_feedback_state_sizeof (const void *_buffer /**< */)
3775 char *xcb_tmp = (char *)_buffer;
3776 const xcb_input_feedback_state_t *_aux = (xcb_input_feedback_state_t *)_buffer;
3777 unsigned int xcb_buffer_len = 0;
3778 unsigned int xcb_block_len = 0;
3779 unsigned int xcb_pad = 0;
3780 unsigned int xcb_align_to = 0;
3783 xcb_block_len += sizeof(xcb_input_feedback_state_t);
3784 xcb_tmp += xcb_block_len;
3785 xcb_buffer_len += xcb_block_len;
3786 xcb_block_len = 0;
3787 /* uninterpreted_data */
3788 xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
3789 xcb_tmp += xcb_block_len;
3790 xcb_align_to = ALIGNOF(uint8_t);
3791 /* insert padding */
3792 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3793 xcb_buffer_len += xcb_block_len + xcb_pad;
3794 if (0 != xcb_pad) {
3795 xcb_tmp += xcb_pad;
3796 xcb_pad = 0;
3798 xcb_block_len = 0;
3800 return xcb_buffer_len;
3804 /*****************************************************************************
3806 ** uint8_t * xcb_input_feedback_state_uninterpreted_data
3808 ** @param const xcb_input_feedback_state_t *R
3809 ** @returns uint8_t *
3811 *****************************************************************************/
3813 uint8_t *
3814 xcb_input_feedback_state_uninterpreted_data (const xcb_input_feedback_state_t *R /**< */)
3816 return (uint8_t *) (R + 1);
3820 /*****************************************************************************
3822 ** int xcb_input_feedback_state_uninterpreted_data_length
3824 ** @param const xcb_input_feedback_state_t *R
3825 ** @returns int
3827 *****************************************************************************/
3830 xcb_input_feedback_state_uninterpreted_data_length (const xcb_input_feedback_state_t *R /**< */)
3832 return (R->len - 4);
3836 /*****************************************************************************
3838 ** xcb_generic_iterator_t xcb_input_feedback_state_uninterpreted_data_end
3840 ** @param const xcb_input_feedback_state_t *R
3841 ** @returns xcb_generic_iterator_t
3843 *****************************************************************************/
3845 xcb_generic_iterator_t
3846 xcb_input_feedback_state_uninterpreted_data_end (const xcb_input_feedback_state_t *R /**< */)
3848 xcb_generic_iterator_t i;
3849 i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
3850 i.rem = 0;
3851 i.index = (char *) i.data - (char *) R;
3852 return i;
3856 /*****************************************************************************
3858 ** void xcb_input_feedback_state_next
3860 ** @param xcb_input_feedback_state_iterator_t *i
3861 ** @returns void
3863 *****************************************************************************/
3865 void
3866 xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i /**< */)
3868 xcb_input_feedback_state_t *R = i->data;
3869 xcb_generic_iterator_t child;
3870 child.data = (xcb_input_feedback_state_t *)(((char *)R) + xcb_input_feedback_state_sizeof(R));
3871 i->index = (char *) child.data - (char *) i->data;
3872 --i->rem;
3873 i->data = (xcb_input_feedback_state_t *) child.data;
3877 /*****************************************************************************
3879 ** xcb_generic_iterator_t xcb_input_feedback_state_end
3881 ** @param xcb_input_feedback_state_iterator_t i
3882 ** @returns xcb_generic_iterator_t
3884 *****************************************************************************/
3886 xcb_generic_iterator_t
3887 xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i /**< */)
3889 xcb_generic_iterator_t ret;
3890 while(i.rem > 0)
3891 xcb_input_feedback_state_next(&i);
3892 ret.data = i.data;
3893 ret.rem = i.rem;
3894 ret.index = i.index;
3895 return ret;
3899 xcb_input_get_feedback_control_sizeof (const void *_buffer /**< */)
3901 char *xcb_tmp = (char *)_buffer;
3902 const xcb_input_get_feedback_control_reply_t *_aux = (xcb_input_get_feedback_control_reply_t *)_buffer;
3903 unsigned int xcb_buffer_len = 0;
3904 unsigned int xcb_block_len = 0;
3905 unsigned int xcb_pad = 0;
3906 unsigned int xcb_align_to = 0;
3908 unsigned int i;
3909 unsigned int xcb_tmp_len;
3911 xcb_block_len += sizeof(xcb_input_get_feedback_control_reply_t);
3912 xcb_tmp += xcb_block_len;
3913 xcb_buffer_len += xcb_block_len;
3914 xcb_block_len = 0;
3915 /* feedbacks */
3916 for(i=0; i<_aux->num_feedbacks; i++) {
3917 xcb_tmp_len = xcb_input_feedback_state_sizeof(xcb_tmp);
3918 xcb_block_len += xcb_tmp_len;
3919 xcb_tmp += xcb_tmp_len;
3921 xcb_align_to = ALIGNOF(xcb_input_feedback_state_t);
3922 /* insert padding */
3923 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
3924 xcb_buffer_len += xcb_block_len + xcb_pad;
3925 if (0 != xcb_pad) {
3926 xcb_tmp += xcb_pad;
3927 xcb_pad = 0;
3929 xcb_block_len = 0;
3931 return xcb_buffer_len;
3935 /*****************************************************************************
3937 ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control
3939 ** @param xcb_connection_t *c
3940 ** @param uint8_t device_id
3941 ** @returns xcb_input_get_feedback_control_cookie_t
3943 *****************************************************************************/
3945 xcb_input_get_feedback_control_cookie_t
3946 xcb_input_get_feedback_control (xcb_connection_t *c /**< */,
3947 uint8_t device_id /**< */)
3949 static const xcb_protocol_request_t xcb_req = {
3950 /* count */ 2,
3951 /* ext */ &xcb_input_id,
3952 /* opcode */ XCB_INPUT_GET_FEEDBACK_CONTROL,
3953 /* isvoid */ 0
3956 struct iovec xcb_parts[4];
3957 xcb_input_get_feedback_control_cookie_t xcb_ret;
3958 xcb_input_get_feedback_control_request_t xcb_out;
3960 xcb_out.device_id = device_id;
3961 memset(xcb_out.pad0, 0, 3);
3963 xcb_parts[2].iov_base = (char *) &xcb_out;
3964 xcb_parts[2].iov_len = sizeof(xcb_out);
3965 xcb_parts[3].iov_base = 0;
3966 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
3968 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
3969 return xcb_ret;
3973 /*****************************************************************************
3975 ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control_unchecked
3977 ** @param xcb_connection_t *c
3978 ** @param uint8_t device_id
3979 ** @returns xcb_input_get_feedback_control_cookie_t
3981 *****************************************************************************/
3983 xcb_input_get_feedback_control_cookie_t
3984 xcb_input_get_feedback_control_unchecked (xcb_connection_t *c /**< */,
3985 uint8_t device_id /**< */)
3987 static const xcb_protocol_request_t xcb_req = {
3988 /* count */ 2,
3989 /* ext */ &xcb_input_id,
3990 /* opcode */ XCB_INPUT_GET_FEEDBACK_CONTROL,
3991 /* isvoid */ 0
3994 struct iovec xcb_parts[4];
3995 xcb_input_get_feedback_control_cookie_t xcb_ret;
3996 xcb_input_get_feedback_control_request_t xcb_out;
3998 xcb_out.device_id = device_id;
3999 memset(xcb_out.pad0, 0, 3);
4001 xcb_parts[2].iov_base = (char *) &xcb_out;
4002 xcb_parts[2].iov_len = sizeof(xcb_out);
4003 xcb_parts[3].iov_base = 0;
4004 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4006 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4007 return xcb_ret;
4011 /*****************************************************************************
4013 ** int xcb_input_get_feedback_control_feedbacks_length
4015 ** @param const xcb_input_get_feedback_control_reply_t *R
4016 ** @returns int
4018 *****************************************************************************/
4021 xcb_input_get_feedback_control_feedbacks_length (const xcb_input_get_feedback_control_reply_t *R /**< */)
4023 return R->num_feedbacks;
4027 /*****************************************************************************
4029 ** xcb_input_feedback_state_iterator_t xcb_input_get_feedback_control_feedbacks_iterator
4031 ** @param const xcb_input_get_feedback_control_reply_t *R
4032 ** @returns xcb_input_feedback_state_iterator_t
4034 *****************************************************************************/
4036 xcb_input_feedback_state_iterator_t
4037 xcb_input_get_feedback_control_feedbacks_iterator (const xcb_input_get_feedback_control_reply_t *R /**< */)
4039 xcb_input_feedback_state_iterator_t i;
4040 i.data = (xcb_input_feedback_state_t *) (R + 1);
4041 i.rem = R->num_feedbacks;
4042 i.index = (char *) i.data - (char *) R;
4043 return i;
4047 /*****************************************************************************
4049 ** xcb_input_get_feedback_control_reply_t * xcb_input_get_feedback_control_reply
4051 ** @param xcb_connection_t *c
4052 ** @param xcb_input_get_feedback_control_cookie_t cookie
4053 ** @param xcb_generic_error_t **e
4054 ** @returns xcb_input_get_feedback_control_reply_t *
4056 *****************************************************************************/
4058 xcb_input_get_feedback_control_reply_t *
4059 xcb_input_get_feedback_control_reply (xcb_connection_t *c /**< */,
4060 xcb_input_get_feedback_control_cookie_t cookie /**< */,
4061 xcb_generic_error_t **e /**< */)
4063 return (xcb_input_get_feedback_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4067 /*****************************************************************************
4069 ** void xcb_input_kbd_feedback_ctl_next
4071 ** @param xcb_input_kbd_feedback_ctl_iterator_t *i
4072 ** @returns void
4074 *****************************************************************************/
4076 void
4077 xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i /**< */)
4079 --i->rem;
4080 ++i->data;
4081 i->index += sizeof(xcb_input_kbd_feedback_ctl_t);
4085 /*****************************************************************************
4087 ** xcb_generic_iterator_t xcb_input_kbd_feedback_ctl_end
4089 ** @param xcb_input_kbd_feedback_ctl_iterator_t i
4090 ** @returns xcb_generic_iterator_t
4092 *****************************************************************************/
4094 xcb_generic_iterator_t
4095 xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i /**< */)
4097 xcb_generic_iterator_t ret;
4098 ret.data = i.data + i.rem;
4099 ret.index = i.index + ((char *) ret.data - (char *) i.data);
4100 ret.rem = 0;
4101 return ret;
4105 /*****************************************************************************
4107 ** void xcb_input_ptr_feedback_ctl_next
4109 ** @param xcb_input_ptr_feedback_ctl_iterator_t *i
4110 ** @returns void
4112 *****************************************************************************/
4114 void
4115 xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i /**< */)
4117 --i->rem;
4118 ++i->data;
4119 i->index += sizeof(xcb_input_ptr_feedback_ctl_t);
4123 /*****************************************************************************
4125 ** xcb_generic_iterator_t xcb_input_ptr_feedback_ctl_end
4127 ** @param xcb_input_ptr_feedback_ctl_iterator_t i
4128 ** @returns xcb_generic_iterator_t
4130 *****************************************************************************/
4132 xcb_generic_iterator_t
4133 xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i /**< */)
4135 xcb_generic_iterator_t ret;
4136 ret.data = i.data + i.rem;
4137 ret.index = i.index + ((char *) ret.data - (char *) i.data);
4138 ret.rem = 0;
4139 return ret;
4143 /*****************************************************************************
4145 ** void xcb_input_integer_feedback_ctl_next
4147 ** @param xcb_input_integer_feedback_ctl_iterator_t *i
4148 ** @returns void
4150 *****************************************************************************/
4152 void
4153 xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i /**< */)
4155 --i->rem;
4156 ++i->data;
4157 i->index += sizeof(xcb_input_integer_feedback_ctl_t);
4161 /*****************************************************************************
4163 ** xcb_generic_iterator_t xcb_input_integer_feedback_ctl_end
4165 ** @param xcb_input_integer_feedback_ctl_iterator_t i
4166 ** @returns xcb_generic_iterator_t
4168 *****************************************************************************/
4170 xcb_generic_iterator_t
4171 xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i /**< */)
4173 xcb_generic_iterator_t ret;
4174 ret.data = i.data + i.rem;
4175 ret.index = i.index + ((char *) ret.data - (char *) i.data);
4176 ret.rem = 0;
4177 return ret;
4181 xcb_input_string_feedback_ctl_sizeof (const void *_buffer /**< */)
4183 char *xcb_tmp = (char *)_buffer;
4184 const xcb_input_string_feedback_ctl_t *_aux = (xcb_input_string_feedback_ctl_t *)_buffer;
4185 unsigned int xcb_buffer_len = 0;
4186 unsigned int xcb_block_len = 0;
4187 unsigned int xcb_pad = 0;
4188 unsigned int xcb_align_to = 0;
4191 xcb_block_len += sizeof(xcb_input_string_feedback_ctl_t);
4192 xcb_tmp += xcb_block_len;
4193 xcb_buffer_len += xcb_block_len;
4194 xcb_block_len = 0;
4195 /* keysyms */
4196 xcb_block_len += _aux->num_keysyms * sizeof(xcb_keysym_t);
4197 xcb_tmp += xcb_block_len;
4198 xcb_align_to = ALIGNOF(xcb_keysym_t);
4199 /* insert padding */
4200 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4201 xcb_buffer_len += xcb_block_len + xcb_pad;
4202 if (0 != xcb_pad) {
4203 xcb_tmp += xcb_pad;
4204 xcb_pad = 0;
4206 xcb_block_len = 0;
4208 return xcb_buffer_len;
4212 /*****************************************************************************
4214 ** xcb_keysym_t * xcb_input_string_feedback_ctl_keysyms
4216 ** @param const xcb_input_string_feedback_ctl_t *R
4217 ** @returns xcb_keysym_t *
4219 *****************************************************************************/
4221 xcb_keysym_t *
4222 xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R /**< */)
4224 return (xcb_keysym_t *) (R + 1);
4228 /*****************************************************************************
4230 ** int xcb_input_string_feedback_ctl_keysyms_length
4232 ** @param const xcb_input_string_feedback_ctl_t *R
4233 ** @returns int
4235 *****************************************************************************/
4238 xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R /**< */)
4240 return R->num_keysyms;
4244 /*****************************************************************************
4246 ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_keysyms_end
4248 ** @param const xcb_input_string_feedback_ctl_t *R
4249 ** @returns xcb_generic_iterator_t
4251 *****************************************************************************/
4253 xcb_generic_iterator_t
4254 xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R /**< */)
4256 xcb_generic_iterator_t i;
4257 i.data = ((xcb_keysym_t *) (R + 1)) + (R->num_keysyms);
4258 i.rem = 0;
4259 i.index = (char *) i.data - (char *) R;
4260 return i;
4264 /*****************************************************************************
4266 ** void xcb_input_string_feedback_ctl_next
4268 ** @param xcb_input_string_feedback_ctl_iterator_t *i
4269 ** @returns void
4271 *****************************************************************************/
4273 void
4274 xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i /**< */)
4276 xcb_input_string_feedback_ctl_t *R = i->data;
4277 xcb_generic_iterator_t child;
4278 child.data = (xcb_input_string_feedback_ctl_t *)(((char *)R) + xcb_input_string_feedback_ctl_sizeof(R));
4279 i->index = (char *) child.data - (char *) i->data;
4280 --i->rem;
4281 i->data = (xcb_input_string_feedback_ctl_t *) child.data;
4285 /*****************************************************************************
4287 ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_end
4289 ** @param xcb_input_string_feedback_ctl_iterator_t i
4290 ** @returns xcb_generic_iterator_t
4292 *****************************************************************************/
4294 xcb_generic_iterator_t
4295 xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i /**< */)
4297 xcb_generic_iterator_t ret;
4298 while(i.rem > 0)
4299 xcb_input_string_feedback_ctl_next(&i);
4300 ret.data = i.data;
4301 ret.rem = i.rem;
4302 ret.index = i.index;
4303 return ret;
4307 /*****************************************************************************
4309 ** void xcb_input_bell_feedback_ctl_next
4311 ** @param xcb_input_bell_feedback_ctl_iterator_t *i
4312 ** @returns void
4314 *****************************************************************************/
4316 void
4317 xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i /**< */)
4319 --i->rem;
4320 ++i->data;
4321 i->index += sizeof(xcb_input_bell_feedback_ctl_t);
4325 /*****************************************************************************
4327 ** xcb_generic_iterator_t xcb_input_bell_feedback_ctl_end
4329 ** @param xcb_input_bell_feedback_ctl_iterator_t i
4330 ** @returns xcb_generic_iterator_t
4332 *****************************************************************************/
4334 xcb_generic_iterator_t
4335 xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i /**< */)
4337 xcb_generic_iterator_t ret;
4338 ret.data = i.data + i.rem;
4339 ret.index = i.index + ((char *) ret.data - (char *) i.data);
4340 ret.rem = 0;
4341 return ret;
4345 /*****************************************************************************
4347 ** void xcb_input_led_feedback_ctl_next
4349 ** @param xcb_input_led_feedback_ctl_iterator_t *i
4350 ** @returns void
4352 *****************************************************************************/
4354 void
4355 xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i /**< */)
4357 --i->rem;
4358 ++i->data;
4359 i->index += sizeof(xcb_input_led_feedback_ctl_t);
4363 /*****************************************************************************
4365 ** xcb_generic_iterator_t xcb_input_led_feedback_ctl_end
4367 ** @param xcb_input_led_feedback_ctl_iterator_t i
4368 ** @returns xcb_generic_iterator_t
4370 *****************************************************************************/
4372 xcb_generic_iterator_t
4373 xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i /**< */)
4375 xcb_generic_iterator_t ret;
4376 ret.data = i.data + i.rem;
4377 ret.index = i.index + ((char *) ret.data - (char *) i.data);
4378 ret.rem = 0;
4379 return ret;
4383 xcb_input_feedback_ctl_sizeof (const void *_buffer /**< */)
4385 char *xcb_tmp = (char *)_buffer;
4386 const xcb_input_feedback_ctl_t *_aux = (xcb_input_feedback_ctl_t *)_buffer;
4387 unsigned int xcb_buffer_len = 0;
4388 unsigned int xcb_block_len = 0;
4389 unsigned int xcb_pad = 0;
4390 unsigned int xcb_align_to = 0;
4393 xcb_block_len += sizeof(xcb_input_feedback_ctl_t);
4394 xcb_tmp += xcb_block_len;
4395 xcb_buffer_len += xcb_block_len;
4396 xcb_block_len = 0;
4397 /* uninterpreted_data */
4398 xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
4399 xcb_tmp += xcb_block_len;
4400 xcb_align_to = ALIGNOF(uint8_t);
4401 /* insert padding */
4402 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4403 xcb_buffer_len += xcb_block_len + xcb_pad;
4404 if (0 != xcb_pad) {
4405 xcb_tmp += xcb_pad;
4406 xcb_pad = 0;
4408 xcb_block_len = 0;
4410 return xcb_buffer_len;
4414 /*****************************************************************************
4416 ** uint8_t * xcb_input_feedback_ctl_uninterpreted_data
4418 ** @param const xcb_input_feedback_ctl_t *R
4419 ** @returns uint8_t *
4421 *****************************************************************************/
4423 uint8_t *
4424 xcb_input_feedback_ctl_uninterpreted_data (const xcb_input_feedback_ctl_t *R /**< */)
4426 return (uint8_t *) (R + 1);
4430 /*****************************************************************************
4432 ** int xcb_input_feedback_ctl_uninterpreted_data_length
4434 ** @param const xcb_input_feedback_ctl_t *R
4435 ** @returns int
4437 *****************************************************************************/
4440 xcb_input_feedback_ctl_uninterpreted_data_length (const xcb_input_feedback_ctl_t *R /**< */)
4442 return (R->len - 4);
4446 /*****************************************************************************
4448 ** xcb_generic_iterator_t xcb_input_feedback_ctl_uninterpreted_data_end
4450 ** @param const xcb_input_feedback_ctl_t *R
4451 ** @returns xcb_generic_iterator_t
4453 *****************************************************************************/
4455 xcb_generic_iterator_t
4456 xcb_input_feedback_ctl_uninterpreted_data_end (const xcb_input_feedback_ctl_t *R /**< */)
4458 xcb_generic_iterator_t i;
4459 i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
4460 i.rem = 0;
4461 i.index = (char *) i.data - (char *) R;
4462 return i;
4466 /*****************************************************************************
4468 ** void xcb_input_feedback_ctl_next
4470 ** @param xcb_input_feedback_ctl_iterator_t *i
4471 ** @returns void
4473 *****************************************************************************/
4475 void
4476 xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i /**< */)
4478 xcb_input_feedback_ctl_t *R = i->data;
4479 xcb_generic_iterator_t child;
4480 child.data = (xcb_input_feedback_ctl_t *)(((char *)R) + xcb_input_feedback_ctl_sizeof(R));
4481 i->index = (char *) child.data - (char *) i->data;
4482 --i->rem;
4483 i->data = (xcb_input_feedback_ctl_t *) child.data;
4487 /*****************************************************************************
4489 ** xcb_generic_iterator_t xcb_input_feedback_ctl_end
4491 ** @param xcb_input_feedback_ctl_iterator_t i
4492 ** @returns xcb_generic_iterator_t
4494 *****************************************************************************/
4496 xcb_generic_iterator_t
4497 xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i /**< */)
4499 xcb_generic_iterator_t ret;
4500 while(i.rem > 0)
4501 xcb_input_feedback_ctl_next(&i);
4502 ret.data = i.data;
4503 ret.rem = i.rem;
4504 ret.index = i.index;
4505 return ret;
4509 xcb_input_change_feedback_control_sizeof (const void *_buffer /**< */)
4511 char *xcb_tmp = (char *)_buffer;
4512 unsigned int xcb_buffer_len = 0;
4513 unsigned int xcb_block_len = 0;
4514 unsigned int xcb_pad = 0;
4515 unsigned int xcb_align_to = 0;
4518 xcb_block_len += sizeof(xcb_input_change_feedback_control_request_t);
4519 xcb_tmp += xcb_block_len;
4520 xcb_buffer_len += xcb_block_len;
4521 xcb_block_len = 0;
4522 /* feedback */
4523 xcb_block_len += xcb_input_feedback_ctl_sizeof(xcb_tmp);
4524 xcb_tmp += xcb_block_len;
4525 xcb_align_to = ALIGNOF(xcb_input_feedback_ctl_t);
4526 /* insert padding */
4527 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4528 xcb_buffer_len += xcb_block_len + xcb_pad;
4529 if (0 != xcb_pad) {
4530 xcb_tmp += xcb_pad;
4531 xcb_pad = 0;
4533 xcb_block_len = 0;
4535 return xcb_buffer_len;
4539 /*****************************************************************************
4541 ** xcb_void_cookie_t xcb_input_change_feedback_control_checked
4543 ** @param xcb_connection_t *c
4544 ** @param uint32_t mask
4545 ** @param uint8_t device_id
4546 ** @param uint8_t feedback_id
4547 ** @param xcb_input_feedback_ctl_t *feedback
4548 ** @returns xcb_void_cookie_t
4550 *****************************************************************************/
4552 xcb_void_cookie_t
4553 xcb_input_change_feedback_control_checked (xcb_connection_t *c /**< */,
4554 uint32_t mask /**< */,
4555 uint8_t device_id /**< */,
4556 uint8_t feedback_id /**< */,
4557 xcb_input_feedback_ctl_t *feedback /**< */)
4559 static const xcb_protocol_request_t xcb_req = {
4560 /* count */ 4,
4561 /* ext */ &xcb_input_id,
4562 /* opcode */ XCB_INPUT_CHANGE_FEEDBACK_CONTROL,
4563 /* isvoid */ 1
4566 struct iovec xcb_parts[6];
4567 xcb_void_cookie_t xcb_ret;
4568 xcb_input_change_feedback_control_request_t xcb_out;
4570 xcb_out.mask = mask;
4571 xcb_out.device_id = device_id;
4572 xcb_out.feedback_id = feedback_id;
4574 xcb_parts[2].iov_base = (char *) &xcb_out;
4575 xcb_parts[2].iov_len = sizeof(xcb_out);
4576 xcb_parts[3].iov_base = 0;
4577 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4578 /* xcb_input_feedback_ctl_t feedback */
4579 xcb_parts[4].iov_base = (char *) feedback;
4580 xcb_parts[4].iov_len =
4581 xcb_input_feedback_ctl_sizeof (feedback);
4583 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4584 return xcb_ret;
4588 /*****************************************************************************
4590 ** xcb_void_cookie_t xcb_input_change_feedback_control
4592 ** @param xcb_connection_t *c
4593 ** @param uint32_t mask
4594 ** @param uint8_t device_id
4595 ** @param uint8_t feedback_id
4596 ** @param xcb_input_feedback_ctl_t *feedback
4597 ** @returns xcb_void_cookie_t
4599 *****************************************************************************/
4601 xcb_void_cookie_t
4602 xcb_input_change_feedback_control (xcb_connection_t *c /**< */,
4603 uint32_t mask /**< */,
4604 uint8_t device_id /**< */,
4605 uint8_t feedback_id /**< */,
4606 xcb_input_feedback_ctl_t *feedback /**< */)
4608 static const xcb_protocol_request_t xcb_req = {
4609 /* count */ 4,
4610 /* ext */ &xcb_input_id,
4611 /* opcode */ XCB_INPUT_CHANGE_FEEDBACK_CONTROL,
4612 /* isvoid */ 1
4615 struct iovec xcb_parts[6];
4616 xcb_void_cookie_t xcb_ret;
4617 xcb_input_change_feedback_control_request_t xcb_out;
4619 xcb_out.mask = mask;
4620 xcb_out.device_id = device_id;
4621 xcb_out.feedback_id = feedback_id;
4623 xcb_parts[2].iov_base = (char *) &xcb_out;
4624 xcb_parts[2].iov_len = sizeof(xcb_out);
4625 xcb_parts[3].iov_base = 0;
4626 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4627 /* xcb_input_feedback_ctl_t feedback */
4628 xcb_parts[4].iov_base = (char *) feedback;
4629 xcb_parts[4].iov_len =
4630 xcb_input_feedback_ctl_sizeof (feedback);
4632 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4633 return xcb_ret;
4637 xcb_input_get_device_key_mapping_sizeof (const void *_buffer /**< */)
4639 char *xcb_tmp = (char *)_buffer;
4640 const xcb_input_get_device_key_mapping_reply_t *_aux = (xcb_input_get_device_key_mapping_reply_t *)_buffer;
4641 unsigned int xcb_buffer_len = 0;
4642 unsigned int xcb_block_len = 0;
4643 unsigned int xcb_pad = 0;
4644 unsigned int xcb_align_to = 0;
4647 xcb_block_len += sizeof(xcb_input_get_device_key_mapping_reply_t);
4648 xcb_tmp += xcb_block_len;
4649 xcb_buffer_len += xcb_block_len;
4650 xcb_block_len = 0;
4651 /* keysyms */
4652 xcb_block_len += _aux->length * sizeof(xcb_keysym_t);
4653 xcb_tmp += xcb_block_len;
4654 xcb_align_to = ALIGNOF(xcb_keysym_t);
4655 /* insert padding */
4656 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4657 xcb_buffer_len += xcb_block_len + xcb_pad;
4658 if (0 != xcb_pad) {
4659 xcb_tmp += xcb_pad;
4660 xcb_pad = 0;
4662 xcb_block_len = 0;
4664 return xcb_buffer_len;
4668 /*****************************************************************************
4670 ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping
4672 ** @param xcb_connection_t *c
4673 ** @param uint8_t device_id
4674 ** @param xcb_input_key_code_t first_keycode
4675 ** @param uint8_t count
4676 ** @returns xcb_input_get_device_key_mapping_cookie_t
4678 *****************************************************************************/
4680 xcb_input_get_device_key_mapping_cookie_t
4681 xcb_input_get_device_key_mapping (xcb_connection_t *c /**< */,
4682 uint8_t device_id /**< */,
4683 xcb_input_key_code_t first_keycode /**< */,
4684 uint8_t count /**< */)
4686 static const xcb_protocol_request_t xcb_req = {
4687 /* count */ 2,
4688 /* ext */ &xcb_input_id,
4689 /* opcode */ XCB_INPUT_GET_DEVICE_KEY_MAPPING,
4690 /* isvoid */ 0
4693 struct iovec xcb_parts[4];
4694 xcb_input_get_device_key_mapping_cookie_t xcb_ret;
4695 xcb_input_get_device_key_mapping_request_t xcb_out;
4697 xcb_out.device_id = device_id;
4698 xcb_out.first_keycode = first_keycode;
4699 xcb_out.count = count;
4701 xcb_parts[2].iov_base = (char *) &xcb_out;
4702 xcb_parts[2].iov_len = sizeof(xcb_out);
4703 xcb_parts[3].iov_base = 0;
4704 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4706 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4707 return xcb_ret;
4711 /*****************************************************************************
4713 ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping_unchecked
4715 ** @param xcb_connection_t *c
4716 ** @param uint8_t device_id
4717 ** @param xcb_input_key_code_t first_keycode
4718 ** @param uint8_t count
4719 ** @returns xcb_input_get_device_key_mapping_cookie_t
4721 *****************************************************************************/
4723 xcb_input_get_device_key_mapping_cookie_t
4724 xcb_input_get_device_key_mapping_unchecked (xcb_connection_t *c /**< */,
4725 uint8_t device_id /**< */,
4726 xcb_input_key_code_t first_keycode /**< */,
4727 uint8_t count /**< */)
4729 static const xcb_protocol_request_t xcb_req = {
4730 /* count */ 2,
4731 /* ext */ &xcb_input_id,
4732 /* opcode */ XCB_INPUT_GET_DEVICE_KEY_MAPPING,
4733 /* isvoid */ 0
4736 struct iovec xcb_parts[4];
4737 xcb_input_get_device_key_mapping_cookie_t xcb_ret;
4738 xcb_input_get_device_key_mapping_request_t xcb_out;
4740 xcb_out.device_id = device_id;
4741 xcb_out.first_keycode = first_keycode;
4742 xcb_out.count = count;
4744 xcb_parts[2].iov_base = (char *) &xcb_out;
4745 xcb_parts[2].iov_len = sizeof(xcb_out);
4746 xcb_parts[3].iov_base = 0;
4747 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4749 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4750 return xcb_ret;
4754 /*****************************************************************************
4756 ** xcb_keysym_t * xcb_input_get_device_key_mapping_keysyms
4758 ** @param const xcb_input_get_device_key_mapping_reply_t *R
4759 ** @returns xcb_keysym_t *
4761 *****************************************************************************/
4763 xcb_keysym_t *
4764 xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R /**< */)
4766 return (xcb_keysym_t *) (R + 1);
4770 /*****************************************************************************
4772 ** int xcb_input_get_device_key_mapping_keysyms_length
4774 ** @param const xcb_input_get_device_key_mapping_reply_t *R
4775 ** @returns int
4777 *****************************************************************************/
4780 xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R /**< */)
4782 return R->length;
4786 /*****************************************************************************
4788 ** xcb_generic_iterator_t xcb_input_get_device_key_mapping_keysyms_end
4790 ** @param const xcb_input_get_device_key_mapping_reply_t *R
4791 ** @returns xcb_generic_iterator_t
4793 *****************************************************************************/
4795 xcb_generic_iterator_t
4796 xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R /**< */)
4798 xcb_generic_iterator_t i;
4799 i.data = ((xcb_keysym_t *) (R + 1)) + (R->length);
4800 i.rem = 0;
4801 i.index = (char *) i.data - (char *) R;
4802 return i;
4806 /*****************************************************************************
4808 ** xcb_input_get_device_key_mapping_reply_t * xcb_input_get_device_key_mapping_reply
4810 ** @param xcb_connection_t *c
4811 ** @param xcb_input_get_device_key_mapping_cookie_t cookie
4812 ** @param xcb_generic_error_t **e
4813 ** @returns xcb_input_get_device_key_mapping_reply_t *
4815 *****************************************************************************/
4817 xcb_input_get_device_key_mapping_reply_t *
4818 xcb_input_get_device_key_mapping_reply (xcb_connection_t *c /**< */,
4819 xcb_input_get_device_key_mapping_cookie_t cookie /**< */,
4820 xcb_generic_error_t **e /**< */)
4822 return (xcb_input_get_device_key_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
4826 xcb_input_change_device_key_mapping_sizeof (const void *_buffer /**< */)
4828 char *xcb_tmp = (char *)_buffer;
4829 const xcb_input_change_device_key_mapping_request_t *_aux = (xcb_input_change_device_key_mapping_request_t *)_buffer;
4830 unsigned int xcb_buffer_len = 0;
4831 unsigned int xcb_block_len = 0;
4832 unsigned int xcb_pad = 0;
4833 unsigned int xcb_align_to = 0;
4836 xcb_block_len += sizeof(xcb_input_change_device_key_mapping_request_t);
4837 xcb_tmp += xcb_block_len;
4838 xcb_buffer_len += xcb_block_len;
4839 xcb_block_len = 0;
4840 /* keysyms */
4841 xcb_block_len += (_aux->keycode_count * _aux->keysyms_per_keycode) * sizeof(xcb_keysym_t);
4842 xcb_tmp += xcb_block_len;
4843 xcb_align_to = ALIGNOF(xcb_keysym_t);
4844 /* insert padding */
4845 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4846 xcb_buffer_len += xcb_block_len + xcb_pad;
4847 if (0 != xcb_pad) {
4848 xcb_tmp += xcb_pad;
4849 xcb_pad = 0;
4851 xcb_block_len = 0;
4853 return xcb_buffer_len;
4857 /*****************************************************************************
4859 ** xcb_void_cookie_t xcb_input_change_device_key_mapping_checked
4861 ** @param xcb_connection_t *c
4862 ** @param uint8_t device_id
4863 ** @param xcb_input_key_code_t first_keycode
4864 ** @param uint8_t keysyms_per_keycode
4865 ** @param uint8_t keycode_count
4866 ** @param const xcb_keysym_t *keysyms
4867 ** @returns xcb_void_cookie_t
4869 *****************************************************************************/
4871 xcb_void_cookie_t
4872 xcb_input_change_device_key_mapping_checked (xcb_connection_t *c /**< */,
4873 uint8_t device_id /**< */,
4874 xcb_input_key_code_t first_keycode /**< */,
4875 uint8_t keysyms_per_keycode /**< */,
4876 uint8_t keycode_count /**< */,
4877 const xcb_keysym_t *keysyms /**< */)
4879 static const xcb_protocol_request_t xcb_req = {
4880 /* count */ 4,
4881 /* ext */ &xcb_input_id,
4882 /* opcode */ XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING,
4883 /* isvoid */ 1
4886 struct iovec xcb_parts[6];
4887 xcb_void_cookie_t xcb_ret;
4888 xcb_input_change_device_key_mapping_request_t xcb_out;
4890 xcb_out.device_id = device_id;
4891 xcb_out.first_keycode = first_keycode;
4892 xcb_out.keysyms_per_keycode = keysyms_per_keycode;
4893 xcb_out.keycode_count = keycode_count;
4895 xcb_parts[2].iov_base = (char *) &xcb_out;
4896 xcb_parts[2].iov_len = sizeof(xcb_out);
4897 xcb_parts[3].iov_base = 0;
4898 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4899 /* xcb_keysym_t keysyms */
4900 xcb_parts[4].iov_base = (char *) keysyms;
4901 xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t);
4902 xcb_parts[5].iov_base = 0;
4903 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4905 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
4906 return xcb_ret;
4910 /*****************************************************************************
4912 ** xcb_void_cookie_t xcb_input_change_device_key_mapping
4914 ** @param xcb_connection_t *c
4915 ** @param uint8_t device_id
4916 ** @param xcb_input_key_code_t first_keycode
4917 ** @param uint8_t keysyms_per_keycode
4918 ** @param uint8_t keycode_count
4919 ** @param const xcb_keysym_t *keysyms
4920 ** @returns xcb_void_cookie_t
4922 *****************************************************************************/
4924 xcb_void_cookie_t
4925 xcb_input_change_device_key_mapping (xcb_connection_t *c /**< */,
4926 uint8_t device_id /**< */,
4927 xcb_input_key_code_t first_keycode /**< */,
4928 uint8_t keysyms_per_keycode /**< */,
4929 uint8_t keycode_count /**< */,
4930 const xcb_keysym_t *keysyms /**< */)
4932 static const xcb_protocol_request_t xcb_req = {
4933 /* count */ 4,
4934 /* ext */ &xcb_input_id,
4935 /* opcode */ XCB_INPUT_CHANGE_DEVICE_KEY_MAPPING,
4936 /* isvoid */ 1
4939 struct iovec xcb_parts[6];
4940 xcb_void_cookie_t xcb_ret;
4941 xcb_input_change_device_key_mapping_request_t xcb_out;
4943 xcb_out.device_id = device_id;
4944 xcb_out.first_keycode = first_keycode;
4945 xcb_out.keysyms_per_keycode = keysyms_per_keycode;
4946 xcb_out.keycode_count = keycode_count;
4948 xcb_parts[2].iov_base = (char *) &xcb_out;
4949 xcb_parts[2].iov_len = sizeof(xcb_out);
4950 xcb_parts[3].iov_base = 0;
4951 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
4952 /* xcb_keysym_t keysyms */
4953 xcb_parts[4].iov_base = (char *) keysyms;
4954 xcb_parts[4].iov_len = (keycode_count * keysyms_per_keycode) * sizeof(xcb_keysym_t);
4955 xcb_parts[5].iov_base = 0;
4956 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
4958 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
4959 return xcb_ret;
4963 xcb_input_get_device_modifier_mapping_sizeof (const void *_buffer /**< */)
4965 char *xcb_tmp = (char *)_buffer;
4966 const xcb_input_get_device_modifier_mapping_reply_t *_aux = (xcb_input_get_device_modifier_mapping_reply_t *)_buffer;
4967 unsigned int xcb_buffer_len = 0;
4968 unsigned int xcb_block_len = 0;
4969 unsigned int xcb_pad = 0;
4970 unsigned int xcb_align_to = 0;
4973 xcb_block_len += sizeof(xcb_input_get_device_modifier_mapping_reply_t);
4974 xcb_tmp += xcb_block_len;
4975 xcb_buffer_len += xcb_block_len;
4976 xcb_block_len = 0;
4977 /* keymaps */
4978 xcb_block_len += (_aux->keycodes_per_modifier * 8) * sizeof(uint8_t);
4979 xcb_tmp += xcb_block_len;
4980 xcb_align_to = ALIGNOF(uint8_t);
4981 /* insert padding */
4982 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
4983 xcb_buffer_len += xcb_block_len + xcb_pad;
4984 if (0 != xcb_pad) {
4985 xcb_tmp += xcb_pad;
4986 xcb_pad = 0;
4988 xcb_block_len = 0;
4990 return xcb_buffer_len;
4994 /*****************************************************************************
4996 ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping
4998 ** @param xcb_connection_t *c
4999 ** @param uint8_t device_id
5000 ** @returns xcb_input_get_device_modifier_mapping_cookie_t
5002 *****************************************************************************/
5004 xcb_input_get_device_modifier_mapping_cookie_t
5005 xcb_input_get_device_modifier_mapping (xcb_connection_t *c /**< */,
5006 uint8_t device_id /**< */)
5008 static const xcb_protocol_request_t xcb_req = {
5009 /* count */ 2,
5010 /* ext */ &xcb_input_id,
5011 /* opcode */ XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING,
5012 /* isvoid */ 0
5015 struct iovec xcb_parts[4];
5016 xcb_input_get_device_modifier_mapping_cookie_t xcb_ret;
5017 xcb_input_get_device_modifier_mapping_request_t xcb_out;
5019 xcb_out.device_id = device_id;
5020 memset(xcb_out.pad0, 0, 3);
5022 xcb_parts[2].iov_base = (char *) &xcb_out;
5023 xcb_parts[2].iov_len = sizeof(xcb_out);
5024 xcb_parts[3].iov_base = 0;
5025 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5027 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5028 return xcb_ret;
5032 /*****************************************************************************
5034 ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping_unchecked
5036 ** @param xcb_connection_t *c
5037 ** @param uint8_t device_id
5038 ** @returns xcb_input_get_device_modifier_mapping_cookie_t
5040 *****************************************************************************/
5042 xcb_input_get_device_modifier_mapping_cookie_t
5043 xcb_input_get_device_modifier_mapping_unchecked (xcb_connection_t *c /**< */,
5044 uint8_t device_id /**< */)
5046 static const xcb_protocol_request_t xcb_req = {
5047 /* count */ 2,
5048 /* ext */ &xcb_input_id,
5049 /* opcode */ XCB_INPUT_GET_DEVICE_MODIFIER_MAPPING,
5050 /* isvoid */ 0
5053 struct iovec xcb_parts[4];
5054 xcb_input_get_device_modifier_mapping_cookie_t xcb_ret;
5055 xcb_input_get_device_modifier_mapping_request_t xcb_out;
5057 xcb_out.device_id = device_id;
5058 memset(xcb_out.pad0, 0, 3);
5060 xcb_parts[2].iov_base = (char *) &xcb_out;
5061 xcb_parts[2].iov_len = sizeof(xcb_out);
5062 xcb_parts[3].iov_base = 0;
5063 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5065 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5066 return xcb_ret;
5070 /*****************************************************************************
5072 ** uint8_t * xcb_input_get_device_modifier_mapping_keymaps
5074 ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
5075 ** @returns uint8_t *
5077 *****************************************************************************/
5079 uint8_t *
5080 xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R /**< */)
5082 return (uint8_t *) (R + 1);
5086 /*****************************************************************************
5088 ** int xcb_input_get_device_modifier_mapping_keymaps_length
5090 ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
5091 ** @returns int
5093 *****************************************************************************/
5096 xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R /**< */)
5098 return (R->keycodes_per_modifier * 8);
5102 /*****************************************************************************
5104 ** xcb_generic_iterator_t xcb_input_get_device_modifier_mapping_keymaps_end
5106 ** @param const xcb_input_get_device_modifier_mapping_reply_t *R
5107 ** @returns xcb_generic_iterator_t
5109 *****************************************************************************/
5111 xcb_generic_iterator_t
5112 xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R /**< */)
5114 xcb_generic_iterator_t i;
5115 i.data = ((uint8_t *) (R + 1)) + ((R->keycodes_per_modifier * 8));
5116 i.rem = 0;
5117 i.index = (char *) i.data - (char *) R;
5118 return i;
5122 /*****************************************************************************
5124 ** xcb_input_get_device_modifier_mapping_reply_t * xcb_input_get_device_modifier_mapping_reply
5126 ** @param xcb_connection_t *c
5127 ** @param xcb_input_get_device_modifier_mapping_cookie_t cookie
5128 ** @param xcb_generic_error_t **e
5129 ** @returns xcb_input_get_device_modifier_mapping_reply_t *
5131 *****************************************************************************/
5133 xcb_input_get_device_modifier_mapping_reply_t *
5134 xcb_input_get_device_modifier_mapping_reply (xcb_connection_t *c /**< */,
5135 xcb_input_get_device_modifier_mapping_cookie_t cookie /**< */,
5136 xcb_generic_error_t **e /**< */)
5138 return (xcb_input_get_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5142 xcb_input_set_device_modifier_mapping_sizeof (const void *_buffer /**< */)
5144 char *xcb_tmp = (char *)_buffer;
5145 const xcb_input_set_device_modifier_mapping_request_t *_aux = (xcb_input_set_device_modifier_mapping_request_t *)_buffer;
5146 unsigned int xcb_buffer_len = 0;
5147 unsigned int xcb_block_len = 0;
5148 unsigned int xcb_pad = 0;
5149 unsigned int xcb_align_to = 0;
5152 xcb_block_len += sizeof(xcb_input_set_device_modifier_mapping_request_t);
5153 xcb_tmp += xcb_block_len;
5154 xcb_buffer_len += xcb_block_len;
5155 xcb_block_len = 0;
5156 /* keymaps */
5157 xcb_block_len += (_aux->keycodes_per_modifier * 8) * sizeof(uint8_t);
5158 xcb_tmp += xcb_block_len;
5159 xcb_align_to = ALIGNOF(uint8_t);
5160 /* insert padding */
5161 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5162 xcb_buffer_len += xcb_block_len + xcb_pad;
5163 if (0 != xcb_pad) {
5164 xcb_tmp += xcb_pad;
5165 xcb_pad = 0;
5167 xcb_block_len = 0;
5169 return xcb_buffer_len;
5173 /*****************************************************************************
5175 ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping
5177 ** @param xcb_connection_t *c
5178 ** @param uint8_t device_id
5179 ** @param uint8_t keycodes_per_modifier
5180 ** @param const uint8_t *keymaps
5181 ** @returns xcb_input_set_device_modifier_mapping_cookie_t
5183 *****************************************************************************/
5185 xcb_input_set_device_modifier_mapping_cookie_t
5186 xcb_input_set_device_modifier_mapping (xcb_connection_t *c /**< */,
5187 uint8_t device_id /**< */,
5188 uint8_t keycodes_per_modifier /**< */,
5189 const uint8_t *keymaps /**< */)
5191 static const xcb_protocol_request_t xcb_req = {
5192 /* count */ 4,
5193 /* ext */ &xcb_input_id,
5194 /* opcode */ XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING,
5195 /* isvoid */ 0
5198 struct iovec xcb_parts[6];
5199 xcb_input_set_device_modifier_mapping_cookie_t xcb_ret;
5200 xcb_input_set_device_modifier_mapping_request_t xcb_out;
5202 xcb_out.device_id = device_id;
5203 xcb_out.keycodes_per_modifier = keycodes_per_modifier;
5204 xcb_out.pad0 = 0;
5206 xcb_parts[2].iov_base = (char *) &xcb_out;
5207 xcb_parts[2].iov_len = sizeof(xcb_out);
5208 xcb_parts[3].iov_base = 0;
5209 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5210 /* uint8_t keymaps */
5211 xcb_parts[4].iov_base = (char *) keymaps;
5212 xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t);
5213 xcb_parts[5].iov_base = 0;
5214 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5216 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5217 return xcb_ret;
5221 /*****************************************************************************
5223 ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping_unchecked
5225 ** @param xcb_connection_t *c
5226 ** @param uint8_t device_id
5227 ** @param uint8_t keycodes_per_modifier
5228 ** @param const uint8_t *keymaps
5229 ** @returns xcb_input_set_device_modifier_mapping_cookie_t
5231 *****************************************************************************/
5233 xcb_input_set_device_modifier_mapping_cookie_t
5234 xcb_input_set_device_modifier_mapping_unchecked (xcb_connection_t *c /**< */,
5235 uint8_t device_id /**< */,
5236 uint8_t keycodes_per_modifier /**< */,
5237 const uint8_t *keymaps /**< */)
5239 static const xcb_protocol_request_t xcb_req = {
5240 /* count */ 4,
5241 /* ext */ &xcb_input_id,
5242 /* opcode */ XCB_INPUT_SET_DEVICE_MODIFIER_MAPPING,
5243 /* isvoid */ 0
5246 struct iovec xcb_parts[6];
5247 xcb_input_set_device_modifier_mapping_cookie_t xcb_ret;
5248 xcb_input_set_device_modifier_mapping_request_t xcb_out;
5250 xcb_out.device_id = device_id;
5251 xcb_out.keycodes_per_modifier = keycodes_per_modifier;
5252 xcb_out.pad0 = 0;
5254 xcb_parts[2].iov_base = (char *) &xcb_out;
5255 xcb_parts[2].iov_len = sizeof(xcb_out);
5256 xcb_parts[3].iov_base = 0;
5257 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5258 /* uint8_t keymaps */
5259 xcb_parts[4].iov_base = (char *) keymaps;
5260 xcb_parts[4].iov_len = (keycodes_per_modifier * 8) * sizeof(uint8_t);
5261 xcb_parts[5].iov_base = 0;
5262 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5264 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5265 return xcb_ret;
5269 /*****************************************************************************
5271 ** xcb_input_set_device_modifier_mapping_reply_t * xcb_input_set_device_modifier_mapping_reply
5273 ** @param xcb_connection_t *c
5274 ** @param xcb_input_set_device_modifier_mapping_cookie_t cookie
5275 ** @param xcb_generic_error_t **e
5276 ** @returns xcb_input_set_device_modifier_mapping_reply_t *
5278 *****************************************************************************/
5280 xcb_input_set_device_modifier_mapping_reply_t *
5281 xcb_input_set_device_modifier_mapping_reply (xcb_connection_t *c /**< */,
5282 xcb_input_set_device_modifier_mapping_cookie_t cookie /**< */,
5283 xcb_generic_error_t **e /**< */)
5285 return (xcb_input_set_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5289 xcb_input_get_device_button_mapping_sizeof (const void *_buffer /**< */)
5291 char *xcb_tmp = (char *)_buffer;
5292 const xcb_input_get_device_button_mapping_reply_t *_aux = (xcb_input_get_device_button_mapping_reply_t *)_buffer;
5293 unsigned int xcb_buffer_len = 0;
5294 unsigned int xcb_block_len = 0;
5295 unsigned int xcb_pad = 0;
5296 unsigned int xcb_align_to = 0;
5299 xcb_block_len += sizeof(xcb_input_get_device_button_mapping_reply_t);
5300 xcb_tmp += xcb_block_len;
5301 xcb_buffer_len += xcb_block_len;
5302 xcb_block_len = 0;
5303 /* map */
5304 xcb_block_len += _aux->map_size * sizeof(uint8_t);
5305 xcb_tmp += xcb_block_len;
5306 xcb_align_to = ALIGNOF(uint8_t);
5307 /* insert padding */
5308 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5309 xcb_buffer_len += xcb_block_len + xcb_pad;
5310 if (0 != xcb_pad) {
5311 xcb_tmp += xcb_pad;
5312 xcb_pad = 0;
5314 xcb_block_len = 0;
5316 return xcb_buffer_len;
5320 /*****************************************************************************
5322 ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping
5324 ** @param xcb_connection_t *c
5325 ** @param uint8_t device_id
5326 ** @returns xcb_input_get_device_button_mapping_cookie_t
5328 *****************************************************************************/
5330 xcb_input_get_device_button_mapping_cookie_t
5331 xcb_input_get_device_button_mapping (xcb_connection_t *c /**< */,
5332 uint8_t device_id /**< */)
5334 static const xcb_protocol_request_t xcb_req = {
5335 /* count */ 2,
5336 /* ext */ &xcb_input_id,
5337 /* opcode */ XCB_INPUT_GET_DEVICE_BUTTON_MAPPING,
5338 /* isvoid */ 0
5341 struct iovec xcb_parts[4];
5342 xcb_input_get_device_button_mapping_cookie_t xcb_ret;
5343 xcb_input_get_device_button_mapping_request_t xcb_out;
5345 xcb_out.device_id = device_id;
5346 memset(xcb_out.pad0, 0, 3);
5348 xcb_parts[2].iov_base = (char *) &xcb_out;
5349 xcb_parts[2].iov_len = sizeof(xcb_out);
5350 xcb_parts[3].iov_base = 0;
5351 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5353 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5354 return xcb_ret;
5358 /*****************************************************************************
5360 ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping_unchecked
5362 ** @param xcb_connection_t *c
5363 ** @param uint8_t device_id
5364 ** @returns xcb_input_get_device_button_mapping_cookie_t
5366 *****************************************************************************/
5368 xcb_input_get_device_button_mapping_cookie_t
5369 xcb_input_get_device_button_mapping_unchecked (xcb_connection_t *c /**< */,
5370 uint8_t device_id /**< */)
5372 static const xcb_protocol_request_t xcb_req = {
5373 /* count */ 2,
5374 /* ext */ &xcb_input_id,
5375 /* opcode */ XCB_INPUT_GET_DEVICE_BUTTON_MAPPING,
5376 /* isvoid */ 0
5379 struct iovec xcb_parts[4];
5380 xcb_input_get_device_button_mapping_cookie_t xcb_ret;
5381 xcb_input_get_device_button_mapping_request_t xcb_out;
5383 xcb_out.device_id = device_id;
5384 memset(xcb_out.pad0, 0, 3);
5386 xcb_parts[2].iov_base = (char *) &xcb_out;
5387 xcb_parts[2].iov_len = sizeof(xcb_out);
5388 xcb_parts[3].iov_base = 0;
5389 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5391 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5392 return xcb_ret;
5396 /*****************************************************************************
5398 ** uint8_t * xcb_input_get_device_button_mapping_map
5400 ** @param const xcb_input_get_device_button_mapping_reply_t *R
5401 ** @returns uint8_t *
5403 *****************************************************************************/
5405 uint8_t *
5406 xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R /**< */)
5408 return (uint8_t *) (R + 1);
5412 /*****************************************************************************
5414 ** int xcb_input_get_device_button_mapping_map_length
5416 ** @param const xcb_input_get_device_button_mapping_reply_t *R
5417 ** @returns int
5419 *****************************************************************************/
5422 xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R /**< */)
5424 return R->map_size;
5428 /*****************************************************************************
5430 ** xcb_generic_iterator_t xcb_input_get_device_button_mapping_map_end
5432 ** @param const xcb_input_get_device_button_mapping_reply_t *R
5433 ** @returns xcb_generic_iterator_t
5435 *****************************************************************************/
5437 xcb_generic_iterator_t
5438 xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R /**< */)
5440 xcb_generic_iterator_t i;
5441 i.data = ((uint8_t *) (R + 1)) + (R->map_size);
5442 i.rem = 0;
5443 i.index = (char *) i.data - (char *) R;
5444 return i;
5448 /*****************************************************************************
5450 ** xcb_input_get_device_button_mapping_reply_t * xcb_input_get_device_button_mapping_reply
5452 ** @param xcb_connection_t *c
5453 ** @param xcb_input_get_device_button_mapping_cookie_t cookie
5454 ** @param xcb_generic_error_t **e
5455 ** @returns xcb_input_get_device_button_mapping_reply_t *
5457 *****************************************************************************/
5459 xcb_input_get_device_button_mapping_reply_t *
5460 xcb_input_get_device_button_mapping_reply (xcb_connection_t *c /**< */,
5461 xcb_input_get_device_button_mapping_cookie_t cookie /**< */,
5462 xcb_generic_error_t **e /**< */)
5464 return (xcb_input_get_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5468 xcb_input_set_device_button_mapping_sizeof (const void *_buffer /**< */)
5470 char *xcb_tmp = (char *)_buffer;
5471 const xcb_input_set_device_button_mapping_request_t *_aux = (xcb_input_set_device_button_mapping_request_t *)_buffer;
5472 unsigned int xcb_buffer_len = 0;
5473 unsigned int xcb_block_len = 0;
5474 unsigned int xcb_pad = 0;
5475 unsigned int xcb_align_to = 0;
5478 xcb_block_len += sizeof(xcb_input_set_device_button_mapping_request_t);
5479 xcb_tmp += xcb_block_len;
5480 xcb_buffer_len += xcb_block_len;
5481 xcb_block_len = 0;
5482 /* map */
5483 xcb_block_len += _aux->map_size * sizeof(uint8_t);
5484 xcb_tmp += xcb_block_len;
5485 xcb_align_to = ALIGNOF(uint8_t);
5486 /* insert padding */
5487 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5488 xcb_buffer_len += xcb_block_len + xcb_pad;
5489 if (0 != xcb_pad) {
5490 xcb_tmp += xcb_pad;
5491 xcb_pad = 0;
5493 xcb_block_len = 0;
5495 return xcb_buffer_len;
5499 /*****************************************************************************
5501 ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping
5503 ** @param xcb_connection_t *c
5504 ** @param uint8_t device_id
5505 ** @param uint8_t map_size
5506 ** @param const uint8_t *map
5507 ** @returns xcb_input_set_device_button_mapping_cookie_t
5509 *****************************************************************************/
5511 xcb_input_set_device_button_mapping_cookie_t
5512 xcb_input_set_device_button_mapping (xcb_connection_t *c /**< */,
5513 uint8_t device_id /**< */,
5514 uint8_t map_size /**< */,
5515 const uint8_t *map /**< */)
5517 static const xcb_protocol_request_t xcb_req = {
5518 /* count */ 4,
5519 /* ext */ &xcb_input_id,
5520 /* opcode */ XCB_INPUT_SET_DEVICE_BUTTON_MAPPING,
5521 /* isvoid */ 0
5524 struct iovec xcb_parts[6];
5525 xcb_input_set_device_button_mapping_cookie_t xcb_ret;
5526 xcb_input_set_device_button_mapping_request_t xcb_out;
5528 xcb_out.device_id = device_id;
5529 xcb_out.map_size = map_size;
5530 memset(xcb_out.pad0, 0, 2);
5532 xcb_parts[2].iov_base = (char *) &xcb_out;
5533 xcb_parts[2].iov_len = sizeof(xcb_out);
5534 xcb_parts[3].iov_base = 0;
5535 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5536 /* uint8_t map */
5537 xcb_parts[4].iov_base = (char *) map;
5538 xcb_parts[4].iov_len = map_size * sizeof(uint8_t);
5539 xcb_parts[5].iov_base = 0;
5540 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5542 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
5543 return xcb_ret;
5547 /*****************************************************************************
5549 ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping_unchecked
5551 ** @param xcb_connection_t *c
5552 ** @param uint8_t device_id
5553 ** @param uint8_t map_size
5554 ** @param const uint8_t *map
5555 ** @returns xcb_input_set_device_button_mapping_cookie_t
5557 *****************************************************************************/
5559 xcb_input_set_device_button_mapping_cookie_t
5560 xcb_input_set_device_button_mapping_unchecked (xcb_connection_t *c /**< */,
5561 uint8_t device_id /**< */,
5562 uint8_t map_size /**< */,
5563 const uint8_t *map /**< */)
5565 static const xcb_protocol_request_t xcb_req = {
5566 /* count */ 4,
5567 /* ext */ &xcb_input_id,
5568 /* opcode */ XCB_INPUT_SET_DEVICE_BUTTON_MAPPING,
5569 /* isvoid */ 0
5572 struct iovec xcb_parts[6];
5573 xcb_input_set_device_button_mapping_cookie_t xcb_ret;
5574 xcb_input_set_device_button_mapping_request_t xcb_out;
5576 xcb_out.device_id = device_id;
5577 xcb_out.map_size = map_size;
5578 memset(xcb_out.pad0, 0, 2);
5580 xcb_parts[2].iov_base = (char *) &xcb_out;
5581 xcb_parts[2].iov_len = sizeof(xcb_out);
5582 xcb_parts[3].iov_base = 0;
5583 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
5584 /* uint8_t map */
5585 xcb_parts[4].iov_base = (char *) map;
5586 xcb_parts[4].iov_len = map_size * sizeof(uint8_t);
5587 xcb_parts[5].iov_base = 0;
5588 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
5590 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
5591 return xcb_ret;
5595 /*****************************************************************************
5597 ** xcb_input_set_device_button_mapping_reply_t * xcb_input_set_device_button_mapping_reply
5599 ** @param xcb_connection_t *c
5600 ** @param xcb_input_set_device_button_mapping_cookie_t cookie
5601 ** @param xcb_generic_error_t **e
5602 ** @returns xcb_input_set_device_button_mapping_reply_t *
5604 *****************************************************************************/
5606 xcb_input_set_device_button_mapping_reply_t *
5607 xcb_input_set_device_button_mapping_reply (xcb_connection_t *c /**< */,
5608 xcb_input_set_device_button_mapping_cookie_t cookie /**< */,
5609 xcb_generic_error_t **e /**< */)
5611 return (xcb_input_set_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
5615 /*****************************************************************************
5617 ** void xcb_input_key_state_next
5619 ** @param xcb_input_key_state_iterator_t *i
5620 ** @returns void
5622 *****************************************************************************/
5624 void
5625 xcb_input_key_state_next (xcb_input_key_state_iterator_t *i /**< */)
5627 --i->rem;
5628 ++i->data;
5629 i->index += sizeof(xcb_input_key_state_t);
5633 /*****************************************************************************
5635 ** xcb_generic_iterator_t xcb_input_key_state_end
5637 ** @param xcb_input_key_state_iterator_t i
5638 ** @returns xcb_generic_iterator_t
5640 *****************************************************************************/
5642 xcb_generic_iterator_t
5643 xcb_input_key_state_end (xcb_input_key_state_iterator_t i /**< */)
5645 xcb_generic_iterator_t ret;
5646 ret.data = i.data + i.rem;
5647 ret.index = i.index + ((char *) ret.data - (char *) i.data);
5648 ret.rem = 0;
5649 return ret;
5653 /*****************************************************************************
5655 ** void xcb_input_button_state_next
5657 ** @param xcb_input_button_state_iterator_t *i
5658 ** @returns void
5660 *****************************************************************************/
5662 void
5663 xcb_input_button_state_next (xcb_input_button_state_iterator_t *i /**< */)
5665 --i->rem;
5666 ++i->data;
5667 i->index += sizeof(xcb_input_button_state_t);
5671 /*****************************************************************************
5673 ** xcb_generic_iterator_t xcb_input_button_state_end
5675 ** @param xcb_input_button_state_iterator_t i
5676 ** @returns xcb_generic_iterator_t
5678 *****************************************************************************/
5680 xcb_generic_iterator_t
5681 xcb_input_button_state_end (xcb_input_button_state_iterator_t i /**< */)
5683 xcb_generic_iterator_t ret;
5684 ret.data = i.data + i.rem;
5685 ret.index = i.index + ((char *) ret.data - (char *) i.data);
5686 ret.rem = 0;
5687 return ret;
5691 xcb_input_valuator_state_sizeof (const void *_buffer /**< */)
5693 char *xcb_tmp = (char *)_buffer;
5694 const xcb_input_valuator_state_t *_aux = (xcb_input_valuator_state_t *)_buffer;
5695 unsigned int xcb_buffer_len = 0;
5696 unsigned int xcb_block_len = 0;
5697 unsigned int xcb_pad = 0;
5698 unsigned int xcb_align_to = 0;
5701 xcb_block_len += sizeof(xcb_input_valuator_state_t);
5702 xcb_tmp += xcb_block_len;
5703 xcb_buffer_len += xcb_block_len;
5704 xcb_block_len = 0;
5705 /* valuators */
5706 xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
5707 xcb_tmp += xcb_block_len;
5708 xcb_align_to = ALIGNOF(uint32_t);
5709 /* insert padding */
5710 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5711 xcb_buffer_len += xcb_block_len + xcb_pad;
5712 if (0 != xcb_pad) {
5713 xcb_tmp += xcb_pad;
5714 xcb_pad = 0;
5716 xcb_block_len = 0;
5718 return xcb_buffer_len;
5722 /*****************************************************************************
5724 ** uint32_t * xcb_input_valuator_state_valuators
5726 ** @param const xcb_input_valuator_state_t *R
5727 ** @returns uint32_t *
5729 *****************************************************************************/
5731 uint32_t *
5732 xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R /**< */)
5734 return (uint32_t *) (R + 1);
5738 /*****************************************************************************
5740 ** int xcb_input_valuator_state_valuators_length
5742 ** @param const xcb_input_valuator_state_t *R
5743 ** @returns int
5745 *****************************************************************************/
5748 xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R /**< */)
5750 return R->num_valuators;
5754 /*****************************************************************************
5756 ** xcb_generic_iterator_t xcb_input_valuator_state_valuators_end
5758 ** @param const xcb_input_valuator_state_t *R
5759 ** @returns xcb_generic_iterator_t
5761 *****************************************************************************/
5763 xcb_generic_iterator_t
5764 xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R /**< */)
5766 xcb_generic_iterator_t i;
5767 i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
5768 i.rem = 0;
5769 i.index = (char *) i.data - (char *) R;
5770 return i;
5774 /*****************************************************************************
5776 ** void xcb_input_valuator_state_next
5778 ** @param xcb_input_valuator_state_iterator_t *i
5779 ** @returns void
5781 *****************************************************************************/
5783 void
5784 xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i /**< */)
5786 xcb_input_valuator_state_t *R = i->data;
5787 xcb_generic_iterator_t child;
5788 child.data = (xcb_input_valuator_state_t *)(((char *)R) + xcb_input_valuator_state_sizeof(R));
5789 i->index = (char *) child.data - (char *) i->data;
5790 --i->rem;
5791 i->data = (xcb_input_valuator_state_t *) child.data;
5795 /*****************************************************************************
5797 ** xcb_generic_iterator_t xcb_input_valuator_state_end
5799 ** @param xcb_input_valuator_state_iterator_t i
5800 ** @returns xcb_generic_iterator_t
5802 *****************************************************************************/
5804 xcb_generic_iterator_t
5805 xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i /**< */)
5807 xcb_generic_iterator_t ret;
5808 while(i.rem > 0)
5809 xcb_input_valuator_state_next(&i);
5810 ret.data = i.data;
5811 ret.rem = i.rem;
5812 ret.index = i.index;
5813 return ret;
5817 xcb_input_input_state_sizeof (const void *_buffer /**< */)
5819 char *xcb_tmp = (char *)_buffer;
5820 const xcb_input_input_state_t *_aux = (xcb_input_input_state_t *)_buffer;
5821 unsigned int xcb_buffer_len = 0;
5822 unsigned int xcb_block_len = 0;
5823 unsigned int xcb_pad = 0;
5824 unsigned int xcb_align_to = 0;
5827 xcb_block_len += sizeof(xcb_input_input_state_t);
5828 xcb_tmp += xcb_block_len;
5829 xcb_buffer_len += xcb_block_len;
5830 xcb_block_len = 0;
5831 /* uninterpreted_data */
5832 xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
5833 xcb_tmp += xcb_block_len;
5834 xcb_align_to = ALIGNOF(uint8_t);
5835 /* insert padding */
5836 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5837 xcb_buffer_len += xcb_block_len + xcb_pad;
5838 if (0 != xcb_pad) {
5839 xcb_tmp += xcb_pad;
5840 xcb_pad = 0;
5842 xcb_block_len = 0;
5844 return xcb_buffer_len;
5848 /*****************************************************************************
5850 ** uint8_t * xcb_input_input_state_uninterpreted_data
5852 ** @param const xcb_input_input_state_t *R
5853 ** @returns uint8_t *
5855 *****************************************************************************/
5857 uint8_t *
5858 xcb_input_input_state_uninterpreted_data (const xcb_input_input_state_t *R /**< */)
5860 return (uint8_t *) (R + 1);
5864 /*****************************************************************************
5866 ** int xcb_input_input_state_uninterpreted_data_length
5868 ** @param const xcb_input_input_state_t *R
5869 ** @returns int
5871 *****************************************************************************/
5874 xcb_input_input_state_uninterpreted_data_length (const xcb_input_input_state_t *R /**< */)
5876 return (R->len - 4);
5880 /*****************************************************************************
5882 ** xcb_generic_iterator_t xcb_input_input_state_uninterpreted_data_end
5884 ** @param const xcb_input_input_state_t *R
5885 ** @returns xcb_generic_iterator_t
5887 *****************************************************************************/
5889 xcb_generic_iterator_t
5890 xcb_input_input_state_uninterpreted_data_end (const xcb_input_input_state_t *R /**< */)
5892 xcb_generic_iterator_t i;
5893 i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
5894 i.rem = 0;
5895 i.index = (char *) i.data - (char *) R;
5896 return i;
5900 /*****************************************************************************
5902 ** void xcb_input_input_state_next
5904 ** @param xcb_input_input_state_iterator_t *i
5905 ** @returns void
5907 *****************************************************************************/
5909 void
5910 xcb_input_input_state_next (xcb_input_input_state_iterator_t *i /**< */)
5912 xcb_input_input_state_t *R = i->data;
5913 xcb_generic_iterator_t child;
5914 child.data = (xcb_input_input_state_t *)(((char *)R) + xcb_input_input_state_sizeof(R));
5915 i->index = (char *) child.data - (char *) i->data;
5916 --i->rem;
5917 i->data = (xcb_input_input_state_t *) child.data;
5921 /*****************************************************************************
5923 ** xcb_generic_iterator_t xcb_input_input_state_end
5925 ** @param xcb_input_input_state_iterator_t i
5926 ** @returns xcb_generic_iterator_t
5928 *****************************************************************************/
5930 xcb_generic_iterator_t
5931 xcb_input_input_state_end (xcb_input_input_state_iterator_t i /**< */)
5933 xcb_generic_iterator_t ret;
5934 while(i.rem > 0)
5935 xcb_input_input_state_next(&i);
5936 ret.data = i.data;
5937 ret.rem = i.rem;
5938 ret.index = i.index;
5939 return ret;
5943 xcb_input_query_device_state_sizeof (const void *_buffer /**< */)
5945 char *xcb_tmp = (char *)_buffer;
5946 const xcb_input_query_device_state_reply_t *_aux = (xcb_input_query_device_state_reply_t *)_buffer;
5947 unsigned int xcb_buffer_len = 0;
5948 unsigned int xcb_block_len = 0;
5949 unsigned int xcb_pad = 0;
5950 unsigned int xcb_align_to = 0;
5952 unsigned int i;
5953 unsigned int xcb_tmp_len;
5955 xcb_block_len += sizeof(xcb_input_query_device_state_reply_t);
5956 xcb_tmp += xcb_block_len;
5957 xcb_buffer_len += xcb_block_len;
5958 xcb_block_len = 0;
5959 /* classes */
5960 for(i=0; i<_aux->num_classes; i++) {
5961 xcb_tmp_len = xcb_input_input_state_sizeof(xcb_tmp);
5962 xcb_block_len += xcb_tmp_len;
5963 xcb_tmp += xcb_tmp_len;
5965 xcb_align_to = ALIGNOF(xcb_input_input_state_t);
5966 /* insert padding */
5967 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
5968 xcb_buffer_len += xcb_block_len + xcb_pad;
5969 if (0 != xcb_pad) {
5970 xcb_tmp += xcb_pad;
5971 xcb_pad = 0;
5973 xcb_block_len = 0;
5975 return xcb_buffer_len;
5979 /*****************************************************************************
5981 ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state
5983 ** @param xcb_connection_t *c
5984 ** @param uint8_t device_id
5985 ** @returns xcb_input_query_device_state_cookie_t
5987 *****************************************************************************/
5989 xcb_input_query_device_state_cookie_t
5990 xcb_input_query_device_state (xcb_connection_t *c /**< */,
5991 uint8_t device_id /**< */)
5993 static const xcb_protocol_request_t xcb_req = {
5994 /* count */ 2,
5995 /* ext */ &xcb_input_id,
5996 /* opcode */ XCB_INPUT_QUERY_DEVICE_STATE,
5997 /* isvoid */ 0
6000 struct iovec xcb_parts[4];
6001 xcb_input_query_device_state_cookie_t xcb_ret;
6002 xcb_input_query_device_state_request_t xcb_out;
6004 xcb_out.device_id = device_id;
6005 memset(xcb_out.pad0, 0, 3);
6007 xcb_parts[2].iov_base = (char *) &xcb_out;
6008 xcb_parts[2].iov_len = sizeof(xcb_out);
6009 xcb_parts[3].iov_base = 0;
6010 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6012 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6013 return xcb_ret;
6017 /*****************************************************************************
6019 ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state_unchecked
6021 ** @param xcb_connection_t *c
6022 ** @param uint8_t device_id
6023 ** @returns xcb_input_query_device_state_cookie_t
6025 *****************************************************************************/
6027 xcb_input_query_device_state_cookie_t
6028 xcb_input_query_device_state_unchecked (xcb_connection_t *c /**< */,
6029 uint8_t device_id /**< */)
6031 static const xcb_protocol_request_t xcb_req = {
6032 /* count */ 2,
6033 /* ext */ &xcb_input_id,
6034 /* opcode */ XCB_INPUT_QUERY_DEVICE_STATE,
6035 /* isvoid */ 0
6038 struct iovec xcb_parts[4];
6039 xcb_input_query_device_state_cookie_t xcb_ret;
6040 xcb_input_query_device_state_request_t xcb_out;
6042 xcb_out.device_id = device_id;
6043 memset(xcb_out.pad0, 0, 3);
6045 xcb_parts[2].iov_base = (char *) &xcb_out;
6046 xcb_parts[2].iov_len = sizeof(xcb_out);
6047 xcb_parts[3].iov_base = 0;
6048 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6050 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6051 return xcb_ret;
6055 /*****************************************************************************
6057 ** int xcb_input_query_device_state_classes_length
6059 ** @param const xcb_input_query_device_state_reply_t *R
6060 ** @returns int
6062 *****************************************************************************/
6065 xcb_input_query_device_state_classes_length (const xcb_input_query_device_state_reply_t *R /**< */)
6067 return R->num_classes;
6071 /*****************************************************************************
6073 ** xcb_input_input_state_iterator_t xcb_input_query_device_state_classes_iterator
6075 ** @param const xcb_input_query_device_state_reply_t *R
6076 ** @returns xcb_input_input_state_iterator_t
6078 *****************************************************************************/
6080 xcb_input_input_state_iterator_t
6081 xcb_input_query_device_state_classes_iterator (const xcb_input_query_device_state_reply_t *R /**< */)
6083 xcb_input_input_state_iterator_t i;
6084 i.data = (xcb_input_input_state_t *) (R + 1);
6085 i.rem = R->num_classes;
6086 i.index = (char *) i.data - (char *) R;
6087 return i;
6091 /*****************************************************************************
6093 ** xcb_input_query_device_state_reply_t * xcb_input_query_device_state_reply
6095 ** @param xcb_connection_t *c
6096 ** @param xcb_input_query_device_state_cookie_t cookie
6097 ** @param xcb_generic_error_t **e
6098 ** @returns xcb_input_query_device_state_reply_t *
6100 *****************************************************************************/
6102 xcb_input_query_device_state_reply_t *
6103 xcb_input_query_device_state_reply (xcb_connection_t *c /**< */,
6104 xcb_input_query_device_state_cookie_t cookie /**< */,
6105 xcb_generic_error_t **e /**< */)
6107 return (xcb_input_query_device_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
6111 xcb_input_send_extension_event_sizeof (const void *_buffer /**< */)
6113 char *xcb_tmp = (char *)_buffer;
6114 const xcb_input_send_extension_event_request_t *_aux = (xcb_input_send_extension_event_request_t *)_buffer;
6115 unsigned int xcb_buffer_len = 0;
6116 unsigned int xcb_block_len = 0;
6117 unsigned int xcb_pad = 0;
6118 unsigned int xcb_align_to = 0;
6121 xcb_block_len += sizeof(xcb_input_send_extension_event_request_t);
6122 xcb_tmp += xcb_block_len;
6123 xcb_buffer_len += xcb_block_len;
6124 xcb_block_len = 0;
6125 /* events */
6126 xcb_block_len += (_aux->num_events * 32) * sizeof(uint8_t);
6127 xcb_tmp += xcb_block_len;
6128 xcb_align_to = ALIGNOF(uint8_t);
6129 /* insert padding */
6130 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6131 xcb_buffer_len += xcb_block_len + xcb_pad;
6132 if (0 != xcb_pad) {
6133 xcb_tmp += xcb_pad;
6134 xcb_pad = 0;
6136 xcb_block_len = 0;
6137 /* classes */
6138 xcb_block_len += _aux->num_classes * sizeof(xcb_input_event_class_t);
6139 xcb_tmp += xcb_block_len;
6140 xcb_align_to = ALIGNOF(xcb_input_event_class_t);
6141 /* insert padding */
6142 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6143 xcb_buffer_len += xcb_block_len + xcb_pad;
6144 if (0 != xcb_pad) {
6145 xcb_tmp += xcb_pad;
6146 xcb_pad = 0;
6148 xcb_block_len = 0;
6150 return xcb_buffer_len;
6154 /*****************************************************************************
6156 ** xcb_void_cookie_t xcb_input_send_extension_event_checked
6158 ** @param xcb_connection_t *c
6159 ** @param xcb_window_t destination
6160 ** @param uint8_t device_id
6161 ** @param uint8_t propagate
6162 ** @param uint16_t num_classes
6163 ** @param uint8_t num_events
6164 ** @param const uint8_t *events
6165 ** @param const xcb_input_event_class_t *classes
6166 ** @returns xcb_void_cookie_t
6168 *****************************************************************************/
6170 xcb_void_cookie_t
6171 xcb_input_send_extension_event_checked (xcb_connection_t *c /**< */,
6172 xcb_window_t destination /**< */,
6173 uint8_t device_id /**< */,
6174 uint8_t propagate /**< */,
6175 uint16_t num_classes /**< */,
6176 uint8_t num_events /**< */,
6177 const uint8_t *events /**< */,
6178 const xcb_input_event_class_t *classes /**< */)
6180 static const xcb_protocol_request_t xcb_req = {
6181 /* count */ 6,
6182 /* ext */ &xcb_input_id,
6183 /* opcode */ XCB_INPUT_SEND_EXTENSION_EVENT,
6184 /* isvoid */ 1
6187 struct iovec xcb_parts[8];
6188 xcb_void_cookie_t xcb_ret;
6189 xcb_input_send_extension_event_request_t xcb_out;
6191 xcb_out.destination = destination;
6192 xcb_out.device_id = device_id;
6193 xcb_out.propagate = propagate;
6194 xcb_out.num_classes = num_classes;
6195 xcb_out.num_events = num_events;
6196 memset(xcb_out.pad0, 0, 3);
6198 xcb_parts[2].iov_base = (char *) &xcb_out;
6199 xcb_parts[2].iov_len = sizeof(xcb_out);
6200 xcb_parts[3].iov_base = 0;
6201 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6202 /* uint8_t events */
6203 xcb_parts[4].iov_base = (char *) events;
6204 xcb_parts[4].iov_len = (num_events * 32) * sizeof(uint8_t);
6205 xcb_parts[5].iov_base = 0;
6206 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6207 /* xcb_input_event_class_t classes */
6208 xcb_parts[6].iov_base = (char *) classes;
6209 xcb_parts[6].iov_len = num_classes * sizeof(xcb_input_event_class_t);
6210 xcb_parts[7].iov_base = 0;
6211 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
6213 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6214 return xcb_ret;
6218 /*****************************************************************************
6220 ** xcb_void_cookie_t xcb_input_send_extension_event
6222 ** @param xcb_connection_t *c
6223 ** @param xcb_window_t destination
6224 ** @param uint8_t device_id
6225 ** @param uint8_t propagate
6226 ** @param uint16_t num_classes
6227 ** @param uint8_t num_events
6228 ** @param const uint8_t *events
6229 ** @param const xcb_input_event_class_t *classes
6230 ** @returns xcb_void_cookie_t
6232 *****************************************************************************/
6234 xcb_void_cookie_t
6235 xcb_input_send_extension_event (xcb_connection_t *c /**< */,
6236 xcb_window_t destination /**< */,
6237 uint8_t device_id /**< */,
6238 uint8_t propagate /**< */,
6239 uint16_t num_classes /**< */,
6240 uint8_t num_events /**< */,
6241 const uint8_t *events /**< */,
6242 const xcb_input_event_class_t *classes /**< */)
6244 static const xcb_protocol_request_t xcb_req = {
6245 /* count */ 6,
6246 /* ext */ &xcb_input_id,
6247 /* opcode */ XCB_INPUT_SEND_EXTENSION_EVENT,
6248 /* isvoid */ 1
6251 struct iovec xcb_parts[8];
6252 xcb_void_cookie_t xcb_ret;
6253 xcb_input_send_extension_event_request_t xcb_out;
6255 xcb_out.destination = destination;
6256 xcb_out.device_id = device_id;
6257 xcb_out.propagate = propagate;
6258 xcb_out.num_classes = num_classes;
6259 xcb_out.num_events = num_events;
6260 memset(xcb_out.pad0, 0, 3);
6262 xcb_parts[2].iov_base = (char *) &xcb_out;
6263 xcb_parts[2].iov_len = sizeof(xcb_out);
6264 xcb_parts[3].iov_base = 0;
6265 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6266 /* uint8_t events */
6267 xcb_parts[4].iov_base = (char *) events;
6268 xcb_parts[4].iov_len = (num_events * 32) * sizeof(uint8_t);
6269 xcb_parts[5].iov_base = 0;
6270 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6271 /* xcb_input_event_class_t classes */
6272 xcb_parts[6].iov_base = (char *) classes;
6273 xcb_parts[6].iov_len = num_classes * sizeof(xcb_input_event_class_t);
6274 xcb_parts[7].iov_base = 0;
6275 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
6277 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6278 return xcb_ret;
6282 /*****************************************************************************
6284 ** xcb_void_cookie_t xcb_input_device_bell_checked
6286 ** @param xcb_connection_t *c
6287 ** @param uint8_t device_id
6288 ** @param uint8_t feedback_id
6289 ** @param uint8_t feedback_class
6290 ** @param int8_t percent
6291 ** @returns xcb_void_cookie_t
6293 *****************************************************************************/
6295 xcb_void_cookie_t
6296 xcb_input_device_bell_checked (xcb_connection_t *c /**< */,
6297 uint8_t device_id /**< */,
6298 uint8_t feedback_id /**< */,
6299 uint8_t feedback_class /**< */,
6300 int8_t percent /**< */)
6302 static const xcb_protocol_request_t xcb_req = {
6303 /* count */ 2,
6304 /* ext */ &xcb_input_id,
6305 /* opcode */ XCB_INPUT_DEVICE_BELL,
6306 /* isvoid */ 1
6309 struct iovec xcb_parts[4];
6310 xcb_void_cookie_t xcb_ret;
6311 xcb_input_device_bell_request_t xcb_out;
6313 xcb_out.device_id = device_id;
6314 xcb_out.feedback_id = feedback_id;
6315 xcb_out.feedback_class = feedback_class;
6316 xcb_out.percent = percent;
6318 xcb_parts[2].iov_base = (char *) &xcb_out;
6319 xcb_parts[2].iov_len = sizeof(xcb_out);
6320 xcb_parts[3].iov_base = 0;
6321 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6323 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6324 return xcb_ret;
6328 /*****************************************************************************
6330 ** xcb_void_cookie_t xcb_input_device_bell
6332 ** @param xcb_connection_t *c
6333 ** @param uint8_t device_id
6334 ** @param uint8_t feedback_id
6335 ** @param uint8_t feedback_class
6336 ** @param int8_t percent
6337 ** @returns xcb_void_cookie_t
6339 *****************************************************************************/
6341 xcb_void_cookie_t
6342 xcb_input_device_bell (xcb_connection_t *c /**< */,
6343 uint8_t device_id /**< */,
6344 uint8_t feedback_id /**< */,
6345 uint8_t feedback_class /**< */,
6346 int8_t percent /**< */)
6348 static const xcb_protocol_request_t xcb_req = {
6349 /* count */ 2,
6350 /* ext */ &xcb_input_id,
6351 /* opcode */ XCB_INPUT_DEVICE_BELL,
6352 /* isvoid */ 1
6355 struct iovec xcb_parts[4];
6356 xcb_void_cookie_t xcb_ret;
6357 xcb_input_device_bell_request_t xcb_out;
6359 xcb_out.device_id = device_id;
6360 xcb_out.feedback_id = feedback_id;
6361 xcb_out.feedback_class = feedback_class;
6362 xcb_out.percent = percent;
6364 xcb_parts[2].iov_base = (char *) &xcb_out;
6365 xcb_parts[2].iov_len = sizeof(xcb_out);
6366 xcb_parts[3].iov_base = 0;
6367 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6369 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6370 return xcb_ret;
6374 xcb_input_set_device_valuators_sizeof (const void *_buffer /**< */)
6376 char *xcb_tmp = (char *)_buffer;
6377 const xcb_input_set_device_valuators_request_t *_aux = (xcb_input_set_device_valuators_request_t *)_buffer;
6378 unsigned int xcb_buffer_len = 0;
6379 unsigned int xcb_block_len = 0;
6380 unsigned int xcb_pad = 0;
6381 unsigned int xcb_align_to = 0;
6384 xcb_block_len += sizeof(xcb_input_set_device_valuators_request_t);
6385 xcb_tmp += xcb_block_len;
6386 xcb_buffer_len += xcb_block_len;
6387 xcb_block_len = 0;
6388 /* valuators */
6389 xcb_block_len += _aux->num_valuators * sizeof(int32_t);
6390 xcb_tmp += xcb_block_len;
6391 xcb_align_to = ALIGNOF(int32_t);
6392 /* insert padding */
6393 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6394 xcb_buffer_len += xcb_block_len + xcb_pad;
6395 if (0 != xcb_pad) {
6396 xcb_tmp += xcb_pad;
6397 xcb_pad = 0;
6399 xcb_block_len = 0;
6401 return xcb_buffer_len;
6405 /*****************************************************************************
6407 ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators
6409 ** @param xcb_connection_t *c
6410 ** @param uint8_t device_id
6411 ** @param uint8_t first_valuator
6412 ** @param uint8_t num_valuators
6413 ** @param const int32_t *valuators
6414 ** @returns xcb_input_set_device_valuators_cookie_t
6416 *****************************************************************************/
6418 xcb_input_set_device_valuators_cookie_t
6419 xcb_input_set_device_valuators (xcb_connection_t *c /**< */,
6420 uint8_t device_id /**< */,
6421 uint8_t first_valuator /**< */,
6422 uint8_t num_valuators /**< */,
6423 const int32_t *valuators /**< */)
6425 static const xcb_protocol_request_t xcb_req = {
6426 /* count */ 4,
6427 /* ext */ &xcb_input_id,
6428 /* opcode */ XCB_INPUT_SET_DEVICE_VALUATORS,
6429 /* isvoid */ 0
6432 struct iovec xcb_parts[6];
6433 xcb_input_set_device_valuators_cookie_t xcb_ret;
6434 xcb_input_set_device_valuators_request_t xcb_out;
6436 xcb_out.device_id = device_id;
6437 xcb_out.first_valuator = first_valuator;
6438 xcb_out.num_valuators = num_valuators;
6439 xcb_out.pad0 = 0;
6441 xcb_parts[2].iov_base = (char *) &xcb_out;
6442 xcb_parts[2].iov_len = sizeof(xcb_out);
6443 xcb_parts[3].iov_base = 0;
6444 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6445 /* int32_t valuators */
6446 xcb_parts[4].iov_base = (char *) valuators;
6447 xcb_parts[4].iov_len = num_valuators * sizeof(int32_t);
6448 xcb_parts[5].iov_base = 0;
6449 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6451 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
6452 return xcb_ret;
6456 /*****************************************************************************
6458 ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators_unchecked
6460 ** @param xcb_connection_t *c
6461 ** @param uint8_t device_id
6462 ** @param uint8_t first_valuator
6463 ** @param uint8_t num_valuators
6464 ** @param const int32_t *valuators
6465 ** @returns xcb_input_set_device_valuators_cookie_t
6467 *****************************************************************************/
6469 xcb_input_set_device_valuators_cookie_t
6470 xcb_input_set_device_valuators_unchecked (xcb_connection_t *c /**< */,
6471 uint8_t device_id /**< */,
6472 uint8_t first_valuator /**< */,
6473 uint8_t num_valuators /**< */,
6474 const int32_t *valuators /**< */)
6476 static const xcb_protocol_request_t xcb_req = {
6477 /* count */ 4,
6478 /* ext */ &xcb_input_id,
6479 /* opcode */ XCB_INPUT_SET_DEVICE_VALUATORS,
6480 /* isvoid */ 0
6483 struct iovec xcb_parts[6];
6484 xcb_input_set_device_valuators_cookie_t xcb_ret;
6485 xcb_input_set_device_valuators_request_t xcb_out;
6487 xcb_out.device_id = device_id;
6488 xcb_out.first_valuator = first_valuator;
6489 xcb_out.num_valuators = num_valuators;
6490 xcb_out.pad0 = 0;
6492 xcb_parts[2].iov_base = (char *) &xcb_out;
6493 xcb_parts[2].iov_len = sizeof(xcb_out);
6494 xcb_parts[3].iov_base = 0;
6495 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
6496 /* int32_t valuators */
6497 xcb_parts[4].iov_base = (char *) valuators;
6498 xcb_parts[4].iov_len = num_valuators * sizeof(int32_t);
6499 xcb_parts[5].iov_base = 0;
6500 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
6502 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
6503 return xcb_ret;
6507 /*****************************************************************************
6509 ** xcb_input_set_device_valuators_reply_t * xcb_input_set_device_valuators_reply
6511 ** @param xcb_connection_t *c
6512 ** @param xcb_input_set_device_valuators_cookie_t cookie
6513 ** @param xcb_generic_error_t **e
6514 ** @returns xcb_input_set_device_valuators_reply_t *
6516 *****************************************************************************/
6518 xcb_input_set_device_valuators_reply_t *
6519 xcb_input_set_device_valuators_reply (xcb_connection_t *c /**< */,
6520 xcb_input_set_device_valuators_cookie_t cookie /**< */,
6521 xcb_generic_error_t **e /**< */)
6523 return (xcb_input_set_device_valuators_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
6527 xcb_input_device_resolution_state_sizeof (const void *_buffer /**< */)
6529 char *xcb_tmp = (char *)_buffer;
6530 const xcb_input_device_resolution_state_t *_aux = (xcb_input_device_resolution_state_t *)_buffer;
6531 unsigned int xcb_buffer_len = 0;
6532 unsigned int xcb_block_len = 0;
6533 unsigned int xcb_pad = 0;
6534 unsigned int xcb_align_to = 0;
6537 xcb_block_len += sizeof(xcb_input_device_resolution_state_t);
6538 xcb_tmp += xcb_block_len;
6539 xcb_buffer_len += xcb_block_len;
6540 xcb_block_len = 0;
6541 /* resolution_values */
6542 xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6543 xcb_tmp += xcb_block_len;
6544 xcb_align_to = ALIGNOF(uint32_t);
6545 /* insert padding */
6546 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6547 xcb_buffer_len += xcb_block_len + xcb_pad;
6548 if (0 != xcb_pad) {
6549 xcb_tmp += xcb_pad;
6550 xcb_pad = 0;
6552 xcb_block_len = 0;
6553 /* resolution_min */
6554 xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6555 xcb_tmp += xcb_block_len;
6556 xcb_align_to = ALIGNOF(uint32_t);
6557 /* insert padding */
6558 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6559 xcb_buffer_len += xcb_block_len + xcb_pad;
6560 if (0 != xcb_pad) {
6561 xcb_tmp += xcb_pad;
6562 xcb_pad = 0;
6564 xcb_block_len = 0;
6565 /* resolution_max */
6566 xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
6567 xcb_tmp += xcb_block_len;
6568 xcb_align_to = ALIGNOF(uint32_t);
6569 /* insert padding */
6570 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6571 xcb_buffer_len += xcb_block_len + xcb_pad;
6572 if (0 != xcb_pad) {
6573 xcb_tmp += xcb_pad;
6574 xcb_pad = 0;
6576 xcb_block_len = 0;
6578 return xcb_buffer_len;
6582 /*****************************************************************************
6584 ** uint32_t * xcb_input_device_resolution_state_resolution_values
6586 ** @param const xcb_input_device_resolution_state_t *R
6587 ** @returns uint32_t *
6589 *****************************************************************************/
6591 uint32_t *
6592 xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R /**< */)
6594 return (uint32_t *) (R + 1);
6598 /*****************************************************************************
6600 ** int xcb_input_device_resolution_state_resolution_values_length
6602 ** @param const xcb_input_device_resolution_state_t *R
6603 ** @returns int
6605 *****************************************************************************/
6608 xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R /**< */)
6610 return R->num_valuators;
6614 /*****************************************************************************
6616 ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_values_end
6618 ** @param const xcb_input_device_resolution_state_t *R
6619 ** @returns xcb_generic_iterator_t
6621 *****************************************************************************/
6623 xcb_generic_iterator_t
6624 xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R /**< */)
6626 xcb_generic_iterator_t i;
6627 i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
6628 i.rem = 0;
6629 i.index = (char *) i.data - (char *) R;
6630 return i;
6634 /*****************************************************************************
6636 ** uint32_t * xcb_input_device_resolution_state_resolution_min
6638 ** @param const xcb_input_device_resolution_state_t *R
6639 ** @returns uint32_t *
6641 *****************************************************************************/
6643 uint32_t *
6644 xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R /**< */)
6646 xcb_generic_iterator_t prev = xcb_input_device_resolution_state_resolution_values_end(R);
6647 return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
6651 /*****************************************************************************
6653 ** int xcb_input_device_resolution_state_resolution_min_length
6655 ** @param const xcb_input_device_resolution_state_t *R
6656 ** @returns int
6658 *****************************************************************************/
6661 xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R /**< */)
6663 return R->num_valuators;
6667 /*****************************************************************************
6669 ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_min_end
6671 ** @param const xcb_input_device_resolution_state_t *R
6672 ** @returns xcb_generic_iterator_t
6674 *****************************************************************************/
6676 xcb_generic_iterator_t
6677 xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R /**< */)
6679 xcb_generic_iterator_t i;
6680 xcb_generic_iterator_t child = xcb_input_device_resolution_state_resolution_values_end(R);
6681 i.data = ((uint32_t *) child.data) + (R->num_valuators);
6682 i.rem = 0;
6683 i.index = (char *) i.data - (char *) R;
6684 return i;
6688 /*****************************************************************************
6690 ** uint32_t * xcb_input_device_resolution_state_resolution_max
6692 ** @param const xcb_input_device_resolution_state_t *R
6693 ** @returns uint32_t *
6695 *****************************************************************************/
6697 uint32_t *
6698 xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R /**< */)
6700 xcb_generic_iterator_t prev = xcb_input_device_resolution_state_resolution_min_end(R);
6701 return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
6705 /*****************************************************************************
6707 ** int xcb_input_device_resolution_state_resolution_max_length
6709 ** @param const xcb_input_device_resolution_state_t *R
6710 ** @returns int
6712 *****************************************************************************/
6715 xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R /**< */)
6717 return R->num_valuators;
6721 /*****************************************************************************
6723 ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_max_end
6725 ** @param const xcb_input_device_resolution_state_t *R
6726 ** @returns xcb_generic_iterator_t
6728 *****************************************************************************/
6730 xcb_generic_iterator_t
6731 xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R /**< */)
6733 xcb_generic_iterator_t i;
6734 xcb_generic_iterator_t child = xcb_input_device_resolution_state_resolution_min_end(R);
6735 i.data = ((uint32_t *) child.data) + (R->num_valuators);
6736 i.rem = 0;
6737 i.index = (char *) i.data - (char *) R;
6738 return i;
6742 /*****************************************************************************
6744 ** void xcb_input_device_resolution_state_next
6746 ** @param xcb_input_device_resolution_state_iterator_t *i
6747 ** @returns void
6749 *****************************************************************************/
6751 void
6752 xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i /**< */)
6754 xcb_input_device_resolution_state_t *R = i->data;
6755 xcb_generic_iterator_t child;
6756 child.data = (xcb_input_device_resolution_state_t *)(((char *)R) + xcb_input_device_resolution_state_sizeof(R));
6757 i->index = (char *) child.data - (char *) i->data;
6758 --i->rem;
6759 i->data = (xcb_input_device_resolution_state_t *) child.data;
6763 /*****************************************************************************
6765 ** xcb_generic_iterator_t xcb_input_device_resolution_state_end
6767 ** @param xcb_input_device_resolution_state_iterator_t i
6768 ** @returns xcb_generic_iterator_t
6770 *****************************************************************************/
6772 xcb_generic_iterator_t
6773 xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i /**< */)
6775 xcb_generic_iterator_t ret;
6776 while(i.rem > 0)
6777 xcb_input_device_resolution_state_next(&i);
6778 ret.data = i.data;
6779 ret.rem = i.rem;
6780 ret.index = i.index;
6781 return ret;
6785 /*****************************************************************************
6787 ** void xcb_input_device_abs_calib_state_next
6789 ** @param xcb_input_device_abs_calib_state_iterator_t *i
6790 ** @returns void
6792 *****************************************************************************/
6794 void
6795 xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i /**< */)
6797 --i->rem;
6798 ++i->data;
6799 i->index += sizeof(xcb_input_device_abs_calib_state_t);
6803 /*****************************************************************************
6805 ** xcb_generic_iterator_t xcb_input_device_abs_calib_state_end
6807 ** @param xcb_input_device_abs_calib_state_iterator_t i
6808 ** @returns xcb_generic_iterator_t
6810 *****************************************************************************/
6812 xcb_generic_iterator_t
6813 xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i /**< */)
6815 xcb_generic_iterator_t ret;
6816 ret.data = i.data + i.rem;
6817 ret.index = i.index + ((char *) ret.data - (char *) i.data);
6818 ret.rem = 0;
6819 return ret;
6823 /*****************************************************************************
6825 ** void xcb_input_device_abs_area_state_next
6827 ** @param xcb_input_device_abs_area_state_iterator_t *i
6828 ** @returns void
6830 *****************************************************************************/
6832 void
6833 xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i /**< */)
6835 --i->rem;
6836 ++i->data;
6837 i->index += sizeof(xcb_input_device_abs_area_state_t);
6841 /*****************************************************************************
6843 ** xcb_generic_iterator_t xcb_input_device_abs_area_state_end
6845 ** @param xcb_input_device_abs_area_state_iterator_t i
6846 ** @returns xcb_generic_iterator_t
6848 *****************************************************************************/
6850 xcb_generic_iterator_t
6851 xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i /**< */)
6853 xcb_generic_iterator_t ret;
6854 ret.data = i.data + i.rem;
6855 ret.index = i.index + ((char *) ret.data - (char *) i.data);
6856 ret.rem = 0;
6857 return ret;
6861 /*****************************************************************************
6863 ** void xcb_input_device_core_state_next
6865 ** @param xcb_input_device_core_state_iterator_t *i
6866 ** @returns void
6868 *****************************************************************************/
6870 void
6871 xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i /**< */)
6873 --i->rem;
6874 ++i->data;
6875 i->index += sizeof(xcb_input_device_core_state_t);
6879 /*****************************************************************************
6881 ** xcb_generic_iterator_t xcb_input_device_core_state_end
6883 ** @param xcb_input_device_core_state_iterator_t i
6884 ** @returns xcb_generic_iterator_t
6886 *****************************************************************************/
6888 xcb_generic_iterator_t
6889 xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i /**< */)
6891 xcb_generic_iterator_t ret;
6892 ret.data = i.data + i.rem;
6893 ret.index = i.index + ((char *) ret.data - (char *) i.data);
6894 ret.rem = 0;
6895 return ret;
6899 /*****************************************************************************
6901 ** void xcb_input_device_enable_state_next
6903 ** @param xcb_input_device_enable_state_iterator_t *i
6904 ** @returns void
6906 *****************************************************************************/
6908 void
6909 xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i /**< */)
6911 --i->rem;
6912 ++i->data;
6913 i->index += sizeof(xcb_input_device_enable_state_t);
6917 /*****************************************************************************
6919 ** xcb_generic_iterator_t xcb_input_device_enable_state_end
6921 ** @param xcb_input_device_enable_state_iterator_t i
6922 ** @returns xcb_generic_iterator_t
6924 *****************************************************************************/
6926 xcb_generic_iterator_t
6927 xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i /**< */)
6929 xcb_generic_iterator_t ret;
6930 ret.data = i.data + i.rem;
6931 ret.index = i.index + ((char *) ret.data - (char *) i.data);
6932 ret.rem = 0;
6933 return ret;
6937 xcb_input_device_state_sizeof (const void *_buffer /**< */)
6939 char *xcb_tmp = (char *)_buffer;
6940 const xcb_input_device_state_t *_aux = (xcb_input_device_state_t *)_buffer;
6941 unsigned int xcb_buffer_len = 0;
6942 unsigned int xcb_block_len = 0;
6943 unsigned int xcb_pad = 0;
6944 unsigned int xcb_align_to = 0;
6947 xcb_block_len += sizeof(xcb_input_device_state_t);
6948 xcb_tmp += xcb_block_len;
6949 xcb_buffer_len += xcb_block_len;
6950 xcb_block_len = 0;
6951 /* uninterpreted_data */
6952 xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
6953 xcb_tmp += xcb_block_len;
6954 xcb_align_to = ALIGNOF(uint8_t);
6955 /* insert padding */
6956 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
6957 xcb_buffer_len += xcb_block_len + xcb_pad;
6958 if (0 != xcb_pad) {
6959 xcb_tmp += xcb_pad;
6960 xcb_pad = 0;
6962 xcb_block_len = 0;
6964 return xcb_buffer_len;
6968 /*****************************************************************************
6970 ** uint8_t * xcb_input_device_state_uninterpreted_data
6972 ** @param const xcb_input_device_state_t *R
6973 ** @returns uint8_t *
6975 *****************************************************************************/
6977 uint8_t *
6978 xcb_input_device_state_uninterpreted_data (const xcb_input_device_state_t *R /**< */)
6980 return (uint8_t *) (R + 1);
6984 /*****************************************************************************
6986 ** int xcb_input_device_state_uninterpreted_data_length
6988 ** @param const xcb_input_device_state_t *R
6989 ** @returns int
6991 *****************************************************************************/
6994 xcb_input_device_state_uninterpreted_data_length (const xcb_input_device_state_t *R /**< */)
6996 return (R->len - 4);
7000 /*****************************************************************************
7002 ** xcb_generic_iterator_t xcb_input_device_state_uninterpreted_data_end
7004 ** @param const xcb_input_device_state_t *R
7005 ** @returns xcb_generic_iterator_t
7007 *****************************************************************************/
7009 xcb_generic_iterator_t
7010 xcb_input_device_state_uninterpreted_data_end (const xcb_input_device_state_t *R /**< */)
7012 xcb_generic_iterator_t i;
7013 i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
7014 i.rem = 0;
7015 i.index = (char *) i.data - (char *) R;
7016 return i;
7020 /*****************************************************************************
7022 ** void xcb_input_device_state_next
7024 ** @param xcb_input_device_state_iterator_t *i
7025 ** @returns void
7027 *****************************************************************************/
7029 void
7030 xcb_input_device_state_next (xcb_input_device_state_iterator_t *i /**< */)
7032 xcb_input_device_state_t *R = i->data;
7033 xcb_generic_iterator_t child;
7034 child.data = (xcb_input_device_state_t *)(((char *)R) + xcb_input_device_state_sizeof(R));
7035 i->index = (char *) child.data - (char *) i->data;
7036 --i->rem;
7037 i->data = (xcb_input_device_state_t *) child.data;
7041 /*****************************************************************************
7043 ** xcb_generic_iterator_t xcb_input_device_state_end
7045 ** @param xcb_input_device_state_iterator_t i
7046 ** @returns xcb_generic_iterator_t
7048 *****************************************************************************/
7050 xcb_generic_iterator_t
7051 xcb_input_device_state_end (xcb_input_device_state_iterator_t i /**< */)
7053 xcb_generic_iterator_t ret;
7054 while(i.rem > 0)
7055 xcb_input_device_state_next(&i);
7056 ret.data = i.data;
7057 ret.rem = i.rem;
7058 ret.index = i.index;
7059 return ret;
7063 xcb_input_get_device_control_sizeof (const void *_buffer /**< */)
7065 char *xcb_tmp = (char *)_buffer;
7066 unsigned int xcb_buffer_len = 0;
7067 unsigned int xcb_block_len = 0;
7068 unsigned int xcb_pad = 0;
7069 unsigned int xcb_align_to = 0;
7072 xcb_block_len += sizeof(xcb_input_get_device_control_reply_t);
7073 xcb_tmp += xcb_block_len;
7074 xcb_buffer_len += xcb_block_len;
7075 xcb_block_len = 0;
7076 /* control */
7077 xcb_block_len += xcb_input_device_state_sizeof(xcb_tmp);
7078 xcb_tmp += xcb_block_len;
7079 xcb_align_to = ALIGNOF(xcb_input_device_state_t);
7080 /* insert padding */
7081 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7082 xcb_buffer_len += xcb_block_len + xcb_pad;
7083 if (0 != xcb_pad) {
7084 xcb_tmp += xcb_pad;
7085 xcb_pad = 0;
7087 xcb_block_len = 0;
7089 return xcb_buffer_len;
7093 /*****************************************************************************
7095 ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control
7097 ** @param xcb_connection_t *c
7098 ** @param uint16_t control_id
7099 ** @param uint8_t device_id
7100 ** @returns xcb_input_get_device_control_cookie_t
7102 *****************************************************************************/
7104 xcb_input_get_device_control_cookie_t
7105 xcb_input_get_device_control (xcb_connection_t *c /**< */,
7106 uint16_t control_id /**< */,
7107 uint8_t device_id /**< */)
7109 static const xcb_protocol_request_t xcb_req = {
7110 /* count */ 2,
7111 /* ext */ &xcb_input_id,
7112 /* opcode */ XCB_INPUT_GET_DEVICE_CONTROL,
7113 /* isvoid */ 0
7116 struct iovec xcb_parts[4];
7117 xcb_input_get_device_control_cookie_t xcb_ret;
7118 xcb_input_get_device_control_request_t xcb_out;
7120 xcb_out.control_id = control_id;
7121 xcb_out.device_id = device_id;
7122 xcb_out.pad0 = 0;
7124 xcb_parts[2].iov_base = (char *) &xcb_out;
7125 xcb_parts[2].iov_len = sizeof(xcb_out);
7126 xcb_parts[3].iov_base = 0;
7127 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7129 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7130 return xcb_ret;
7134 /*****************************************************************************
7136 ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control_unchecked
7138 ** @param xcb_connection_t *c
7139 ** @param uint16_t control_id
7140 ** @param uint8_t device_id
7141 ** @returns xcb_input_get_device_control_cookie_t
7143 *****************************************************************************/
7145 xcb_input_get_device_control_cookie_t
7146 xcb_input_get_device_control_unchecked (xcb_connection_t *c /**< */,
7147 uint16_t control_id /**< */,
7148 uint8_t device_id /**< */)
7150 static const xcb_protocol_request_t xcb_req = {
7151 /* count */ 2,
7152 /* ext */ &xcb_input_id,
7153 /* opcode */ XCB_INPUT_GET_DEVICE_CONTROL,
7154 /* isvoid */ 0
7157 struct iovec xcb_parts[4];
7158 xcb_input_get_device_control_cookie_t xcb_ret;
7159 xcb_input_get_device_control_request_t xcb_out;
7161 xcb_out.control_id = control_id;
7162 xcb_out.device_id = device_id;
7163 xcb_out.pad0 = 0;
7165 xcb_parts[2].iov_base = (char *) &xcb_out;
7166 xcb_parts[2].iov_len = sizeof(xcb_out);
7167 xcb_parts[3].iov_base = 0;
7168 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7170 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7171 return xcb_ret;
7175 /*****************************************************************************
7177 ** xcb_input_device_state_t * xcb_input_get_device_control_control
7179 ** @param const xcb_input_get_device_control_reply_t *R
7180 ** @returns xcb_input_device_state_t *
7182 *****************************************************************************/
7184 xcb_input_device_state_t *
7185 xcb_input_get_device_control_control (const xcb_input_get_device_control_reply_t *R /**< */)
7187 return (xcb_input_device_state_t *) (R + 1);
7191 /*****************************************************************************
7193 ** xcb_input_get_device_control_reply_t * xcb_input_get_device_control_reply
7195 ** @param xcb_connection_t *c
7196 ** @param xcb_input_get_device_control_cookie_t cookie
7197 ** @param xcb_generic_error_t **e
7198 ** @returns xcb_input_get_device_control_reply_t *
7200 *****************************************************************************/
7202 xcb_input_get_device_control_reply_t *
7203 xcb_input_get_device_control_reply (xcb_connection_t *c /**< */,
7204 xcb_input_get_device_control_cookie_t cookie /**< */,
7205 xcb_generic_error_t **e /**< */)
7207 return (xcb_input_get_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7211 xcb_input_device_resolution_ctl_sizeof (const void *_buffer /**< */)
7213 char *xcb_tmp = (char *)_buffer;
7214 const xcb_input_device_resolution_ctl_t *_aux = (xcb_input_device_resolution_ctl_t *)_buffer;
7215 unsigned int xcb_buffer_len = 0;
7216 unsigned int xcb_block_len = 0;
7217 unsigned int xcb_pad = 0;
7218 unsigned int xcb_align_to = 0;
7221 xcb_block_len += sizeof(xcb_input_device_resolution_ctl_t);
7222 xcb_tmp += xcb_block_len;
7223 xcb_buffer_len += xcb_block_len;
7224 xcb_block_len = 0;
7225 /* resolution_values */
7226 xcb_block_len += _aux->num_valuators * sizeof(uint32_t);
7227 xcb_tmp += xcb_block_len;
7228 xcb_align_to = ALIGNOF(uint32_t);
7229 /* insert padding */
7230 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7231 xcb_buffer_len += xcb_block_len + xcb_pad;
7232 if (0 != xcb_pad) {
7233 xcb_tmp += xcb_pad;
7234 xcb_pad = 0;
7236 xcb_block_len = 0;
7238 return xcb_buffer_len;
7242 /*****************************************************************************
7244 ** uint32_t * xcb_input_device_resolution_ctl_resolution_values
7246 ** @param const xcb_input_device_resolution_ctl_t *R
7247 ** @returns uint32_t *
7249 *****************************************************************************/
7251 uint32_t *
7252 xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R /**< */)
7254 return (uint32_t *) (R + 1);
7258 /*****************************************************************************
7260 ** int xcb_input_device_resolution_ctl_resolution_values_length
7262 ** @param const xcb_input_device_resolution_ctl_t *R
7263 ** @returns int
7265 *****************************************************************************/
7268 xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R /**< */)
7270 return R->num_valuators;
7274 /*****************************************************************************
7276 ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_resolution_values_end
7278 ** @param const xcb_input_device_resolution_ctl_t *R
7279 ** @returns xcb_generic_iterator_t
7281 *****************************************************************************/
7283 xcb_generic_iterator_t
7284 xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R /**< */)
7286 xcb_generic_iterator_t i;
7287 i.data = ((uint32_t *) (R + 1)) + (R->num_valuators);
7288 i.rem = 0;
7289 i.index = (char *) i.data - (char *) R;
7290 return i;
7294 /*****************************************************************************
7296 ** void xcb_input_device_resolution_ctl_next
7298 ** @param xcb_input_device_resolution_ctl_iterator_t *i
7299 ** @returns void
7301 *****************************************************************************/
7303 void
7304 xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i /**< */)
7306 xcb_input_device_resolution_ctl_t *R = i->data;
7307 xcb_generic_iterator_t child;
7308 child.data = (xcb_input_device_resolution_ctl_t *)(((char *)R) + xcb_input_device_resolution_ctl_sizeof(R));
7309 i->index = (char *) child.data - (char *) i->data;
7310 --i->rem;
7311 i->data = (xcb_input_device_resolution_ctl_t *) child.data;
7315 /*****************************************************************************
7317 ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_end
7319 ** @param xcb_input_device_resolution_ctl_iterator_t i
7320 ** @returns xcb_generic_iterator_t
7322 *****************************************************************************/
7324 xcb_generic_iterator_t
7325 xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i /**< */)
7327 xcb_generic_iterator_t ret;
7328 while(i.rem > 0)
7329 xcb_input_device_resolution_ctl_next(&i);
7330 ret.data = i.data;
7331 ret.rem = i.rem;
7332 ret.index = i.index;
7333 return ret;
7337 /*****************************************************************************
7339 ** void xcb_input_device_abs_calib_ctl_next
7341 ** @param xcb_input_device_abs_calib_ctl_iterator_t *i
7342 ** @returns void
7344 *****************************************************************************/
7346 void
7347 xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i /**< */)
7349 --i->rem;
7350 ++i->data;
7351 i->index += sizeof(xcb_input_device_abs_calib_ctl_t);
7355 /*****************************************************************************
7357 ** xcb_generic_iterator_t xcb_input_device_abs_calib_ctl_end
7359 ** @param xcb_input_device_abs_calib_ctl_iterator_t i
7360 ** @returns xcb_generic_iterator_t
7362 *****************************************************************************/
7364 xcb_generic_iterator_t
7365 xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i /**< */)
7367 xcb_generic_iterator_t ret;
7368 ret.data = i.data + i.rem;
7369 ret.index = i.index + ((char *) ret.data - (char *) i.data);
7370 ret.rem = 0;
7371 return ret;
7375 /*****************************************************************************
7377 ** void xcb_input_device_abs_area_ctrl_next
7379 ** @param xcb_input_device_abs_area_ctrl_iterator_t *i
7380 ** @returns void
7382 *****************************************************************************/
7384 void
7385 xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i /**< */)
7387 --i->rem;
7388 ++i->data;
7389 i->index += sizeof(xcb_input_device_abs_area_ctrl_t);
7393 /*****************************************************************************
7395 ** xcb_generic_iterator_t xcb_input_device_abs_area_ctrl_end
7397 ** @param xcb_input_device_abs_area_ctrl_iterator_t i
7398 ** @returns xcb_generic_iterator_t
7400 *****************************************************************************/
7402 xcb_generic_iterator_t
7403 xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i /**< */)
7405 xcb_generic_iterator_t ret;
7406 ret.data = i.data + i.rem;
7407 ret.index = i.index + ((char *) ret.data - (char *) i.data);
7408 ret.rem = 0;
7409 return ret;
7413 /*****************************************************************************
7415 ** void xcb_input_device_core_ctrl_next
7417 ** @param xcb_input_device_core_ctrl_iterator_t *i
7418 ** @returns void
7420 *****************************************************************************/
7422 void
7423 xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i /**< */)
7425 --i->rem;
7426 ++i->data;
7427 i->index += sizeof(xcb_input_device_core_ctrl_t);
7431 /*****************************************************************************
7433 ** xcb_generic_iterator_t xcb_input_device_core_ctrl_end
7435 ** @param xcb_input_device_core_ctrl_iterator_t i
7436 ** @returns xcb_generic_iterator_t
7438 *****************************************************************************/
7440 xcb_generic_iterator_t
7441 xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i /**< */)
7443 xcb_generic_iterator_t ret;
7444 ret.data = i.data + i.rem;
7445 ret.index = i.index + ((char *) ret.data - (char *) i.data);
7446 ret.rem = 0;
7447 return ret;
7451 /*****************************************************************************
7453 ** void xcb_input_device_enable_ctrl_next
7455 ** @param xcb_input_device_enable_ctrl_iterator_t *i
7456 ** @returns void
7458 *****************************************************************************/
7460 void
7461 xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i /**< */)
7463 --i->rem;
7464 ++i->data;
7465 i->index += sizeof(xcb_input_device_enable_ctrl_t);
7469 /*****************************************************************************
7471 ** xcb_generic_iterator_t xcb_input_device_enable_ctrl_end
7473 ** @param xcb_input_device_enable_ctrl_iterator_t i
7474 ** @returns xcb_generic_iterator_t
7476 *****************************************************************************/
7478 xcb_generic_iterator_t
7479 xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i /**< */)
7481 xcb_generic_iterator_t ret;
7482 ret.data = i.data + i.rem;
7483 ret.index = i.index + ((char *) ret.data - (char *) i.data);
7484 ret.rem = 0;
7485 return ret;
7489 xcb_input_device_ctl_sizeof (const void *_buffer /**< */)
7491 char *xcb_tmp = (char *)_buffer;
7492 const xcb_input_device_ctl_t *_aux = (xcb_input_device_ctl_t *)_buffer;
7493 unsigned int xcb_buffer_len = 0;
7494 unsigned int xcb_block_len = 0;
7495 unsigned int xcb_pad = 0;
7496 unsigned int xcb_align_to = 0;
7499 xcb_block_len += sizeof(xcb_input_device_ctl_t);
7500 xcb_tmp += xcb_block_len;
7501 xcb_buffer_len += xcb_block_len;
7502 xcb_block_len = 0;
7503 /* uninterpreted_data */
7504 xcb_block_len += (_aux->len - 4) * sizeof(uint8_t);
7505 xcb_tmp += xcb_block_len;
7506 xcb_align_to = ALIGNOF(uint8_t);
7507 /* insert padding */
7508 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7509 xcb_buffer_len += xcb_block_len + xcb_pad;
7510 if (0 != xcb_pad) {
7511 xcb_tmp += xcb_pad;
7512 xcb_pad = 0;
7514 xcb_block_len = 0;
7516 return xcb_buffer_len;
7520 /*****************************************************************************
7522 ** uint8_t * xcb_input_device_ctl_uninterpreted_data
7524 ** @param const xcb_input_device_ctl_t *R
7525 ** @returns uint8_t *
7527 *****************************************************************************/
7529 uint8_t *
7530 xcb_input_device_ctl_uninterpreted_data (const xcb_input_device_ctl_t *R /**< */)
7532 return (uint8_t *) (R + 1);
7536 /*****************************************************************************
7538 ** int xcb_input_device_ctl_uninterpreted_data_length
7540 ** @param const xcb_input_device_ctl_t *R
7541 ** @returns int
7543 *****************************************************************************/
7546 xcb_input_device_ctl_uninterpreted_data_length (const xcb_input_device_ctl_t *R /**< */)
7548 return (R->len - 4);
7552 /*****************************************************************************
7554 ** xcb_generic_iterator_t xcb_input_device_ctl_uninterpreted_data_end
7556 ** @param const xcb_input_device_ctl_t *R
7557 ** @returns xcb_generic_iterator_t
7559 *****************************************************************************/
7561 xcb_generic_iterator_t
7562 xcb_input_device_ctl_uninterpreted_data_end (const xcb_input_device_ctl_t *R /**< */)
7564 xcb_generic_iterator_t i;
7565 i.data = ((uint8_t *) (R + 1)) + ((R->len - 4));
7566 i.rem = 0;
7567 i.index = (char *) i.data - (char *) R;
7568 return i;
7572 /*****************************************************************************
7574 ** void xcb_input_device_ctl_next
7576 ** @param xcb_input_device_ctl_iterator_t *i
7577 ** @returns void
7579 *****************************************************************************/
7581 void
7582 xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i /**< */)
7584 xcb_input_device_ctl_t *R = i->data;
7585 xcb_generic_iterator_t child;
7586 child.data = (xcb_input_device_ctl_t *)(((char *)R) + xcb_input_device_ctl_sizeof(R));
7587 i->index = (char *) child.data - (char *) i->data;
7588 --i->rem;
7589 i->data = (xcb_input_device_ctl_t *) child.data;
7593 /*****************************************************************************
7595 ** xcb_generic_iterator_t xcb_input_device_ctl_end
7597 ** @param xcb_input_device_ctl_iterator_t i
7598 ** @returns xcb_generic_iterator_t
7600 *****************************************************************************/
7602 xcb_generic_iterator_t
7603 xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i /**< */)
7605 xcb_generic_iterator_t ret;
7606 while(i.rem > 0)
7607 xcb_input_device_ctl_next(&i);
7608 ret.data = i.data;
7609 ret.rem = i.rem;
7610 ret.index = i.index;
7611 return ret;
7615 xcb_input_change_device_control_sizeof (const void *_buffer /**< */)
7617 char *xcb_tmp = (char *)_buffer;
7618 unsigned int xcb_buffer_len = 0;
7619 unsigned int xcb_block_len = 0;
7620 unsigned int xcb_pad = 0;
7621 unsigned int xcb_align_to = 0;
7624 xcb_block_len += sizeof(xcb_input_change_device_control_request_t);
7625 xcb_tmp += xcb_block_len;
7626 xcb_buffer_len += xcb_block_len;
7627 xcb_block_len = 0;
7628 /* control */
7629 xcb_block_len += xcb_input_device_ctl_sizeof(xcb_tmp);
7630 xcb_tmp += xcb_block_len;
7631 xcb_align_to = ALIGNOF(xcb_input_device_ctl_t);
7632 /* insert padding */
7633 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7634 xcb_buffer_len += xcb_block_len + xcb_pad;
7635 if (0 != xcb_pad) {
7636 xcb_tmp += xcb_pad;
7637 xcb_pad = 0;
7639 xcb_block_len = 0;
7641 return xcb_buffer_len;
7645 /*****************************************************************************
7647 ** xcb_input_change_device_control_cookie_t xcb_input_change_device_control
7649 ** @param xcb_connection_t *c
7650 ** @param uint16_t control_id
7651 ** @param uint8_t device_id
7652 ** @param xcb_input_device_ctl_t *control
7653 ** @returns xcb_input_change_device_control_cookie_t
7655 *****************************************************************************/
7657 xcb_input_change_device_control_cookie_t
7658 xcb_input_change_device_control (xcb_connection_t *c /**< */,
7659 uint16_t control_id /**< */,
7660 uint8_t device_id /**< */,
7661 xcb_input_device_ctl_t *control /**< */)
7663 static const xcb_protocol_request_t xcb_req = {
7664 /* count */ 4,
7665 /* ext */ &xcb_input_id,
7666 /* opcode */ XCB_INPUT_CHANGE_DEVICE_CONTROL,
7667 /* isvoid */ 0
7670 struct iovec xcb_parts[6];
7671 xcb_input_change_device_control_cookie_t xcb_ret;
7672 xcb_input_change_device_control_request_t xcb_out;
7674 xcb_out.control_id = control_id;
7675 xcb_out.device_id = device_id;
7676 xcb_out.pad0 = 0;
7678 xcb_parts[2].iov_base = (char *) &xcb_out;
7679 xcb_parts[2].iov_len = sizeof(xcb_out);
7680 xcb_parts[3].iov_base = 0;
7681 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7682 /* xcb_input_device_ctl_t control */
7683 xcb_parts[4].iov_base = (char *) control;
7684 xcb_parts[4].iov_len =
7685 xcb_input_device_ctl_sizeof (control);
7687 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7688 return xcb_ret;
7692 /*****************************************************************************
7694 ** xcb_input_change_device_control_cookie_t xcb_input_change_device_control_unchecked
7696 ** @param xcb_connection_t *c
7697 ** @param uint16_t control_id
7698 ** @param uint8_t device_id
7699 ** @param xcb_input_device_ctl_t *control
7700 ** @returns xcb_input_change_device_control_cookie_t
7702 *****************************************************************************/
7704 xcb_input_change_device_control_cookie_t
7705 xcb_input_change_device_control_unchecked (xcb_connection_t *c /**< */,
7706 uint16_t control_id /**< */,
7707 uint8_t device_id /**< */,
7708 xcb_input_device_ctl_t *control /**< */)
7710 static const xcb_protocol_request_t xcb_req = {
7711 /* count */ 4,
7712 /* ext */ &xcb_input_id,
7713 /* opcode */ XCB_INPUT_CHANGE_DEVICE_CONTROL,
7714 /* isvoid */ 0
7717 struct iovec xcb_parts[6];
7718 xcb_input_change_device_control_cookie_t xcb_ret;
7719 xcb_input_change_device_control_request_t xcb_out;
7721 xcb_out.control_id = control_id;
7722 xcb_out.device_id = device_id;
7723 xcb_out.pad0 = 0;
7725 xcb_parts[2].iov_base = (char *) &xcb_out;
7726 xcb_parts[2].iov_len = sizeof(xcb_out);
7727 xcb_parts[3].iov_base = 0;
7728 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7729 /* xcb_input_device_ctl_t control */
7730 xcb_parts[4].iov_base = (char *) control;
7731 xcb_parts[4].iov_len =
7732 xcb_input_device_ctl_sizeof (control);
7734 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7735 return xcb_ret;
7739 /*****************************************************************************
7741 ** xcb_input_change_device_control_reply_t * xcb_input_change_device_control_reply
7743 ** @param xcb_connection_t *c
7744 ** @param xcb_input_change_device_control_cookie_t cookie
7745 ** @param xcb_generic_error_t **e
7746 ** @returns xcb_input_change_device_control_reply_t *
7748 *****************************************************************************/
7750 xcb_input_change_device_control_reply_t *
7751 xcb_input_change_device_control_reply (xcb_connection_t *c /**< */,
7752 xcb_input_change_device_control_cookie_t cookie /**< */,
7753 xcb_generic_error_t **e /**< */)
7755 return (xcb_input_change_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7759 xcb_input_list_device_properties_sizeof (const void *_buffer /**< */)
7761 char *xcb_tmp = (char *)_buffer;
7762 const xcb_input_list_device_properties_reply_t *_aux = (xcb_input_list_device_properties_reply_t *)_buffer;
7763 unsigned int xcb_buffer_len = 0;
7764 unsigned int xcb_block_len = 0;
7765 unsigned int xcb_pad = 0;
7766 unsigned int xcb_align_to = 0;
7769 xcb_block_len += sizeof(xcb_input_list_device_properties_reply_t);
7770 xcb_tmp += xcb_block_len;
7771 xcb_buffer_len += xcb_block_len;
7772 xcb_block_len = 0;
7773 /* atoms */
7774 xcb_block_len += _aux->num_atoms * sizeof(xcb_atom_t);
7775 xcb_tmp += xcb_block_len;
7776 xcb_align_to = ALIGNOF(xcb_atom_t);
7777 /* insert padding */
7778 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
7779 xcb_buffer_len += xcb_block_len + xcb_pad;
7780 if (0 != xcb_pad) {
7781 xcb_tmp += xcb_pad;
7782 xcb_pad = 0;
7784 xcb_block_len = 0;
7786 return xcb_buffer_len;
7790 /*****************************************************************************
7792 ** xcb_input_list_device_properties_cookie_t xcb_input_list_device_properties
7794 ** @param xcb_connection_t *c
7795 ** @param uint8_t device_id
7796 ** @returns xcb_input_list_device_properties_cookie_t
7798 *****************************************************************************/
7800 xcb_input_list_device_properties_cookie_t
7801 xcb_input_list_device_properties (xcb_connection_t *c /**< */,
7802 uint8_t device_id /**< */)
7804 static const xcb_protocol_request_t xcb_req = {
7805 /* count */ 2,
7806 /* ext */ &xcb_input_id,
7807 /* opcode */ XCB_INPUT_LIST_DEVICE_PROPERTIES,
7808 /* isvoid */ 0
7811 struct iovec xcb_parts[4];
7812 xcb_input_list_device_properties_cookie_t xcb_ret;
7813 xcb_input_list_device_properties_request_t xcb_out;
7815 xcb_out.device_id = device_id;
7816 memset(xcb_out.pad0, 0, 3);
7818 xcb_parts[2].iov_base = (char *) &xcb_out;
7819 xcb_parts[2].iov_len = sizeof(xcb_out);
7820 xcb_parts[3].iov_base = 0;
7821 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7823 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
7824 return xcb_ret;
7828 /*****************************************************************************
7830 ** xcb_input_list_device_properties_cookie_t xcb_input_list_device_properties_unchecked
7832 ** @param xcb_connection_t *c
7833 ** @param uint8_t device_id
7834 ** @returns xcb_input_list_device_properties_cookie_t
7836 *****************************************************************************/
7838 xcb_input_list_device_properties_cookie_t
7839 xcb_input_list_device_properties_unchecked (xcb_connection_t *c /**< */,
7840 uint8_t device_id /**< */)
7842 static const xcb_protocol_request_t xcb_req = {
7843 /* count */ 2,
7844 /* ext */ &xcb_input_id,
7845 /* opcode */ XCB_INPUT_LIST_DEVICE_PROPERTIES,
7846 /* isvoid */ 0
7849 struct iovec xcb_parts[4];
7850 xcb_input_list_device_properties_cookie_t xcb_ret;
7851 xcb_input_list_device_properties_request_t xcb_out;
7853 xcb_out.device_id = device_id;
7854 memset(xcb_out.pad0, 0, 3);
7856 xcb_parts[2].iov_base = (char *) &xcb_out;
7857 xcb_parts[2].iov_len = sizeof(xcb_out);
7858 xcb_parts[3].iov_base = 0;
7859 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
7861 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
7862 return xcb_ret;
7866 /*****************************************************************************
7868 ** xcb_atom_t * xcb_input_list_device_properties_atoms
7870 ** @param const xcb_input_list_device_properties_reply_t *R
7871 ** @returns xcb_atom_t *
7873 *****************************************************************************/
7875 xcb_atom_t *
7876 xcb_input_list_device_properties_atoms (const xcb_input_list_device_properties_reply_t *R /**< */)
7878 return (xcb_atom_t *) (R + 1);
7882 /*****************************************************************************
7884 ** int xcb_input_list_device_properties_atoms_length
7886 ** @param const xcb_input_list_device_properties_reply_t *R
7887 ** @returns int
7889 *****************************************************************************/
7892 xcb_input_list_device_properties_atoms_length (const xcb_input_list_device_properties_reply_t *R /**< */)
7894 return R->num_atoms;
7898 /*****************************************************************************
7900 ** xcb_generic_iterator_t xcb_input_list_device_properties_atoms_end
7902 ** @param const xcb_input_list_device_properties_reply_t *R
7903 ** @returns xcb_generic_iterator_t
7905 *****************************************************************************/
7907 xcb_generic_iterator_t
7908 xcb_input_list_device_properties_atoms_end (const xcb_input_list_device_properties_reply_t *R /**< */)
7910 xcb_generic_iterator_t i;
7911 i.data = ((xcb_atom_t *) (R + 1)) + (R->num_atoms);
7912 i.rem = 0;
7913 i.index = (char *) i.data - (char *) R;
7914 return i;
7918 /*****************************************************************************
7920 ** xcb_input_list_device_properties_reply_t * xcb_input_list_device_properties_reply
7922 ** @param xcb_connection_t *c
7923 ** @param xcb_input_list_device_properties_cookie_t cookie
7924 ** @param xcb_generic_error_t **e
7925 ** @returns xcb_input_list_device_properties_reply_t *
7927 *****************************************************************************/
7929 xcb_input_list_device_properties_reply_t *
7930 xcb_input_list_device_properties_reply (xcb_connection_t *c /**< */,
7931 xcb_input_list_device_properties_cookie_t cookie /**< */,
7932 xcb_generic_error_t **e /**< */)
7934 return (xcb_input_list_device_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
7938 /*****************************************************************************
7940 ** uint8_t * xcb_input_change_device_property_items_data_8
7942 ** @param const xcb_input_change_device_property_items_t *S
7943 ** @returns uint8_t *
7945 *****************************************************************************/
7947 uint8_t *
7948 xcb_input_change_device_property_items_data_8 (const xcb_input_change_device_property_items_t *S /**< */)
7950 return /* items */ S->data8;
7954 /*****************************************************************************
7956 ** int xcb_input_change_device_property_items_data_8_length
7958 ** @param const xcb_input_change_device_property_items_t *R
7959 ** @returns int
7961 *****************************************************************************/
7964 xcb_input_change_device_property_items_data_8_length (const xcb_input_change_device_property_request_t *R /**< */,
7965 const xcb_input_change_device_property_items_t *S /**< */)
7967 return R->num_items;
7971 /*****************************************************************************
7973 ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_8_end
7975 ** @param const xcb_input_change_device_property_items_t *R
7976 ** @returns xcb_generic_iterator_t
7978 *****************************************************************************/
7980 xcb_generic_iterator_t
7981 xcb_input_change_device_property_items_data_8_end (const xcb_input_change_device_property_request_t *R /**< */,
7982 const xcb_input_change_device_property_items_t *S /**< */)
7984 xcb_generic_iterator_t i;
7985 i.data = /* items */ S->data8 + R->num_items;
7986 i.rem = 0;
7987 i.index = (char *) i.data - (char *) S;
7988 return i;
7992 /*****************************************************************************
7994 ** uint16_t * xcb_input_change_device_property_items_data_16
7996 ** @param const xcb_input_change_device_property_items_t *S
7997 ** @returns uint16_t *
7999 *****************************************************************************/
8001 uint16_t *
8002 xcb_input_change_device_property_items_data_16 (const xcb_input_change_device_property_items_t *S /**< */)
8004 return /* items */ S->data16;
8008 /*****************************************************************************
8010 ** int xcb_input_change_device_property_items_data_16_length
8012 ** @param const xcb_input_change_device_property_items_t *R
8013 ** @returns int
8015 *****************************************************************************/
8018 xcb_input_change_device_property_items_data_16_length (const xcb_input_change_device_property_request_t *R /**< */,
8019 const xcb_input_change_device_property_items_t *S /**< */)
8021 return R->num_items;
8025 /*****************************************************************************
8027 ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_16_end
8029 ** @param const xcb_input_change_device_property_items_t *R
8030 ** @returns xcb_generic_iterator_t
8032 *****************************************************************************/
8034 xcb_generic_iterator_t
8035 xcb_input_change_device_property_items_data_16_end (const xcb_input_change_device_property_request_t *R /**< */,
8036 const xcb_input_change_device_property_items_t *S /**< */)
8038 xcb_generic_iterator_t i;
8039 i.data = /* items */ S->data16 + R->num_items;
8040 i.rem = 0;
8041 i.index = (char *) i.data - (char *) S;
8042 return i;
8046 /*****************************************************************************
8048 ** uint32_t * xcb_input_change_device_property_items_data_32
8050 ** @param const xcb_input_change_device_property_items_t *S
8051 ** @returns uint32_t *
8053 *****************************************************************************/
8055 uint32_t *
8056 xcb_input_change_device_property_items_data_32 (const xcb_input_change_device_property_items_t *S /**< */)
8058 return /* items */ S->data32;
8062 /*****************************************************************************
8064 ** int xcb_input_change_device_property_items_data_32_length
8066 ** @param const xcb_input_change_device_property_items_t *R
8067 ** @returns int
8069 *****************************************************************************/
8072 xcb_input_change_device_property_items_data_32_length (const xcb_input_change_device_property_request_t *R /**< */,
8073 const xcb_input_change_device_property_items_t *S /**< */)
8075 return R->num_items;
8079 /*****************************************************************************
8081 ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_32_end
8083 ** @param const xcb_input_change_device_property_items_t *R
8084 ** @returns xcb_generic_iterator_t
8086 *****************************************************************************/
8088 xcb_generic_iterator_t
8089 xcb_input_change_device_property_items_data_32_end (const xcb_input_change_device_property_request_t *R /**< */,
8090 const xcb_input_change_device_property_items_t *S /**< */)
8092 xcb_generic_iterator_t i;
8093 i.data = /* items */ S->data32 + R->num_items;
8094 i.rem = 0;
8095 i.index = (char *) i.data - (char *) S;
8096 return i;
8100 xcb_input_change_device_property_items_serialize (void **_buffer /**< */,
8101 uint32_t num_items /**< */,
8102 uint8_t format /**< */,
8103 const xcb_input_change_device_property_items_t *_aux /**< */)
8105 char *xcb_out = *_buffer;
8106 unsigned int xcb_buffer_len = 0;
8107 unsigned int xcb_align_to = 0;
8109 unsigned int xcb_pad = 0;
8110 char xcb_pad0[3] = {0, 0, 0};
8111 struct iovec xcb_parts[7];
8112 unsigned int xcb_parts_idx = 0;
8113 unsigned int xcb_block_len = 0;
8114 unsigned int i;
8115 char *xcb_tmp;
8117 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8118 /* insert padding */
8119 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8120 xcb_buffer_len += xcb_block_len + xcb_pad;
8121 if (0 != xcb_pad) {
8122 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8123 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8124 xcb_parts_idx++;
8125 xcb_pad = 0;
8127 xcb_block_len = 0;
8128 /* data8 */
8129 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
8130 xcb_block_len += num_items * sizeof(uint8_t);
8131 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
8132 xcb_parts_idx++;
8133 xcb_align_to = ALIGNOF(uint8_t);
8135 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8136 /* insert padding */
8137 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8138 xcb_buffer_len += xcb_block_len + xcb_pad;
8139 if (0 != xcb_pad) {
8140 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8141 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8142 xcb_parts_idx++;
8143 xcb_pad = 0;
8145 xcb_block_len = 0;
8146 /* data16 */
8147 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
8148 xcb_block_len += num_items * sizeof(uint16_t);
8149 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
8150 xcb_parts_idx++;
8151 xcb_align_to = ALIGNOF(uint16_t);
8153 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8154 /* insert padding */
8155 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8156 xcb_buffer_len += xcb_block_len + xcb_pad;
8157 if (0 != xcb_pad) {
8158 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8159 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8160 xcb_parts_idx++;
8161 xcb_pad = 0;
8163 xcb_block_len = 0;
8164 /* data32 */
8165 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
8166 xcb_block_len += num_items * sizeof(uint32_t);
8167 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
8168 xcb_parts_idx++;
8169 xcb_align_to = ALIGNOF(uint32_t);
8171 /* insert padding */
8172 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8173 xcb_buffer_len += xcb_block_len + xcb_pad;
8174 if (0 != xcb_pad) {
8175 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8176 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8177 xcb_parts_idx++;
8178 xcb_pad = 0;
8180 xcb_block_len = 0;
8182 if (NULL == xcb_out) {
8183 /* allocate memory */
8184 xcb_out = malloc(xcb_buffer_len);
8185 *_buffer = xcb_out;
8188 xcb_tmp = xcb_out;
8189 for(i=0; i<xcb_parts_idx; i++) {
8190 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
8191 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
8192 if (0 != xcb_parts[i].iov_len)
8193 xcb_tmp += xcb_parts[i].iov_len;
8196 return xcb_buffer_len;
8200 xcb_input_change_device_property_items_unpack (const void *_buffer /**< */,
8201 uint32_t num_items /**< */,
8202 uint8_t format /**< */,
8203 xcb_input_change_device_property_items_t *_aux /**< */)
8205 char *xcb_tmp = (char *)_buffer;
8206 unsigned int xcb_buffer_len = 0;
8207 unsigned int xcb_block_len = 0;
8208 unsigned int xcb_pad = 0;
8209 unsigned int xcb_align_to = 0;
8212 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8213 /* insert padding */
8214 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8215 xcb_buffer_len += xcb_block_len + xcb_pad;
8216 if (0 != xcb_pad) {
8217 xcb_tmp += xcb_pad;
8218 xcb_pad = 0;
8220 xcb_block_len = 0;
8221 /* data8 */
8222 _aux->data8 = (uint8_t *)xcb_tmp;
8223 xcb_block_len += num_items * sizeof(uint8_t);
8224 xcb_tmp += xcb_block_len;
8225 xcb_align_to = ALIGNOF(uint8_t);
8227 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8228 /* insert padding */
8229 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8230 xcb_buffer_len += xcb_block_len + xcb_pad;
8231 if (0 != xcb_pad) {
8232 xcb_tmp += xcb_pad;
8233 xcb_pad = 0;
8235 xcb_block_len = 0;
8236 /* data16 */
8237 _aux->data16 = (uint16_t *)xcb_tmp;
8238 xcb_block_len += num_items * sizeof(uint16_t);
8239 xcb_tmp += xcb_block_len;
8240 xcb_align_to = ALIGNOF(uint16_t);
8242 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8243 /* insert padding */
8244 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8245 xcb_buffer_len += xcb_block_len + xcb_pad;
8246 if (0 != xcb_pad) {
8247 xcb_tmp += xcb_pad;
8248 xcb_pad = 0;
8250 xcb_block_len = 0;
8251 /* data32 */
8252 _aux->data32 = (uint32_t *)xcb_tmp;
8253 xcb_block_len += num_items * sizeof(uint32_t);
8254 xcb_tmp += xcb_block_len;
8255 xcb_align_to = ALIGNOF(uint32_t);
8257 /* insert padding */
8258 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8259 xcb_buffer_len += xcb_block_len + xcb_pad;
8260 if (0 != xcb_pad) {
8261 xcb_tmp += xcb_pad;
8262 xcb_pad = 0;
8264 xcb_block_len = 0;
8266 return xcb_buffer_len;
8270 xcb_input_change_device_property_items_sizeof (const void *_buffer /**< */,
8271 uint32_t num_items /**< */,
8272 uint8_t format /**< */)
8274 xcb_input_change_device_property_items_t _aux;
8275 return xcb_input_change_device_property_items_unpack(_buffer, num_items, format, &_aux);
8279 /*****************************************************************************
8281 ** xcb_void_cookie_t xcb_input_change_device_property_checked
8283 ** @param xcb_connection_t *c
8284 ** @param xcb_atom_t property
8285 ** @param xcb_atom_t type
8286 ** @param uint8_t device_id
8287 ** @param uint8_t format
8288 ** @param uint8_t mode
8289 ** @param uint32_t num_items
8290 ** @param const void *items
8291 ** @returns xcb_void_cookie_t
8293 *****************************************************************************/
8295 xcb_void_cookie_t
8296 xcb_input_change_device_property_checked (xcb_connection_t *c /**< */,
8297 xcb_atom_t property /**< */,
8298 xcb_atom_t type /**< */,
8299 uint8_t device_id /**< */,
8300 uint8_t format /**< */,
8301 uint8_t mode /**< */,
8302 uint32_t num_items /**< */,
8303 const void *items /**< */)
8305 static const xcb_protocol_request_t xcb_req = {
8306 /* count */ 3,
8307 /* ext */ &xcb_input_id,
8308 /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8309 /* isvoid */ 1
8312 struct iovec xcb_parts[5];
8313 xcb_void_cookie_t xcb_ret;
8314 xcb_input_change_device_property_request_t xcb_out;
8316 xcb_out.property = property;
8317 xcb_out.type = type;
8318 xcb_out.device_id = device_id;
8319 xcb_out.format = format;
8320 xcb_out.mode = mode;
8321 xcb_out.pad0 = 0;
8322 xcb_out.num_items = num_items;
8324 xcb_parts[2].iov_base = (char *) &xcb_out;
8325 xcb_parts[2].iov_len = sizeof(xcb_out);
8326 xcb_parts[3].iov_base = 0;
8327 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8328 /* xcb_input_change_device_property_items_t items */
8329 xcb_parts[4].iov_base = (char *) items;
8330 xcb_parts[4].iov_len =
8331 xcb_input_change_device_property_items_sizeof (items, num_items, format);
8333 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8334 return xcb_ret;
8338 /*****************************************************************************
8340 ** xcb_void_cookie_t xcb_input_change_device_property
8342 ** @param xcb_connection_t *c
8343 ** @param xcb_atom_t property
8344 ** @param xcb_atom_t type
8345 ** @param uint8_t device_id
8346 ** @param uint8_t format
8347 ** @param uint8_t mode
8348 ** @param uint32_t num_items
8349 ** @param const void *items
8350 ** @returns xcb_void_cookie_t
8352 *****************************************************************************/
8354 xcb_void_cookie_t
8355 xcb_input_change_device_property (xcb_connection_t *c /**< */,
8356 xcb_atom_t property /**< */,
8357 xcb_atom_t type /**< */,
8358 uint8_t device_id /**< */,
8359 uint8_t format /**< */,
8360 uint8_t mode /**< */,
8361 uint32_t num_items /**< */,
8362 const void *items /**< */)
8364 static const xcb_protocol_request_t xcb_req = {
8365 /* count */ 3,
8366 /* ext */ &xcb_input_id,
8367 /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8368 /* isvoid */ 1
8371 struct iovec xcb_parts[5];
8372 xcb_void_cookie_t xcb_ret;
8373 xcb_input_change_device_property_request_t xcb_out;
8375 xcb_out.property = property;
8376 xcb_out.type = type;
8377 xcb_out.device_id = device_id;
8378 xcb_out.format = format;
8379 xcb_out.mode = mode;
8380 xcb_out.pad0 = 0;
8381 xcb_out.num_items = num_items;
8383 xcb_parts[2].iov_base = (char *) &xcb_out;
8384 xcb_parts[2].iov_len = sizeof(xcb_out);
8385 xcb_parts[3].iov_base = 0;
8386 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8387 /* xcb_input_change_device_property_items_t items */
8388 xcb_parts[4].iov_base = (char *) items;
8389 xcb_parts[4].iov_len =
8390 xcb_input_change_device_property_items_sizeof (items, num_items, format);
8392 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8393 return xcb_ret;
8397 /*****************************************************************************
8399 ** xcb_void_cookie_t xcb_input_change_device_property_aux_checked
8401 ** @param xcb_connection_t *c
8402 ** @param xcb_atom_t property
8403 ** @param xcb_atom_t type
8404 ** @param uint8_t device_id
8405 ** @param uint8_t format
8406 ** @param uint8_t mode
8407 ** @param uint32_t num_items
8408 ** @param const xcb_input_change_device_property_items_t *items
8409 ** @returns xcb_void_cookie_t
8411 *****************************************************************************/
8413 xcb_void_cookie_t
8414 xcb_input_change_device_property_aux_checked (xcb_connection_t *c /**< */,
8415 xcb_atom_t property /**< */,
8416 xcb_atom_t type /**< */,
8417 uint8_t device_id /**< */,
8418 uint8_t format /**< */,
8419 uint8_t mode /**< */,
8420 uint32_t num_items /**< */,
8421 const xcb_input_change_device_property_items_t *items /**< */)
8423 static const xcb_protocol_request_t xcb_req = {
8424 /* count */ 3,
8425 /* ext */ &xcb_input_id,
8426 /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8427 /* isvoid */ 1
8430 struct iovec xcb_parts[5];
8431 xcb_void_cookie_t xcb_ret;
8432 xcb_input_change_device_property_request_t xcb_out;
8433 void *xcb_aux0 = 0;
8435 xcb_out.property = property;
8436 xcb_out.type = type;
8437 xcb_out.device_id = device_id;
8438 xcb_out.format = format;
8439 xcb_out.mode = mode;
8440 xcb_out.pad0 = 0;
8441 xcb_out.num_items = num_items;
8443 xcb_parts[2].iov_base = (char *) &xcb_out;
8444 xcb_parts[2].iov_len = sizeof(xcb_out);
8445 xcb_parts[3].iov_base = 0;
8446 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8447 /* xcb_input_change_device_property_items_t items */
8448 xcb_parts[4].iov_len =
8449 xcb_input_change_device_property_items_serialize (&xcb_aux0, num_items, format, items);
8450 xcb_parts[4].iov_base = xcb_aux0;
8452 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8453 free(xcb_aux0);
8454 return xcb_ret;
8458 /*****************************************************************************
8460 ** xcb_void_cookie_t xcb_input_change_device_property_aux
8462 ** @param xcb_connection_t *c
8463 ** @param xcb_atom_t property
8464 ** @param xcb_atom_t type
8465 ** @param uint8_t device_id
8466 ** @param uint8_t format
8467 ** @param uint8_t mode
8468 ** @param uint32_t num_items
8469 ** @param const xcb_input_change_device_property_items_t *items
8470 ** @returns xcb_void_cookie_t
8472 *****************************************************************************/
8474 xcb_void_cookie_t
8475 xcb_input_change_device_property_aux (xcb_connection_t *c /**< */,
8476 xcb_atom_t property /**< */,
8477 xcb_atom_t type /**< */,
8478 uint8_t device_id /**< */,
8479 uint8_t format /**< */,
8480 uint8_t mode /**< */,
8481 uint32_t num_items /**< */,
8482 const xcb_input_change_device_property_items_t *items /**< */)
8484 static const xcb_protocol_request_t xcb_req = {
8485 /* count */ 3,
8486 /* ext */ &xcb_input_id,
8487 /* opcode */ XCB_INPUT_CHANGE_DEVICE_PROPERTY,
8488 /* isvoid */ 1
8491 struct iovec xcb_parts[5];
8492 xcb_void_cookie_t xcb_ret;
8493 xcb_input_change_device_property_request_t xcb_out;
8494 void *xcb_aux0 = 0;
8496 xcb_out.property = property;
8497 xcb_out.type = type;
8498 xcb_out.device_id = device_id;
8499 xcb_out.format = format;
8500 xcb_out.mode = mode;
8501 xcb_out.pad0 = 0;
8502 xcb_out.num_items = num_items;
8504 xcb_parts[2].iov_base = (char *) &xcb_out;
8505 xcb_parts[2].iov_len = sizeof(xcb_out);
8506 xcb_parts[3].iov_base = 0;
8507 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8508 /* xcb_input_change_device_property_items_t items */
8509 xcb_parts[4].iov_len =
8510 xcb_input_change_device_property_items_serialize (&xcb_aux0, num_items, format, items);
8511 xcb_parts[4].iov_base = xcb_aux0;
8513 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8514 free(xcb_aux0);
8515 return xcb_ret;
8519 /*****************************************************************************
8521 ** xcb_void_cookie_t xcb_input_delete_device_property_checked
8523 ** @param xcb_connection_t *c
8524 ** @param xcb_atom_t property
8525 ** @param uint8_t device_id
8526 ** @returns xcb_void_cookie_t
8528 *****************************************************************************/
8530 xcb_void_cookie_t
8531 xcb_input_delete_device_property_checked (xcb_connection_t *c /**< */,
8532 xcb_atom_t property /**< */,
8533 uint8_t device_id /**< */)
8535 static const xcb_protocol_request_t xcb_req = {
8536 /* count */ 2,
8537 /* ext */ &xcb_input_id,
8538 /* opcode */ XCB_INPUT_DELETE_DEVICE_PROPERTY,
8539 /* isvoid */ 1
8542 struct iovec xcb_parts[4];
8543 xcb_void_cookie_t xcb_ret;
8544 xcb_input_delete_device_property_request_t xcb_out;
8546 xcb_out.property = property;
8547 xcb_out.device_id = device_id;
8548 memset(xcb_out.pad0, 0, 3);
8550 xcb_parts[2].iov_base = (char *) &xcb_out;
8551 xcb_parts[2].iov_len = sizeof(xcb_out);
8552 xcb_parts[3].iov_base = 0;
8553 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8555 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8556 return xcb_ret;
8560 /*****************************************************************************
8562 ** xcb_void_cookie_t xcb_input_delete_device_property
8564 ** @param xcb_connection_t *c
8565 ** @param xcb_atom_t property
8566 ** @param uint8_t device_id
8567 ** @returns xcb_void_cookie_t
8569 *****************************************************************************/
8571 xcb_void_cookie_t
8572 xcb_input_delete_device_property (xcb_connection_t *c /**< */,
8573 xcb_atom_t property /**< */,
8574 uint8_t device_id /**< */)
8576 static const xcb_protocol_request_t xcb_req = {
8577 /* count */ 2,
8578 /* ext */ &xcb_input_id,
8579 /* opcode */ XCB_INPUT_DELETE_DEVICE_PROPERTY,
8580 /* isvoid */ 1
8583 struct iovec xcb_parts[4];
8584 xcb_void_cookie_t xcb_ret;
8585 xcb_input_delete_device_property_request_t xcb_out;
8587 xcb_out.property = property;
8588 xcb_out.device_id = device_id;
8589 memset(xcb_out.pad0, 0, 3);
8591 xcb_parts[2].iov_base = (char *) &xcb_out;
8592 xcb_parts[2].iov_len = sizeof(xcb_out);
8593 xcb_parts[3].iov_base = 0;
8594 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8596 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
8597 return xcb_ret;
8601 /*****************************************************************************
8603 ** uint8_t * xcb_input_get_device_property_items_data_8
8605 ** @param const xcb_input_get_device_property_items_t *S
8606 ** @returns uint8_t *
8608 *****************************************************************************/
8610 uint8_t *
8611 xcb_input_get_device_property_items_data_8 (const xcb_input_get_device_property_items_t *S /**< */)
8613 return /* items */ S->data8;
8617 /*****************************************************************************
8619 ** int xcb_input_get_device_property_items_data_8_length
8621 ** @param const xcb_input_get_device_property_items_t *R
8622 ** @returns int
8624 *****************************************************************************/
8627 xcb_input_get_device_property_items_data_8_length (const xcb_input_get_device_property_reply_t *R /**< */,
8628 const xcb_input_get_device_property_items_t *S /**< */)
8630 return R->num_items;
8634 /*****************************************************************************
8636 ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_8_end
8638 ** @param const xcb_input_get_device_property_items_t *R
8639 ** @returns xcb_generic_iterator_t
8641 *****************************************************************************/
8643 xcb_generic_iterator_t
8644 xcb_input_get_device_property_items_data_8_end (const xcb_input_get_device_property_reply_t *R /**< */,
8645 const xcb_input_get_device_property_items_t *S /**< */)
8647 xcb_generic_iterator_t i;
8648 i.data = /* items */ S->data8 + R->num_items;
8649 i.rem = 0;
8650 i.index = (char *) i.data - (char *) S;
8651 return i;
8655 /*****************************************************************************
8657 ** uint16_t * xcb_input_get_device_property_items_data_16
8659 ** @param const xcb_input_get_device_property_items_t *S
8660 ** @returns uint16_t *
8662 *****************************************************************************/
8664 uint16_t *
8665 xcb_input_get_device_property_items_data_16 (const xcb_input_get_device_property_items_t *S /**< */)
8667 return /* items */ S->data16;
8671 /*****************************************************************************
8673 ** int xcb_input_get_device_property_items_data_16_length
8675 ** @param const xcb_input_get_device_property_items_t *R
8676 ** @returns int
8678 *****************************************************************************/
8681 xcb_input_get_device_property_items_data_16_length (const xcb_input_get_device_property_reply_t *R /**< */,
8682 const xcb_input_get_device_property_items_t *S /**< */)
8684 return R->num_items;
8688 /*****************************************************************************
8690 ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_16_end
8692 ** @param const xcb_input_get_device_property_items_t *R
8693 ** @returns xcb_generic_iterator_t
8695 *****************************************************************************/
8697 xcb_generic_iterator_t
8698 xcb_input_get_device_property_items_data_16_end (const xcb_input_get_device_property_reply_t *R /**< */,
8699 const xcb_input_get_device_property_items_t *S /**< */)
8701 xcb_generic_iterator_t i;
8702 i.data = /* items */ S->data16 + R->num_items;
8703 i.rem = 0;
8704 i.index = (char *) i.data - (char *) S;
8705 return i;
8709 /*****************************************************************************
8711 ** uint32_t * xcb_input_get_device_property_items_data_32
8713 ** @param const xcb_input_get_device_property_items_t *S
8714 ** @returns uint32_t *
8716 *****************************************************************************/
8718 uint32_t *
8719 xcb_input_get_device_property_items_data_32 (const xcb_input_get_device_property_items_t *S /**< */)
8721 return /* items */ S->data32;
8725 /*****************************************************************************
8727 ** int xcb_input_get_device_property_items_data_32_length
8729 ** @param const xcb_input_get_device_property_items_t *R
8730 ** @returns int
8732 *****************************************************************************/
8735 xcb_input_get_device_property_items_data_32_length (const xcb_input_get_device_property_reply_t *R /**< */,
8736 const xcb_input_get_device_property_items_t *S /**< */)
8738 return R->num_items;
8742 /*****************************************************************************
8744 ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_32_end
8746 ** @param const xcb_input_get_device_property_items_t *R
8747 ** @returns xcb_generic_iterator_t
8749 *****************************************************************************/
8751 xcb_generic_iterator_t
8752 xcb_input_get_device_property_items_data_32_end (const xcb_input_get_device_property_reply_t *R /**< */,
8753 const xcb_input_get_device_property_items_t *S /**< */)
8755 xcb_generic_iterator_t i;
8756 i.data = /* items */ S->data32 + R->num_items;
8757 i.rem = 0;
8758 i.index = (char *) i.data - (char *) S;
8759 return i;
8763 xcb_input_get_device_property_items_serialize (void **_buffer /**< */,
8764 uint32_t num_items /**< */,
8765 uint8_t format /**< */,
8766 const xcb_input_get_device_property_items_t *_aux /**< */)
8768 char *xcb_out = *_buffer;
8769 unsigned int xcb_buffer_len = 0;
8770 unsigned int xcb_align_to = 0;
8772 unsigned int xcb_pad = 0;
8773 char xcb_pad0[3] = {0, 0, 0};
8774 struct iovec xcb_parts[7];
8775 unsigned int xcb_parts_idx = 0;
8776 unsigned int xcb_block_len = 0;
8777 unsigned int i;
8778 char *xcb_tmp;
8780 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8781 /* insert padding */
8782 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8783 xcb_buffer_len += xcb_block_len + xcb_pad;
8784 if (0 != xcb_pad) {
8785 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8786 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8787 xcb_parts_idx++;
8788 xcb_pad = 0;
8790 xcb_block_len = 0;
8791 /* data8 */
8792 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
8793 xcb_block_len += num_items * sizeof(uint8_t);
8794 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
8795 xcb_parts_idx++;
8796 xcb_align_to = ALIGNOF(uint8_t);
8798 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8799 /* insert padding */
8800 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8801 xcb_buffer_len += xcb_block_len + xcb_pad;
8802 if (0 != xcb_pad) {
8803 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8804 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8805 xcb_parts_idx++;
8806 xcb_pad = 0;
8808 xcb_block_len = 0;
8809 /* data16 */
8810 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
8811 xcb_block_len += num_items * sizeof(uint16_t);
8812 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
8813 xcb_parts_idx++;
8814 xcb_align_to = ALIGNOF(uint16_t);
8816 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8817 /* insert padding */
8818 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8819 xcb_buffer_len += xcb_block_len + xcb_pad;
8820 if (0 != xcb_pad) {
8821 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8822 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8823 xcb_parts_idx++;
8824 xcb_pad = 0;
8826 xcb_block_len = 0;
8827 /* data32 */
8828 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
8829 xcb_block_len += num_items * sizeof(uint32_t);
8830 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
8831 xcb_parts_idx++;
8832 xcb_align_to = ALIGNOF(uint32_t);
8834 /* insert padding */
8835 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8836 xcb_buffer_len += xcb_block_len + xcb_pad;
8837 if (0 != xcb_pad) {
8838 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
8839 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
8840 xcb_parts_idx++;
8841 xcb_pad = 0;
8843 xcb_block_len = 0;
8845 if (NULL == xcb_out) {
8846 /* allocate memory */
8847 xcb_out = malloc(xcb_buffer_len);
8848 *_buffer = xcb_out;
8851 xcb_tmp = xcb_out;
8852 for(i=0; i<xcb_parts_idx; i++) {
8853 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
8854 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
8855 if (0 != xcb_parts[i].iov_len)
8856 xcb_tmp += xcb_parts[i].iov_len;
8859 return xcb_buffer_len;
8863 xcb_input_get_device_property_items_unpack (const void *_buffer /**< */,
8864 uint32_t num_items /**< */,
8865 uint8_t format /**< */,
8866 xcb_input_get_device_property_items_t *_aux /**< */)
8868 char *xcb_tmp = (char *)_buffer;
8869 unsigned int xcb_buffer_len = 0;
8870 unsigned int xcb_block_len = 0;
8871 unsigned int xcb_pad = 0;
8872 unsigned int xcb_align_to = 0;
8875 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
8876 /* insert padding */
8877 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8878 xcb_buffer_len += xcb_block_len + xcb_pad;
8879 if (0 != xcb_pad) {
8880 xcb_tmp += xcb_pad;
8881 xcb_pad = 0;
8883 xcb_block_len = 0;
8884 /* data8 */
8885 _aux->data8 = (uint8_t *)xcb_tmp;
8886 xcb_block_len += num_items * sizeof(uint8_t);
8887 xcb_tmp += xcb_block_len;
8888 xcb_align_to = ALIGNOF(uint8_t);
8890 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
8891 /* insert padding */
8892 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8893 xcb_buffer_len += xcb_block_len + xcb_pad;
8894 if (0 != xcb_pad) {
8895 xcb_tmp += xcb_pad;
8896 xcb_pad = 0;
8898 xcb_block_len = 0;
8899 /* data16 */
8900 _aux->data16 = (uint16_t *)xcb_tmp;
8901 xcb_block_len += num_items * sizeof(uint16_t);
8902 xcb_tmp += xcb_block_len;
8903 xcb_align_to = ALIGNOF(uint16_t);
8905 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
8906 /* insert padding */
8907 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8908 xcb_buffer_len += xcb_block_len + xcb_pad;
8909 if (0 != xcb_pad) {
8910 xcb_tmp += xcb_pad;
8911 xcb_pad = 0;
8913 xcb_block_len = 0;
8914 /* data32 */
8915 _aux->data32 = (uint32_t *)xcb_tmp;
8916 xcb_block_len += num_items * sizeof(uint32_t);
8917 xcb_tmp += xcb_block_len;
8918 xcb_align_to = ALIGNOF(uint32_t);
8920 /* insert padding */
8921 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
8922 xcb_buffer_len += xcb_block_len + xcb_pad;
8923 if (0 != xcb_pad) {
8924 xcb_tmp += xcb_pad;
8925 xcb_pad = 0;
8927 xcb_block_len = 0;
8929 return xcb_buffer_len;
8933 xcb_input_get_device_property_items_sizeof (const void *_buffer /**< */,
8934 uint32_t num_items /**< */,
8935 uint8_t format /**< */)
8937 xcb_input_get_device_property_items_t _aux;
8938 return xcb_input_get_device_property_items_unpack(_buffer, num_items, format, &_aux);
8942 /*****************************************************************************
8944 ** xcb_input_get_device_property_cookie_t xcb_input_get_device_property
8946 ** @param xcb_connection_t *c
8947 ** @param xcb_atom_t property
8948 ** @param xcb_atom_t type
8949 ** @param uint32_t offset
8950 ** @param uint32_t len
8951 ** @param uint8_t device_id
8952 ** @param uint8_t _delete
8953 ** @returns xcb_input_get_device_property_cookie_t
8955 *****************************************************************************/
8957 xcb_input_get_device_property_cookie_t
8958 xcb_input_get_device_property (xcb_connection_t *c /**< */,
8959 xcb_atom_t property /**< */,
8960 xcb_atom_t type /**< */,
8961 uint32_t offset /**< */,
8962 uint32_t len /**< */,
8963 uint8_t device_id /**< */,
8964 uint8_t _delete /**< */)
8966 static const xcb_protocol_request_t xcb_req = {
8967 /* count */ 2,
8968 /* ext */ &xcb_input_id,
8969 /* opcode */ XCB_INPUT_GET_DEVICE_PROPERTY,
8970 /* isvoid */ 0
8973 struct iovec xcb_parts[4];
8974 xcb_input_get_device_property_cookie_t xcb_ret;
8975 xcb_input_get_device_property_request_t xcb_out;
8977 xcb_out.property = property;
8978 xcb_out.type = type;
8979 xcb_out.offset = offset;
8980 xcb_out.len = len;
8981 xcb_out.device_id = device_id;
8982 xcb_out._delete = _delete;
8983 memset(xcb_out.pad0, 0, 2);
8985 xcb_parts[2].iov_base = (char *) &xcb_out;
8986 xcb_parts[2].iov_len = sizeof(xcb_out);
8987 xcb_parts[3].iov_base = 0;
8988 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
8990 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
8991 return xcb_ret;
8995 /*****************************************************************************
8997 ** xcb_input_get_device_property_cookie_t xcb_input_get_device_property_unchecked
8999 ** @param xcb_connection_t *c
9000 ** @param xcb_atom_t property
9001 ** @param xcb_atom_t type
9002 ** @param uint32_t offset
9003 ** @param uint32_t len
9004 ** @param uint8_t device_id
9005 ** @param uint8_t _delete
9006 ** @returns xcb_input_get_device_property_cookie_t
9008 *****************************************************************************/
9010 xcb_input_get_device_property_cookie_t
9011 xcb_input_get_device_property_unchecked (xcb_connection_t *c /**< */,
9012 xcb_atom_t property /**< */,
9013 xcb_atom_t type /**< */,
9014 uint32_t offset /**< */,
9015 uint32_t len /**< */,
9016 uint8_t device_id /**< */,
9017 uint8_t _delete /**< */)
9019 static const xcb_protocol_request_t xcb_req = {
9020 /* count */ 2,
9021 /* ext */ &xcb_input_id,
9022 /* opcode */ XCB_INPUT_GET_DEVICE_PROPERTY,
9023 /* isvoid */ 0
9026 struct iovec xcb_parts[4];
9027 xcb_input_get_device_property_cookie_t xcb_ret;
9028 xcb_input_get_device_property_request_t xcb_out;
9030 xcb_out.property = property;
9031 xcb_out.type = type;
9032 xcb_out.offset = offset;
9033 xcb_out.len = len;
9034 xcb_out.device_id = device_id;
9035 xcb_out._delete = _delete;
9036 memset(xcb_out.pad0, 0, 2);
9038 xcb_parts[2].iov_base = (char *) &xcb_out;
9039 xcb_parts[2].iov_len = sizeof(xcb_out);
9040 xcb_parts[3].iov_base = 0;
9041 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9043 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9044 return xcb_ret;
9048 /*****************************************************************************
9050 ** xcb_input_get_device_property_items_t * xcb_input_get_device_property_items
9052 ** @param const xcb_input_get_device_property_reply_t *R
9053 ** @returns xcb_input_get_device_property_items_t *
9055 *****************************************************************************/
9057 void *
9058 xcb_input_get_device_property_items (const xcb_input_get_device_property_reply_t *R /**< */)
9060 return (void *) (R + 1);
9064 /*****************************************************************************
9066 ** xcb_input_get_device_property_reply_t * xcb_input_get_device_property_reply
9068 ** @param xcb_connection_t *c
9069 ** @param xcb_input_get_device_property_cookie_t cookie
9070 ** @param xcb_generic_error_t **e
9071 ** @returns xcb_input_get_device_property_reply_t *
9073 *****************************************************************************/
9075 xcb_input_get_device_property_reply_t *
9076 xcb_input_get_device_property_reply (xcb_connection_t *c /**< */,
9077 xcb_input_get_device_property_cookie_t cookie /**< */,
9078 xcb_generic_error_t **e /**< */)
9080 return (xcb_input_get_device_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
9084 /*****************************************************************************
9086 ** void xcb_input_group_info_next
9088 ** @param xcb_input_group_info_iterator_t *i
9089 ** @returns void
9091 *****************************************************************************/
9093 void
9094 xcb_input_group_info_next (xcb_input_group_info_iterator_t *i /**< */)
9096 --i->rem;
9097 ++i->data;
9098 i->index += sizeof(xcb_input_group_info_t);
9102 /*****************************************************************************
9104 ** xcb_generic_iterator_t xcb_input_group_info_end
9106 ** @param xcb_input_group_info_iterator_t i
9107 ** @returns xcb_generic_iterator_t
9109 *****************************************************************************/
9111 xcb_generic_iterator_t
9112 xcb_input_group_info_end (xcb_input_group_info_iterator_t i /**< */)
9114 xcb_generic_iterator_t ret;
9115 ret.data = i.data + i.rem;
9116 ret.index = i.index + ((char *) ret.data - (char *) i.data);
9117 ret.rem = 0;
9118 return ret;
9122 /*****************************************************************************
9124 ** void xcb_input_modifier_info_next
9126 ** @param xcb_input_modifier_info_iterator_t *i
9127 ** @returns void
9129 *****************************************************************************/
9131 void
9132 xcb_input_modifier_info_next (xcb_input_modifier_info_iterator_t *i /**< */)
9134 --i->rem;
9135 ++i->data;
9136 i->index += sizeof(xcb_input_modifier_info_t);
9140 /*****************************************************************************
9142 ** xcb_generic_iterator_t xcb_input_modifier_info_end
9144 ** @param xcb_input_modifier_info_iterator_t i
9145 ** @returns xcb_generic_iterator_t
9147 *****************************************************************************/
9149 xcb_generic_iterator_t
9150 xcb_input_modifier_info_end (xcb_input_modifier_info_iterator_t i /**< */)
9152 xcb_generic_iterator_t ret;
9153 ret.data = i.data + i.rem;
9154 ret.index = i.index + ((char *) ret.data - (char *) i.data);
9155 ret.rem = 0;
9156 return ret;
9160 xcb_input_xi_query_pointer_sizeof (const void *_buffer /**< */)
9162 char *xcb_tmp = (char *)_buffer;
9163 const xcb_input_xi_query_pointer_reply_t *_aux = (xcb_input_xi_query_pointer_reply_t *)_buffer;
9164 unsigned int xcb_buffer_len = 0;
9165 unsigned int xcb_block_len = 0;
9166 unsigned int xcb_pad = 0;
9167 unsigned int xcb_align_to = 0;
9170 xcb_block_len += sizeof(xcb_input_xi_query_pointer_reply_t);
9171 xcb_tmp += xcb_block_len;
9172 xcb_buffer_len += xcb_block_len;
9173 xcb_block_len = 0;
9174 /* buttons */
9175 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
9176 xcb_tmp += xcb_block_len;
9177 xcb_align_to = ALIGNOF(uint32_t);
9178 /* insert padding */
9179 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9180 xcb_buffer_len += xcb_block_len + xcb_pad;
9181 if (0 != xcb_pad) {
9182 xcb_tmp += xcb_pad;
9183 xcb_pad = 0;
9185 xcb_block_len = 0;
9187 return xcb_buffer_len;
9191 /*****************************************************************************
9193 ** xcb_input_xi_query_pointer_cookie_t xcb_input_xi_query_pointer
9195 ** @param xcb_connection_t *c
9196 ** @param xcb_window_t window
9197 ** @param xcb_input_device_id_t deviceid
9198 ** @returns xcb_input_xi_query_pointer_cookie_t
9200 *****************************************************************************/
9202 xcb_input_xi_query_pointer_cookie_t
9203 xcb_input_xi_query_pointer (xcb_connection_t *c /**< */,
9204 xcb_window_t window /**< */,
9205 xcb_input_device_id_t deviceid /**< */)
9207 static const xcb_protocol_request_t xcb_req = {
9208 /* count */ 2,
9209 /* ext */ &xcb_input_id,
9210 /* opcode */ XCB_INPUT_XI_QUERY_POINTER,
9211 /* isvoid */ 0
9214 struct iovec xcb_parts[4];
9215 xcb_input_xi_query_pointer_cookie_t xcb_ret;
9216 xcb_input_xi_query_pointer_request_t xcb_out;
9218 xcb_out.window = window;
9219 xcb_out.deviceid = deviceid;
9220 memset(xcb_out.pad0, 0, 2);
9222 xcb_parts[2].iov_base = (char *) &xcb_out;
9223 xcb_parts[2].iov_len = sizeof(xcb_out);
9224 xcb_parts[3].iov_base = 0;
9225 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9227 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
9228 return xcb_ret;
9232 /*****************************************************************************
9234 ** xcb_input_xi_query_pointer_cookie_t xcb_input_xi_query_pointer_unchecked
9236 ** @param xcb_connection_t *c
9237 ** @param xcb_window_t window
9238 ** @param xcb_input_device_id_t deviceid
9239 ** @returns xcb_input_xi_query_pointer_cookie_t
9241 *****************************************************************************/
9243 xcb_input_xi_query_pointer_cookie_t
9244 xcb_input_xi_query_pointer_unchecked (xcb_connection_t *c /**< */,
9245 xcb_window_t window /**< */,
9246 xcb_input_device_id_t deviceid /**< */)
9248 static const xcb_protocol_request_t xcb_req = {
9249 /* count */ 2,
9250 /* ext */ &xcb_input_id,
9251 /* opcode */ XCB_INPUT_XI_QUERY_POINTER,
9252 /* isvoid */ 0
9255 struct iovec xcb_parts[4];
9256 xcb_input_xi_query_pointer_cookie_t xcb_ret;
9257 xcb_input_xi_query_pointer_request_t xcb_out;
9259 xcb_out.window = window;
9260 xcb_out.deviceid = deviceid;
9261 memset(xcb_out.pad0, 0, 2);
9263 xcb_parts[2].iov_base = (char *) &xcb_out;
9264 xcb_parts[2].iov_len = sizeof(xcb_out);
9265 xcb_parts[3].iov_base = 0;
9266 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9268 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9269 return xcb_ret;
9273 /*****************************************************************************
9275 ** uint32_t * xcb_input_xi_query_pointer_buttons
9277 ** @param const xcb_input_xi_query_pointer_reply_t *R
9278 ** @returns uint32_t *
9280 *****************************************************************************/
9282 uint32_t *
9283 xcb_input_xi_query_pointer_buttons (const xcb_input_xi_query_pointer_reply_t *R /**< */)
9285 return (uint32_t *) (R + 1);
9289 /*****************************************************************************
9291 ** int xcb_input_xi_query_pointer_buttons_length
9293 ** @param const xcb_input_xi_query_pointer_reply_t *R
9294 ** @returns int
9296 *****************************************************************************/
9299 xcb_input_xi_query_pointer_buttons_length (const xcb_input_xi_query_pointer_reply_t *R /**< */)
9301 return R->buttons_len;
9305 /*****************************************************************************
9307 ** xcb_generic_iterator_t xcb_input_xi_query_pointer_buttons_end
9309 ** @param const xcb_input_xi_query_pointer_reply_t *R
9310 ** @returns xcb_generic_iterator_t
9312 *****************************************************************************/
9314 xcb_generic_iterator_t
9315 xcb_input_xi_query_pointer_buttons_end (const xcb_input_xi_query_pointer_reply_t *R /**< */)
9317 xcb_generic_iterator_t i;
9318 i.data = ((uint32_t *) (R + 1)) + (R->buttons_len);
9319 i.rem = 0;
9320 i.index = (char *) i.data - (char *) R;
9321 return i;
9325 /*****************************************************************************
9327 ** xcb_input_xi_query_pointer_reply_t * xcb_input_xi_query_pointer_reply
9329 ** @param xcb_connection_t *c
9330 ** @param xcb_input_xi_query_pointer_cookie_t cookie
9331 ** @param xcb_generic_error_t **e
9332 ** @returns xcb_input_xi_query_pointer_reply_t *
9334 *****************************************************************************/
9336 xcb_input_xi_query_pointer_reply_t *
9337 xcb_input_xi_query_pointer_reply (xcb_connection_t *c /**< */,
9338 xcb_input_xi_query_pointer_cookie_t cookie /**< */,
9339 xcb_generic_error_t **e /**< */)
9341 return (xcb_input_xi_query_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
9345 /*****************************************************************************
9347 ** xcb_void_cookie_t xcb_input_xi_warp_pointer_checked
9349 ** @param xcb_connection_t *c
9350 ** @param xcb_window_t src_win
9351 ** @param xcb_window_t dst_win
9352 ** @param xcb_input_fp1616_t src_x
9353 ** @param xcb_input_fp1616_t src_y
9354 ** @param uint16_t src_width
9355 ** @param uint16_t src_height
9356 ** @param xcb_input_fp1616_t dst_x
9357 ** @param xcb_input_fp1616_t dst_y
9358 ** @param xcb_input_device_id_t deviceid
9359 ** @returns xcb_void_cookie_t
9361 *****************************************************************************/
9363 xcb_void_cookie_t
9364 xcb_input_xi_warp_pointer_checked (xcb_connection_t *c /**< */,
9365 xcb_window_t src_win /**< */,
9366 xcb_window_t dst_win /**< */,
9367 xcb_input_fp1616_t src_x /**< */,
9368 xcb_input_fp1616_t src_y /**< */,
9369 uint16_t src_width /**< */,
9370 uint16_t src_height /**< */,
9371 xcb_input_fp1616_t dst_x /**< */,
9372 xcb_input_fp1616_t dst_y /**< */,
9373 xcb_input_device_id_t deviceid /**< */)
9375 static const xcb_protocol_request_t xcb_req = {
9376 /* count */ 2,
9377 /* ext */ &xcb_input_id,
9378 /* opcode */ XCB_INPUT_XI_WARP_POINTER,
9379 /* isvoid */ 1
9382 struct iovec xcb_parts[4];
9383 xcb_void_cookie_t xcb_ret;
9384 xcb_input_xi_warp_pointer_request_t xcb_out;
9386 xcb_out.src_win = src_win;
9387 xcb_out.dst_win = dst_win;
9388 xcb_out.src_x = src_x;
9389 xcb_out.src_y = src_y;
9390 xcb_out.src_width = src_width;
9391 xcb_out.src_height = src_height;
9392 xcb_out.dst_x = dst_x;
9393 xcb_out.dst_y = dst_y;
9394 xcb_out.deviceid = deviceid;
9395 memset(xcb_out.pad0, 0, 2);
9397 xcb_parts[2].iov_base = (char *) &xcb_out;
9398 xcb_parts[2].iov_len = sizeof(xcb_out);
9399 xcb_parts[3].iov_base = 0;
9400 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9402 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
9403 return xcb_ret;
9407 /*****************************************************************************
9409 ** xcb_void_cookie_t xcb_input_xi_warp_pointer
9411 ** @param xcb_connection_t *c
9412 ** @param xcb_window_t src_win
9413 ** @param xcb_window_t dst_win
9414 ** @param xcb_input_fp1616_t src_x
9415 ** @param xcb_input_fp1616_t src_y
9416 ** @param uint16_t src_width
9417 ** @param uint16_t src_height
9418 ** @param xcb_input_fp1616_t dst_x
9419 ** @param xcb_input_fp1616_t dst_y
9420 ** @param xcb_input_device_id_t deviceid
9421 ** @returns xcb_void_cookie_t
9423 *****************************************************************************/
9425 xcb_void_cookie_t
9426 xcb_input_xi_warp_pointer (xcb_connection_t *c /**< */,
9427 xcb_window_t src_win /**< */,
9428 xcb_window_t dst_win /**< */,
9429 xcb_input_fp1616_t src_x /**< */,
9430 xcb_input_fp1616_t src_y /**< */,
9431 uint16_t src_width /**< */,
9432 uint16_t src_height /**< */,
9433 xcb_input_fp1616_t dst_x /**< */,
9434 xcb_input_fp1616_t dst_y /**< */,
9435 xcb_input_device_id_t deviceid /**< */)
9437 static const xcb_protocol_request_t xcb_req = {
9438 /* count */ 2,
9439 /* ext */ &xcb_input_id,
9440 /* opcode */ XCB_INPUT_XI_WARP_POINTER,
9441 /* isvoid */ 1
9444 struct iovec xcb_parts[4];
9445 xcb_void_cookie_t xcb_ret;
9446 xcb_input_xi_warp_pointer_request_t xcb_out;
9448 xcb_out.src_win = src_win;
9449 xcb_out.dst_win = dst_win;
9450 xcb_out.src_x = src_x;
9451 xcb_out.src_y = src_y;
9452 xcb_out.src_width = src_width;
9453 xcb_out.src_height = src_height;
9454 xcb_out.dst_x = dst_x;
9455 xcb_out.dst_y = dst_y;
9456 xcb_out.deviceid = deviceid;
9457 memset(xcb_out.pad0, 0, 2);
9459 xcb_parts[2].iov_base = (char *) &xcb_out;
9460 xcb_parts[2].iov_len = sizeof(xcb_out);
9461 xcb_parts[3].iov_base = 0;
9462 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9464 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9465 return xcb_ret;
9469 /*****************************************************************************
9471 ** xcb_void_cookie_t xcb_input_xi_change_cursor_checked
9473 ** @param xcb_connection_t *c
9474 ** @param xcb_window_t window
9475 ** @param xcb_cursor_t cursor
9476 ** @param xcb_input_device_id_t deviceid
9477 ** @returns xcb_void_cookie_t
9479 *****************************************************************************/
9481 xcb_void_cookie_t
9482 xcb_input_xi_change_cursor_checked (xcb_connection_t *c /**< */,
9483 xcb_window_t window /**< */,
9484 xcb_cursor_t cursor /**< */,
9485 xcb_input_device_id_t deviceid /**< */)
9487 static const xcb_protocol_request_t xcb_req = {
9488 /* count */ 2,
9489 /* ext */ &xcb_input_id,
9490 /* opcode */ XCB_INPUT_XI_CHANGE_CURSOR,
9491 /* isvoid */ 1
9494 struct iovec xcb_parts[4];
9495 xcb_void_cookie_t xcb_ret;
9496 xcb_input_xi_change_cursor_request_t xcb_out;
9498 xcb_out.window = window;
9499 xcb_out.cursor = cursor;
9500 xcb_out.deviceid = deviceid;
9501 memset(xcb_out.pad0, 0, 2);
9503 xcb_parts[2].iov_base = (char *) &xcb_out;
9504 xcb_parts[2].iov_len = sizeof(xcb_out);
9505 xcb_parts[3].iov_base = 0;
9506 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9508 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
9509 return xcb_ret;
9513 /*****************************************************************************
9515 ** xcb_void_cookie_t xcb_input_xi_change_cursor
9517 ** @param xcb_connection_t *c
9518 ** @param xcb_window_t window
9519 ** @param xcb_cursor_t cursor
9520 ** @param xcb_input_device_id_t deviceid
9521 ** @returns xcb_void_cookie_t
9523 *****************************************************************************/
9525 xcb_void_cookie_t
9526 xcb_input_xi_change_cursor (xcb_connection_t *c /**< */,
9527 xcb_window_t window /**< */,
9528 xcb_cursor_t cursor /**< */,
9529 xcb_input_device_id_t deviceid /**< */)
9531 static const xcb_protocol_request_t xcb_req = {
9532 /* count */ 2,
9533 /* ext */ &xcb_input_id,
9534 /* opcode */ XCB_INPUT_XI_CHANGE_CURSOR,
9535 /* isvoid */ 1
9538 struct iovec xcb_parts[4];
9539 xcb_void_cookie_t xcb_ret;
9540 xcb_input_xi_change_cursor_request_t xcb_out;
9542 xcb_out.window = window;
9543 xcb_out.cursor = cursor;
9544 xcb_out.deviceid = deviceid;
9545 memset(xcb_out.pad0, 0, 2);
9547 xcb_parts[2].iov_base = (char *) &xcb_out;
9548 xcb_parts[2].iov_len = sizeof(xcb_out);
9549 xcb_parts[3].iov_base = 0;
9550 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9552 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
9553 return xcb_ret;
9557 xcb_input_add_master_sizeof (const void *_buffer /**< */)
9559 char *xcb_tmp = (char *)_buffer;
9560 const xcb_input_add_master_t *_aux = (xcb_input_add_master_t *)_buffer;
9561 unsigned int xcb_buffer_len = 0;
9562 unsigned int xcb_block_len = 0;
9563 unsigned int xcb_pad = 0;
9564 unsigned int xcb_align_to = 0;
9567 xcb_block_len += sizeof(xcb_input_add_master_t);
9568 xcb_tmp += xcb_block_len;
9569 xcb_buffer_len += xcb_block_len;
9570 xcb_block_len = 0;
9571 /* name */
9572 xcb_block_len += _aux->name_len * sizeof(char);
9573 xcb_tmp += xcb_block_len;
9574 xcb_align_to = ALIGNOF(char);
9575 /* insert padding */
9576 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9577 xcb_buffer_len += xcb_block_len + xcb_pad;
9578 if (0 != xcb_pad) {
9579 xcb_tmp += xcb_pad;
9580 xcb_pad = 0;
9582 xcb_block_len = 0;
9584 return xcb_buffer_len;
9588 /*****************************************************************************
9590 ** char * xcb_input_add_master_name
9592 ** @param const xcb_input_add_master_t *R
9593 ** @returns char *
9595 *****************************************************************************/
9597 char *
9598 xcb_input_add_master_name (const xcb_input_add_master_t *R /**< */)
9600 return (char *) (R + 1);
9604 /*****************************************************************************
9606 ** int xcb_input_add_master_name_length
9608 ** @param const xcb_input_add_master_t *R
9609 ** @returns int
9611 *****************************************************************************/
9614 xcb_input_add_master_name_length (const xcb_input_add_master_t *R /**< */)
9616 return R->name_len;
9620 /*****************************************************************************
9622 ** xcb_generic_iterator_t xcb_input_add_master_name_end
9624 ** @param const xcb_input_add_master_t *R
9625 ** @returns xcb_generic_iterator_t
9627 *****************************************************************************/
9629 xcb_generic_iterator_t
9630 xcb_input_add_master_name_end (const xcb_input_add_master_t *R /**< */)
9632 xcb_generic_iterator_t i;
9633 i.data = ((char *) (R + 1)) + (R->name_len);
9634 i.rem = 0;
9635 i.index = (char *) i.data - (char *) R;
9636 return i;
9640 /*****************************************************************************
9642 ** void xcb_input_add_master_next
9644 ** @param xcb_input_add_master_iterator_t *i
9645 ** @returns void
9647 *****************************************************************************/
9649 void
9650 xcb_input_add_master_next (xcb_input_add_master_iterator_t *i /**< */)
9652 xcb_input_add_master_t *R = i->data;
9653 xcb_generic_iterator_t child;
9654 child.data = (xcb_input_add_master_t *)(((char *)R) + xcb_input_add_master_sizeof(R));
9655 i->index = (char *) child.data - (char *) i->data;
9656 --i->rem;
9657 i->data = (xcb_input_add_master_t *) child.data;
9661 /*****************************************************************************
9663 ** xcb_generic_iterator_t xcb_input_add_master_end
9665 ** @param xcb_input_add_master_iterator_t i
9666 ** @returns xcb_generic_iterator_t
9668 *****************************************************************************/
9670 xcb_generic_iterator_t
9671 xcb_input_add_master_end (xcb_input_add_master_iterator_t i /**< */)
9673 xcb_generic_iterator_t ret;
9674 while(i.rem > 0)
9675 xcb_input_add_master_next(&i);
9676 ret.data = i.data;
9677 ret.rem = i.rem;
9678 ret.index = i.index;
9679 return ret;
9683 /*****************************************************************************
9685 ** void xcb_input_remove_master_next
9687 ** @param xcb_input_remove_master_iterator_t *i
9688 ** @returns void
9690 *****************************************************************************/
9692 void
9693 xcb_input_remove_master_next (xcb_input_remove_master_iterator_t *i /**< */)
9695 --i->rem;
9696 ++i->data;
9697 i->index += sizeof(xcb_input_remove_master_t);
9701 /*****************************************************************************
9703 ** xcb_generic_iterator_t xcb_input_remove_master_end
9705 ** @param xcb_input_remove_master_iterator_t i
9706 ** @returns xcb_generic_iterator_t
9708 *****************************************************************************/
9710 xcb_generic_iterator_t
9711 xcb_input_remove_master_end (xcb_input_remove_master_iterator_t i /**< */)
9713 xcb_generic_iterator_t ret;
9714 ret.data = i.data + i.rem;
9715 ret.index = i.index + ((char *) ret.data - (char *) i.data);
9716 ret.rem = 0;
9717 return ret;
9721 /*****************************************************************************
9723 ** void xcb_input_attach_slave_next
9725 ** @param xcb_input_attach_slave_iterator_t *i
9726 ** @returns void
9728 *****************************************************************************/
9730 void
9731 xcb_input_attach_slave_next (xcb_input_attach_slave_iterator_t *i /**< */)
9733 --i->rem;
9734 ++i->data;
9735 i->index += sizeof(xcb_input_attach_slave_t);
9739 /*****************************************************************************
9741 ** xcb_generic_iterator_t xcb_input_attach_slave_end
9743 ** @param xcb_input_attach_slave_iterator_t i
9744 ** @returns xcb_generic_iterator_t
9746 *****************************************************************************/
9748 xcb_generic_iterator_t
9749 xcb_input_attach_slave_end (xcb_input_attach_slave_iterator_t i /**< */)
9751 xcb_generic_iterator_t ret;
9752 ret.data = i.data + i.rem;
9753 ret.index = i.index + ((char *) ret.data - (char *) i.data);
9754 ret.rem = 0;
9755 return ret;
9759 /*****************************************************************************
9761 ** void xcb_input_detach_slave_next
9763 ** @param xcb_input_detach_slave_iterator_t *i
9764 ** @returns void
9766 *****************************************************************************/
9768 void
9769 xcb_input_detach_slave_next (xcb_input_detach_slave_iterator_t *i /**< */)
9771 --i->rem;
9772 ++i->data;
9773 i->index += sizeof(xcb_input_detach_slave_t);
9777 /*****************************************************************************
9779 ** xcb_generic_iterator_t xcb_input_detach_slave_end
9781 ** @param xcb_input_detach_slave_iterator_t i
9782 ** @returns xcb_generic_iterator_t
9784 *****************************************************************************/
9786 xcb_generic_iterator_t
9787 xcb_input_detach_slave_end (xcb_input_detach_slave_iterator_t i /**< */)
9789 xcb_generic_iterator_t ret;
9790 ret.data = i.data + i.rem;
9791 ret.index = i.index + ((char *) ret.data - (char *) i.data);
9792 ret.rem = 0;
9793 return ret;
9797 xcb_input_hierarchy_change_sizeof (const void *_buffer /**< */)
9799 char *xcb_tmp = (char *)_buffer;
9800 const xcb_input_hierarchy_change_t *_aux = (xcb_input_hierarchy_change_t *)_buffer;
9801 unsigned int xcb_buffer_len = 0;
9802 unsigned int xcb_block_len = 0;
9803 unsigned int xcb_pad = 0;
9804 unsigned int xcb_align_to = 0;
9807 xcb_block_len += sizeof(xcb_input_hierarchy_change_t);
9808 xcb_tmp += xcb_block_len;
9809 xcb_buffer_len += xcb_block_len;
9810 xcb_block_len = 0;
9811 /* uninterpreted_data */
9812 xcb_block_len += ((_aux->len * 4) - 4) * sizeof(uint8_t);
9813 xcb_tmp += xcb_block_len;
9814 xcb_align_to = ALIGNOF(uint8_t);
9815 /* insert padding */
9816 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9817 xcb_buffer_len += xcb_block_len + xcb_pad;
9818 if (0 != xcb_pad) {
9819 xcb_tmp += xcb_pad;
9820 xcb_pad = 0;
9822 xcb_block_len = 0;
9824 return xcb_buffer_len;
9828 /*****************************************************************************
9830 ** uint8_t * xcb_input_hierarchy_change_uninterpreted_data
9832 ** @param const xcb_input_hierarchy_change_t *R
9833 ** @returns uint8_t *
9835 *****************************************************************************/
9837 uint8_t *
9838 xcb_input_hierarchy_change_uninterpreted_data (const xcb_input_hierarchy_change_t *R /**< */)
9840 return (uint8_t *) (R + 1);
9844 /*****************************************************************************
9846 ** int xcb_input_hierarchy_change_uninterpreted_data_length
9848 ** @param const xcb_input_hierarchy_change_t *R
9849 ** @returns int
9851 *****************************************************************************/
9854 xcb_input_hierarchy_change_uninterpreted_data_length (const xcb_input_hierarchy_change_t *R /**< */)
9856 return ((R->len * 4) - 4);
9860 /*****************************************************************************
9862 ** xcb_generic_iterator_t xcb_input_hierarchy_change_uninterpreted_data_end
9864 ** @param const xcb_input_hierarchy_change_t *R
9865 ** @returns xcb_generic_iterator_t
9867 *****************************************************************************/
9869 xcb_generic_iterator_t
9870 xcb_input_hierarchy_change_uninterpreted_data_end (const xcb_input_hierarchy_change_t *R /**< */)
9872 xcb_generic_iterator_t i;
9873 i.data = ((uint8_t *) (R + 1)) + (((R->len * 4) - 4));
9874 i.rem = 0;
9875 i.index = (char *) i.data - (char *) R;
9876 return i;
9880 /*****************************************************************************
9882 ** void xcb_input_hierarchy_change_next
9884 ** @param xcb_input_hierarchy_change_iterator_t *i
9885 ** @returns void
9887 *****************************************************************************/
9889 void
9890 xcb_input_hierarchy_change_next (xcb_input_hierarchy_change_iterator_t *i /**< */)
9892 xcb_input_hierarchy_change_t *R = i->data;
9893 xcb_generic_iterator_t child;
9894 child.data = (xcb_input_hierarchy_change_t *)(((char *)R) + xcb_input_hierarchy_change_sizeof(R));
9895 i->index = (char *) child.data - (char *) i->data;
9896 --i->rem;
9897 i->data = (xcb_input_hierarchy_change_t *) child.data;
9901 /*****************************************************************************
9903 ** xcb_generic_iterator_t xcb_input_hierarchy_change_end
9905 ** @param xcb_input_hierarchy_change_iterator_t i
9906 ** @returns xcb_generic_iterator_t
9908 *****************************************************************************/
9910 xcb_generic_iterator_t
9911 xcb_input_hierarchy_change_end (xcb_input_hierarchy_change_iterator_t i /**< */)
9913 xcb_generic_iterator_t ret;
9914 while(i.rem > 0)
9915 xcb_input_hierarchy_change_next(&i);
9916 ret.data = i.data;
9917 ret.rem = i.rem;
9918 ret.index = i.index;
9919 return ret;
9923 xcb_input_xi_change_hierarchy_sizeof (const void *_buffer /**< */)
9925 char *xcb_tmp = (char *)_buffer;
9926 const xcb_input_xi_change_hierarchy_request_t *_aux = (xcb_input_xi_change_hierarchy_request_t *)_buffer;
9927 unsigned int xcb_buffer_len = 0;
9928 unsigned int xcb_block_len = 0;
9929 unsigned int xcb_pad = 0;
9930 unsigned int xcb_align_to = 0;
9932 unsigned int i;
9933 unsigned int xcb_tmp_len;
9935 xcb_block_len += sizeof(xcb_input_xi_change_hierarchy_request_t);
9936 xcb_tmp += xcb_block_len;
9937 xcb_buffer_len += xcb_block_len;
9938 xcb_block_len = 0;
9939 /* changes */
9940 for(i=0; i<_aux->num_changes; i++) {
9941 xcb_tmp_len = xcb_input_hierarchy_change_sizeof(xcb_tmp);
9942 xcb_block_len += xcb_tmp_len;
9943 xcb_tmp += xcb_tmp_len;
9945 xcb_align_to = ALIGNOF(xcb_input_hierarchy_change_t);
9946 /* insert padding */
9947 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
9948 xcb_buffer_len += xcb_block_len + xcb_pad;
9949 if (0 != xcb_pad) {
9950 xcb_tmp += xcb_pad;
9951 xcb_pad = 0;
9953 xcb_block_len = 0;
9955 return xcb_buffer_len;
9959 /*****************************************************************************
9961 ** xcb_void_cookie_t xcb_input_xi_change_hierarchy_checked
9963 ** @param xcb_connection_t *c
9964 ** @param uint8_t num_changes
9965 ** @param const xcb_input_hierarchy_change_t *changes
9966 ** @returns xcb_void_cookie_t
9968 *****************************************************************************/
9970 xcb_void_cookie_t
9971 xcb_input_xi_change_hierarchy_checked (xcb_connection_t *c /**< */,
9972 uint8_t num_changes /**< */,
9973 const xcb_input_hierarchy_change_t *changes /**< */)
9975 static const xcb_protocol_request_t xcb_req = {
9976 /* count */ 4,
9977 /* ext */ &xcb_input_id,
9978 /* opcode */ XCB_INPUT_XI_CHANGE_HIERARCHY,
9979 /* isvoid */ 1
9982 struct iovec xcb_parts[6];
9983 xcb_void_cookie_t xcb_ret;
9984 xcb_input_xi_change_hierarchy_request_t xcb_out;
9985 unsigned int i;
9986 unsigned int xcb_tmp_len;
9987 char *xcb_tmp;
9989 xcb_out.num_changes = num_changes;
9991 xcb_parts[2].iov_base = (char *) &xcb_out;
9992 xcb_parts[2].iov_len = sizeof(xcb_out);
9993 xcb_parts[3].iov_base = 0;
9994 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
9995 /* xcb_input_hierarchy_change_t changes */
9996 xcb_parts[4].iov_base = (char *) changes;
9997 xcb_parts[4].iov_len = 0;
9998 xcb_tmp = (char *)changes;
9999 for(i=0; i<num_changes; i++) {
10000 xcb_tmp_len = xcb_input_hierarchy_change_sizeof(xcb_tmp);
10001 xcb_parts[4].iov_len += xcb_tmp_len;
10002 xcb_tmp += xcb_tmp_len;
10004 xcb_parts[5].iov_base = 0;
10005 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10007 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10008 return xcb_ret;
10012 /*****************************************************************************
10014 ** xcb_void_cookie_t xcb_input_xi_change_hierarchy
10016 ** @param xcb_connection_t *c
10017 ** @param uint8_t num_changes
10018 ** @param const xcb_input_hierarchy_change_t *changes
10019 ** @returns xcb_void_cookie_t
10021 *****************************************************************************/
10023 xcb_void_cookie_t
10024 xcb_input_xi_change_hierarchy (xcb_connection_t *c /**< */,
10025 uint8_t num_changes /**< */,
10026 const xcb_input_hierarchy_change_t *changes /**< */)
10028 static const xcb_protocol_request_t xcb_req = {
10029 /* count */ 4,
10030 /* ext */ &xcb_input_id,
10031 /* opcode */ XCB_INPUT_XI_CHANGE_HIERARCHY,
10032 /* isvoid */ 1
10035 struct iovec xcb_parts[6];
10036 xcb_void_cookie_t xcb_ret;
10037 xcb_input_xi_change_hierarchy_request_t xcb_out;
10038 unsigned int i;
10039 unsigned int xcb_tmp_len;
10040 char *xcb_tmp;
10042 xcb_out.num_changes = num_changes;
10044 xcb_parts[2].iov_base = (char *) &xcb_out;
10045 xcb_parts[2].iov_len = sizeof(xcb_out);
10046 xcb_parts[3].iov_base = 0;
10047 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10048 /* xcb_input_hierarchy_change_t changes */
10049 xcb_parts[4].iov_base = (char *) changes;
10050 xcb_parts[4].iov_len = 0;
10051 xcb_tmp = (char *)changes;
10052 for(i=0; i<num_changes; i++) {
10053 xcb_tmp_len = xcb_input_hierarchy_change_sizeof(xcb_tmp);
10054 xcb_parts[4].iov_len += xcb_tmp_len;
10055 xcb_tmp += xcb_tmp_len;
10057 xcb_parts[5].iov_base = 0;
10058 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10060 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10061 return xcb_ret;
10065 /*****************************************************************************
10067 ** xcb_void_cookie_t xcb_input_xi_set_client_pointer_checked
10069 ** @param xcb_connection_t *c
10070 ** @param xcb_window_t window
10071 ** @param xcb_input_device_id_t deviceid
10072 ** @returns xcb_void_cookie_t
10074 *****************************************************************************/
10076 xcb_void_cookie_t
10077 xcb_input_xi_set_client_pointer_checked (xcb_connection_t *c /**< */,
10078 xcb_window_t window /**< */,
10079 xcb_input_device_id_t deviceid /**< */)
10081 static const xcb_protocol_request_t xcb_req = {
10082 /* count */ 2,
10083 /* ext */ &xcb_input_id,
10084 /* opcode */ XCB_INPUT_XI_SET_CLIENT_POINTER,
10085 /* isvoid */ 1
10088 struct iovec xcb_parts[4];
10089 xcb_void_cookie_t xcb_ret;
10090 xcb_input_xi_set_client_pointer_request_t xcb_out;
10092 xcb_out.window = window;
10093 xcb_out.deviceid = deviceid;
10094 memset(xcb_out.pad0, 0, 2);
10096 xcb_parts[2].iov_base = (char *) &xcb_out;
10097 xcb_parts[2].iov_len = sizeof(xcb_out);
10098 xcb_parts[3].iov_base = 0;
10099 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10101 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10102 return xcb_ret;
10106 /*****************************************************************************
10108 ** xcb_void_cookie_t xcb_input_xi_set_client_pointer
10110 ** @param xcb_connection_t *c
10111 ** @param xcb_window_t window
10112 ** @param xcb_input_device_id_t deviceid
10113 ** @returns xcb_void_cookie_t
10115 *****************************************************************************/
10117 xcb_void_cookie_t
10118 xcb_input_xi_set_client_pointer (xcb_connection_t *c /**< */,
10119 xcb_window_t window /**< */,
10120 xcb_input_device_id_t deviceid /**< */)
10122 static const xcb_protocol_request_t xcb_req = {
10123 /* count */ 2,
10124 /* ext */ &xcb_input_id,
10125 /* opcode */ XCB_INPUT_XI_SET_CLIENT_POINTER,
10126 /* isvoid */ 1
10129 struct iovec xcb_parts[4];
10130 xcb_void_cookie_t xcb_ret;
10131 xcb_input_xi_set_client_pointer_request_t xcb_out;
10133 xcb_out.window = window;
10134 xcb_out.deviceid = deviceid;
10135 memset(xcb_out.pad0, 0, 2);
10137 xcb_parts[2].iov_base = (char *) &xcb_out;
10138 xcb_parts[2].iov_len = sizeof(xcb_out);
10139 xcb_parts[3].iov_base = 0;
10140 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10142 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10143 return xcb_ret;
10147 /*****************************************************************************
10149 ** xcb_input_xi_get_client_pointer_cookie_t xcb_input_xi_get_client_pointer
10151 ** @param xcb_connection_t *c
10152 ** @param xcb_window_t window
10153 ** @returns xcb_input_xi_get_client_pointer_cookie_t
10155 *****************************************************************************/
10157 xcb_input_xi_get_client_pointer_cookie_t
10158 xcb_input_xi_get_client_pointer (xcb_connection_t *c /**< */,
10159 xcb_window_t window /**< */)
10161 static const xcb_protocol_request_t xcb_req = {
10162 /* count */ 2,
10163 /* ext */ &xcb_input_id,
10164 /* opcode */ XCB_INPUT_XI_GET_CLIENT_POINTER,
10165 /* isvoid */ 0
10168 struct iovec xcb_parts[4];
10169 xcb_input_xi_get_client_pointer_cookie_t xcb_ret;
10170 xcb_input_xi_get_client_pointer_request_t xcb_out;
10172 xcb_out.window = window;
10174 xcb_parts[2].iov_base = (char *) &xcb_out;
10175 xcb_parts[2].iov_len = sizeof(xcb_out);
10176 xcb_parts[3].iov_base = 0;
10177 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10179 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10180 return xcb_ret;
10184 /*****************************************************************************
10186 ** xcb_input_xi_get_client_pointer_cookie_t xcb_input_xi_get_client_pointer_unchecked
10188 ** @param xcb_connection_t *c
10189 ** @param xcb_window_t window
10190 ** @returns xcb_input_xi_get_client_pointer_cookie_t
10192 *****************************************************************************/
10194 xcb_input_xi_get_client_pointer_cookie_t
10195 xcb_input_xi_get_client_pointer_unchecked (xcb_connection_t *c /**< */,
10196 xcb_window_t window /**< */)
10198 static const xcb_protocol_request_t xcb_req = {
10199 /* count */ 2,
10200 /* ext */ &xcb_input_id,
10201 /* opcode */ XCB_INPUT_XI_GET_CLIENT_POINTER,
10202 /* isvoid */ 0
10205 struct iovec xcb_parts[4];
10206 xcb_input_xi_get_client_pointer_cookie_t xcb_ret;
10207 xcb_input_xi_get_client_pointer_request_t xcb_out;
10209 xcb_out.window = window;
10211 xcb_parts[2].iov_base = (char *) &xcb_out;
10212 xcb_parts[2].iov_len = sizeof(xcb_out);
10213 xcb_parts[3].iov_base = 0;
10214 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10216 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10217 return xcb_ret;
10221 /*****************************************************************************
10223 ** xcb_input_xi_get_client_pointer_reply_t * xcb_input_xi_get_client_pointer_reply
10225 ** @param xcb_connection_t *c
10226 ** @param xcb_input_xi_get_client_pointer_cookie_t cookie
10227 ** @param xcb_generic_error_t **e
10228 ** @returns xcb_input_xi_get_client_pointer_reply_t *
10230 *****************************************************************************/
10232 xcb_input_xi_get_client_pointer_reply_t *
10233 xcb_input_xi_get_client_pointer_reply (xcb_connection_t *c /**< */,
10234 xcb_input_xi_get_client_pointer_cookie_t cookie /**< */,
10235 xcb_generic_error_t **e /**< */)
10237 return (xcb_input_xi_get_client_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
10241 xcb_input_event_mask_sizeof (const void *_buffer /**< */)
10243 char *xcb_tmp = (char *)_buffer;
10244 const xcb_input_event_mask_t *_aux = (xcb_input_event_mask_t *)_buffer;
10245 unsigned int xcb_buffer_len = 0;
10246 unsigned int xcb_block_len = 0;
10247 unsigned int xcb_pad = 0;
10248 unsigned int xcb_align_to = 0;
10251 xcb_block_len += sizeof(xcb_input_event_mask_t);
10252 xcb_tmp += xcb_block_len;
10253 xcb_buffer_len += xcb_block_len;
10254 xcb_block_len = 0;
10255 /* mask */
10256 xcb_block_len += _aux->mask_len * sizeof(uint32_t);
10257 xcb_tmp += xcb_block_len;
10258 xcb_align_to = ALIGNOF(uint32_t);
10259 /* insert padding */
10260 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10261 xcb_buffer_len += xcb_block_len + xcb_pad;
10262 if (0 != xcb_pad) {
10263 xcb_tmp += xcb_pad;
10264 xcb_pad = 0;
10266 xcb_block_len = 0;
10268 return xcb_buffer_len;
10272 /*****************************************************************************
10274 ** uint32_t * xcb_input_event_mask_mask
10276 ** @param const xcb_input_event_mask_t *R
10277 ** @returns uint32_t *
10279 *****************************************************************************/
10281 uint32_t *
10282 xcb_input_event_mask_mask (const xcb_input_event_mask_t *R /**< */)
10284 return (uint32_t *) (R + 1);
10288 /*****************************************************************************
10290 ** int xcb_input_event_mask_mask_length
10292 ** @param const xcb_input_event_mask_t *R
10293 ** @returns int
10295 *****************************************************************************/
10298 xcb_input_event_mask_mask_length (const xcb_input_event_mask_t *R /**< */)
10300 return R->mask_len;
10304 /*****************************************************************************
10306 ** xcb_generic_iterator_t xcb_input_event_mask_mask_end
10308 ** @param const xcb_input_event_mask_t *R
10309 ** @returns xcb_generic_iterator_t
10311 *****************************************************************************/
10313 xcb_generic_iterator_t
10314 xcb_input_event_mask_mask_end (const xcb_input_event_mask_t *R /**< */)
10316 xcb_generic_iterator_t i;
10317 i.data = ((uint32_t *) (R + 1)) + (R->mask_len);
10318 i.rem = 0;
10319 i.index = (char *) i.data - (char *) R;
10320 return i;
10324 /*****************************************************************************
10326 ** void xcb_input_event_mask_next
10328 ** @param xcb_input_event_mask_iterator_t *i
10329 ** @returns void
10331 *****************************************************************************/
10333 void
10334 xcb_input_event_mask_next (xcb_input_event_mask_iterator_t *i /**< */)
10336 xcb_input_event_mask_t *R = i->data;
10337 xcb_generic_iterator_t child;
10338 child.data = (xcb_input_event_mask_t *)(((char *)R) + xcb_input_event_mask_sizeof(R));
10339 i->index = (char *) child.data - (char *) i->data;
10340 --i->rem;
10341 i->data = (xcb_input_event_mask_t *) child.data;
10345 /*****************************************************************************
10347 ** xcb_generic_iterator_t xcb_input_event_mask_end
10349 ** @param xcb_input_event_mask_iterator_t i
10350 ** @returns xcb_generic_iterator_t
10352 *****************************************************************************/
10354 xcb_generic_iterator_t
10355 xcb_input_event_mask_end (xcb_input_event_mask_iterator_t i /**< */)
10357 xcb_generic_iterator_t ret;
10358 while(i.rem > 0)
10359 xcb_input_event_mask_next(&i);
10360 ret.data = i.data;
10361 ret.rem = i.rem;
10362 ret.index = i.index;
10363 return ret;
10367 xcb_input_xi_select_events_sizeof (const void *_buffer /**< */)
10369 char *xcb_tmp = (char *)_buffer;
10370 const xcb_input_xi_select_events_request_t *_aux = (xcb_input_xi_select_events_request_t *)_buffer;
10371 unsigned int xcb_buffer_len = 0;
10372 unsigned int xcb_block_len = 0;
10373 unsigned int xcb_pad = 0;
10374 unsigned int xcb_align_to = 0;
10376 unsigned int i;
10377 unsigned int xcb_tmp_len;
10379 xcb_block_len += sizeof(xcb_input_xi_select_events_request_t);
10380 xcb_tmp += xcb_block_len;
10381 xcb_buffer_len += xcb_block_len;
10382 xcb_block_len = 0;
10383 /* masks */
10384 for(i=0; i<_aux->num_mask; i++) {
10385 xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
10386 xcb_block_len += xcb_tmp_len;
10387 xcb_tmp += xcb_tmp_len;
10389 xcb_align_to = ALIGNOF(xcb_input_event_mask_t);
10390 /* insert padding */
10391 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10392 xcb_buffer_len += xcb_block_len + xcb_pad;
10393 if (0 != xcb_pad) {
10394 xcb_tmp += xcb_pad;
10395 xcb_pad = 0;
10397 xcb_block_len = 0;
10399 return xcb_buffer_len;
10403 /*****************************************************************************
10405 ** xcb_void_cookie_t xcb_input_xi_select_events_checked
10407 ** @param xcb_connection_t *c
10408 ** @param xcb_window_t window
10409 ** @param uint16_t num_mask
10410 ** @param const xcb_input_event_mask_t *masks
10411 ** @returns xcb_void_cookie_t
10413 *****************************************************************************/
10415 xcb_void_cookie_t
10416 xcb_input_xi_select_events_checked (xcb_connection_t *c /**< */,
10417 xcb_window_t window /**< */,
10418 uint16_t num_mask /**< */,
10419 const xcb_input_event_mask_t *masks /**< */)
10421 static const xcb_protocol_request_t xcb_req = {
10422 /* count */ 4,
10423 /* ext */ &xcb_input_id,
10424 /* opcode */ XCB_INPUT_XI_SELECT_EVENTS,
10425 /* isvoid */ 1
10428 struct iovec xcb_parts[6];
10429 xcb_void_cookie_t xcb_ret;
10430 xcb_input_xi_select_events_request_t xcb_out;
10431 unsigned int i;
10432 unsigned int xcb_tmp_len;
10433 char *xcb_tmp;
10435 xcb_out.window = window;
10436 xcb_out.num_mask = num_mask;
10437 memset(xcb_out.pad0, 0, 2);
10439 xcb_parts[2].iov_base = (char *) &xcb_out;
10440 xcb_parts[2].iov_len = sizeof(xcb_out);
10441 xcb_parts[3].iov_base = 0;
10442 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10443 /* xcb_input_event_mask_t masks */
10444 xcb_parts[4].iov_base = (char *) masks;
10445 xcb_parts[4].iov_len = 0;
10446 xcb_tmp = (char *)masks;
10447 for(i=0; i<num_mask; i++) {
10448 xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
10449 xcb_parts[4].iov_len += xcb_tmp_len;
10450 xcb_tmp += xcb_tmp_len;
10452 xcb_parts[5].iov_base = 0;
10453 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10455 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10456 return xcb_ret;
10460 /*****************************************************************************
10462 ** xcb_void_cookie_t xcb_input_xi_select_events
10464 ** @param xcb_connection_t *c
10465 ** @param xcb_window_t window
10466 ** @param uint16_t num_mask
10467 ** @param const xcb_input_event_mask_t *masks
10468 ** @returns xcb_void_cookie_t
10470 *****************************************************************************/
10472 xcb_void_cookie_t
10473 xcb_input_xi_select_events (xcb_connection_t *c /**< */,
10474 xcb_window_t window /**< */,
10475 uint16_t num_mask /**< */,
10476 const xcb_input_event_mask_t *masks /**< */)
10478 static const xcb_protocol_request_t xcb_req = {
10479 /* count */ 4,
10480 /* ext */ &xcb_input_id,
10481 /* opcode */ XCB_INPUT_XI_SELECT_EVENTS,
10482 /* isvoid */ 1
10485 struct iovec xcb_parts[6];
10486 xcb_void_cookie_t xcb_ret;
10487 xcb_input_xi_select_events_request_t xcb_out;
10488 unsigned int i;
10489 unsigned int xcb_tmp_len;
10490 char *xcb_tmp;
10492 xcb_out.window = window;
10493 xcb_out.num_mask = num_mask;
10494 memset(xcb_out.pad0, 0, 2);
10496 xcb_parts[2].iov_base = (char *) &xcb_out;
10497 xcb_parts[2].iov_len = sizeof(xcb_out);
10498 xcb_parts[3].iov_base = 0;
10499 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10500 /* xcb_input_event_mask_t masks */
10501 xcb_parts[4].iov_base = (char *) masks;
10502 xcb_parts[4].iov_len = 0;
10503 xcb_tmp = (char *)masks;
10504 for(i=0; i<num_mask; i++) {
10505 xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
10506 xcb_parts[4].iov_len += xcb_tmp_len;
10507 xcb_tmp += xcb_tmp_len;
10509 xcb_parts[5].iov_base = 0;
10510 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
10512 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10513 return xcb_ret;
10517 /*****************************************************************************
10519 ** xcb_input_xi_query_version_cookie_t xcb_input_xi_query_version
10521 ** @param xcb_connection_t *c
10522 ** @param uint16_t major_version
10523 ** @param uint16_t minor_version
10524 ** @returns xcb_input_xi_query_version_cookie_t
10526 *****************************************************************************/
10528 xcb_input_xi_query_version_cookie_t
10529 xcb_input_xi_query_version (xcb_connection_t *c /**< */,
10530 uint16_t major_version /**< */,
10531 uint16_t minor_version /**< */)
10533 static const xcb_protocol_request_t xcb_req = {
10534 /* count */ 2,
10535 /* ext */ &xcb_input_id,
10536 /* opcode */ XCB_INPUT_XI_QUERY_VERSION,
10537 /* isvoid */ 0
10540 struct iovec xcb_parts[4];
10541 xcb_input_xi_query_version_cookie_t xcb_ret;
10542 xcb_input_xi_query_version_request_t xcb_out;
10544 xcb_out.major_version = major_version;
10545 xcb_out.minor_version = minor_version;
10547 xcb_parts[2].iov_base = (char *) &xcb_out;
10548 xcb_parts[2].iov_len = sizeof(xcb_out);
10549 xcb_parts[3].iov_base = 0;
10550 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10552 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
10553 return xcb_ret;
10557 /*****************************************************************************
10559 ** xcb_input_xi_query_version_cookie_t xcb_input_xi_query_version_unchecked
10561 ** @param xcb_connection_t *c
10562 ** @param uint16_t major_version
10563 ** @param uint16_t minor_version
10564 ** @returns xcb_input_xi_query_version_cookie_t
10566 *****************************************************************************/
10568 xcb_input_xi_query_version_cookie_t
10569 xcb_input_xi_query_version_unchecked (xcb_connection_t *c /**< */,
10570 uint16_t major_version /**< */,
10571 uint16_t minor_version /**< */)
10573 static const xcb_protocol_request_t xcb_req = {
10574 /* count */ 2,
10575 /* ext */ &xcb_input_id,
10576 /* opcode */ XCB_INPUT_XI_QUERY_VERSION,
10577 /* isvoid */ 0
10580 struct iovec xcb_parts[4];
10581 xcb_input_xi_query_version_cookie_t xcb_ret;
10582 xcb_input_xi_query_version_request_t xcb_out;
10584 xcb_out.major_version = major_version;
10585 xcb_out.minor_version = minor_version;
10587 xcb_parts[2].iov_base = (char *) &xcb_out;
10588 xcb_parts[2].iov_len = sizeof(xcb_out);
10589 xcb_parts[3].iov_base = 0;
10590 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
10592 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
10593 return xcb_ret;
10597 /*****************************************************************************
10599 ** xcb_input_xi_query_version_reply_t * xcb_input_xi_query_version_reply
10601 ** @param xcb_connection_t *c
10602 ** @param xcb_input_xi_query_version_cookie_t cookie
10603 ** @param xcb_generic_error_t **e
10604 ** @returns xcb_input_xi_query_version_reply_t *
10606 *****************************************************************************/
10608 xcb_input_xi_query_version_reply_t *
10609 xcb_input_xi_query_version_reply (xcb_connection_t *c /**< */,
10610 xcb_input_xi_query_version_cookie_t cookie /**< */,
10611 xcb_generic_error_t **e /**< */)
10613 return (xcb_input_xi_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
10617 xcb_input_button_class_sizeof (const void *_buffer /**< */)
10619 char *xcb_tmp = (char *)_buffer;
10620 const xcb_input_button_class_t *_aux = (xcb_input_button_class_t *)_buffer;
10621 unsigned int xcb_buffer_len = 0;
10622 unsigned int xcb_block_len = 0;
10623 unsigned int xcb_pad = 0;
10624 unsigned int xcb_align_to = 0;
10627 xcb_block_len += sizeof(xcb_input_button_class_t);
10628 xcb_tmp += xcb_block_len;
10629 xcb_buffer_len += xcb_block_len;
10630 xcb_block_len = 0;
10631 /* state */
10632 xcb_block_len += ((_aux->num_buttons + 31) / 32) * sizeof(xcb_atom_t);
10633 xcb_tmp += xcb_block_len;
10634 xcb_align_to = ALIGNOF(uint32_t);
10635 /* insert padding */
10636 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10637 xcb_buffer_len += xcb_block_len + xcb_pad;
10638 if (0 != xcb_pad) {
10639 xcb_tmp += xcb_pad;
10640 xcb_pad = 0;
10642 xcb_block_len = 0;
10643 /* labels */
10644 xcb_block_len += _aux->num_buttons * sizeof(xcb_atom_t);
10645 xcb_tmp += xcb_block_len;
10646 xcb_align_to = ALIGNOF(xcb_atom_t);
10647 /* insert padding */
10648 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10649 xcb_buffer_len += xcb_block_len + xcb_pad;
10650 if (0 != xcb_pad) {
10651 xcb_tmp += xcb_pad;
10652 xcb_pad = 0;
10654 xcb_block_len = 0;
10656 return xcb_buffer_len;
10660 /*****************************************************************************
10662 ** uint32_t * xcb_input_button_class_state
10664 ** @param const xcb_input_button_class_t *R
10665 ** @returns uint32_t *
10667 *****************************************************************************/
10669 uint32_t *
10670 xcb_input_button_class_state (const xcb_input_button_class_t *R /**< */)
10672 return (uint32_t *) (R + 1);
10676 /*****************************************************************************
10678 ** int xcb_input_button_class_state_length
10680 ** @param const xcb_input_button_class_t *R
10681 ** @returns int
10683 *****************************************************************************/
10686 xcb_input_button_class_state_length (const xcb_input_button_class_t *R /**< */)
10688 return ((R->num_buttons + 31) / 32);
10692 /*****************************************************************************
10694 ** xcb_generic_iterator_t xcb_input_button_class_state_end
10696 ** @param const xcb_input_button_class_t *R
10697 ** @returns xcb_generic_iterator_t
10699 *****************************************************************************/
10701 xcb_generic_iterator_t
10702 xcb_input_button_class_state_end (const xcb_input_button_class_t *R /**< */)
10704 xcb_generic_iterator_t i;
10705 i.data = ((uint32_t *) (R + 1)) + (((R->num_buttons + 31) / 32));
10706 i.rem = 0;
10707 i.index = (char *) i.data - (char *) R;
10708 return i;
10712 /*****************************************************************************
10714 ** xcb_atom_t * xcb_input_button_class_labels
10716 ** @param const xcb_input_button_class_t *R
10717 ** @returns xcb_atom_t *
10719 *****************************************************************************/
10721 xcb_atom_t *
10722 xcb_input_button_class_labels (const xcb_input_button_class_t *R /**< */)
10724 xcb_generic_iterator_t prev = xcb_input_button_class_state_end(R);
10725 return (xcb_atom_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_atom_t, prev.index) + 0);
10729 /*****************************************************************************
10731 ** int xcb_input_button_class_labels_length
10733 ** @param const xcb_input_button_class_t *R
10734 ** @returns int
10736 *****************************************************************************/
10739 xcb_input_button_class_labels_length (const xcb_input_button_class_t *R /**< */)
10741 return R->num_buttons;
10745 /*****************************************************************************
10747 ** xcb_generic_iterator_t xcb_input_button_class_labels_end
10749 ** @param const xcb_input_button_class_t *R
10750 ** @returns xcb_generic_iterator_t
10752 *****************************************************************************/
10754 xcb_generic_iterator_t
10755 xcb_input_button_class_labels_end (const xcb_input_button_class_t *R /**< */)
10757 xcb_generic_iterator_t i;
10758 xcb_generic_iterator_t child = xcb_input_button_class_state_end(R);
10759 i.data = ((xcb_atom_t *) child.data) + (R->num_buttons);
10760 i.rem = 0;
10761 i.index = (char *) i.data - (char *) R;
10762 return i;
10766 /*****************************************************************************
10768 ** void xcb_input_button_class_next
10770 ** @param xcb_input_button_class_iterator_t *i
10771 ** @returns void
10773 *****************************************************************************/
10775 void
10776 xcb_input_button_class_next (xcb_input_button_class_iterator_t *i /**< */)
10778 xcb_input_button_class_t *R = i->data;
10779 xcb_generic_iterator_t child;
10780 child.data = (xcb_input_button_class_t *)(((char *)R) + xcb_input_button_class_sizeof(R));
10781 i->index = (char *) child.data - (char *) i->data;
10782 --i->rem;
10783 i->data = (xcb_input_button_class_t *) child.data;
10787 /*****************************************************************************
10789 ** xcb_generic_iterator_t xcb_input_button_class_end
10791 ** @param xcb_input_button_class_iterator_t i
10792 ** @returns xcb_generic_iterator_t
10794 *****************************************************************************/
10796 xcb_generic_iterator_t
10797 xcb_input_button_class_end (xcb_input_button_class_iterator_t i /**< */)
10799 xcb_generic_iterator_t ret;
10800 while(i.rem > 0)
10801 xcb_input_button_class_next(&i);
10802 ret.data = i.data;
10803 ret.rem = i.rem;
10804 ret.index = i.index;
10805 return ret;
10809 xcb_input_key_class_sizeof (const void *_buffer /**< */)
10811 char *xcb_tmp = (char *)_buffer;
10812 const xcb_input_key_class_t *_aux = (xcb_input_key_class_t *)_buffer;
10813 unsigned int xcb_buffer_len = 0;
10814 unsigned int xcb_block_len = 0;
10815 unsigned int xcb_pad = 0;
10816 unsigned int xcb_align_to = 0;
10819 xcb_block_len += sizeof(xcb_input_key_class_t);
10820 xcb_tmp += xcb_block_len;
10821 xcb_buffer_len += xcb_block_len;
10822 xcb_block_len = 0;
10823 /* keys */
10824 xcb_block_len += _aux->num_keys * sizeof(uint32_t);
10825 xcb_tmp += xcb_block_len;
10826 xcb_align_to = ALIGNOF(uint32_t);
10827 /* insert padding */
10828 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
10829 xcb_buffer_len += xcb_block_len + xcb_pad;
10830 if (0 != xcb_pad) {
10831 xcb_tmp += xcb_pad;
10832 xcb_pad = 0;
10834 xcb_block_len = 0;
10836 return xcb_buffer_len;
10840 /*****************************************************************************
10842 ** uint32_t * xcb_input_key_class_keys
10844 ** @param const xcb_input_key_class_t *R
10845 ** @returns uint32_t *
10847 *****************************************************************************/
10849 uint32_t *
10850 xcb_input_key_class_keys (const xcb_input_key_class_t *R /**< */)
10852 return (uint32_t *) (R + 1);
10856 /*****************************************************************************
10858 ** int xcb_input_key_class_keys_length
10860 ** @param const xcb_input_key_class_t *R
10861 ** @returns int
10863 *****************************************************************************/
10866 xcb_input_key_class_keys_length (const xcb_input_key_class_t *R /**< */)
10868 return R->num_keys;
10872 /*****************************************************************************
10874 ** xcb_generic_iterator_t xcb_input_key_class_keys_end
10876 ** @param const xcb_input_key_class_t *R
10877 ** @returns xcb_generic_iterator_t
10879 *****************************************************************************/
10881 xcb_generic_iterator_t
10882 xcb_input_key_class_keys_end (const xcb_input_key_class_t *R /**< */)
10884 xcb_generic_iterator_t i;
10885 i.data = ((uint32_t *) (R + 1)) + (R->num_keys);
10886 i.rem = 0;
10887 i.index = (char *) i.data - (char *) R;
10888 return i;
10892 /*****************************************************************************
10894 ** void xcb_input_key_class_next
10896 ** @param xcb_input_key_class_iterator_t *i
10897 ** @returns void
10899 *****************************************************************************/
10901 void
10902 xcb_input_key_class_next (xcb_input_key_class_iterator_t *i /**< */)
10904 xcb_input_key_class_t *R = i->data;
10905 xcb_generic_iterator_t child;
10906 child.data = (xcb_input_key_class_t *)(((char *)R) + xcb_input_key_class_sizeof(R));
10907 i->index = (char *) child.data - (char *) i->data;
10908 --i->rem;
10909 i->data = (xcb_input_key_class_t *) child.data;
10913 /*****************************************************************************
10915 ** xcb_generic_iterator_t xcb_input_key_class_end
10917 ** @param xcb_input_key_class_iterator_t i
10918 ** @returns xcb_generic_iterator_t
10920 *****************************************************************************/
10922 xcb_generic_iterator_t
10923 xcb_input_key_class_end (xcb_input_key_class_iterator_t i /**< */)
10925 xcb_generic_iterator_t ret;
10926 while(i.rem > 0)
10927 xcb_input_key_class_next(&i);
10928 ret.data = i.data;
10929 ret.rem = i.rem;
10930 ret.index = i.index;
10931 return ret;
10935 /*****************************************************************************
10937 ** void xcb_input_scroll_class_next
10939 ** @param xcb_input_scroll_class_iterator_t *i
10940 ** @returns void
10942 *****************************************************************************/
10944 void
10945 xcb_input_scroll_class_next (xcb_input_scroll_class_iterator_t *i /**< */)
10947 --i->rem;
10948 ++i->data;
10949 i->index += sizeof(xcb_input_scroll_class_t);
10953 /*****************************************************************************
10955 ** xcb_generic_iterator_t xcb_input_scroll_class_end
10957 ** @param xcb_input_scroll_class_iterator_t i
10958 ** @returns xcb_generic_iterator_t
10960 *****************************************************************************/
10962 xcb_generic_iterator_t
10963 xcb_input_scroll_class_end (xcb_input_scroll_class_iterator_t i /**< */)
10965 xcb_generic_iterator_t ret;
10966 ret.data = i.data + i.rem;
10967 ret.index = i.index + ((char *) ret.data - (char *) i.data);
10968 ret.rem = 0;
10969 return ret;
10973 /*****************************************************************************
10975 ** void xcb_input_touch_class_next
10977 ** @param xcb_input_touch_class_iterator_t *i
10978 ** @returns void
10980 *****************************************************************************/
10982 void
10983 xcb_input_touch_class_next (xcb_input_touch_class_iterator_t *i /**< */)
10985 --i->rem;
10986 ++i->data;
10987 i->index += sizeof(xcb_input_touch_class_t);
10991 /*****************************************************************************
10993 ** xcb_generic_iterator_t xcb_input_touch_class_end
10995 ** @param xcb_input_touch_class_iterator_t i
10996 ** @returns xcb_generic_iterator_t
10998 *****************************************************************************/
11000 xcb_generic_iterator_t
11001 xcb_input_touch_class_end (xcb_input_touch_class_iterator_t i /**< */)
11003 xcb_generic_iterator_t ret;
11004 ret.data = i.data + i.rem;
11005 ret.index = i.index + ((char *) ret.data - (char *) i.data);
11006 ret.rem = 0;
11007 return ret;
11011 /*****************************************************************************
11013 ** void xcb_input_valuator_class_next
11015 ** @param xcb_input_valuator_class_iterator_t *i
11016 ** @returns void
11018 *****************************************************************************/
11020 void
11021 xcb_input_valuator_class_next (xcb_input_valuator_class_iterator_t *i /**< */)
11023 --i->rem;
11024 ++i->data;
11025 i->index += sizeof(xcb_input_valuator_class_t);
11029 /*****************************************************************************
11031 ** xcb_generic_iterator_t xcb_input_valuator_class_end
11033 ** @param xcb_input_valuator_class_iterator_t i
11034 ** @returns xcb_generic_iterator_t
11036 *****************************************************************************/
11038 xcb_generic_iterator_t
11039 xcb_input_valuator_class_end (xcb_input_valuator_class_iterator_t i /**< */)
11041 xcb_generic_iterator_t ret;
11042 ret.data = i.data + i.rem;
11043 ret.index = i.index + ((char *) ret.data - (char *) i.data);
11044 ret.rem = 0;
11045 return ret;
11049 xcb_input_device_class_sizeof (const void *_buffer /**< */)
11051 char *xcb_tmp = (char *)_buffer;
11052 const xcb_input_device_class_t *_aux = (xcb_input_device_class_t *)_buffer;
11053 unsigned int xcb_buffer_len = 0;
11054 unsigned int xcb_block_len = 0;
11055 unsigned int xcb_pad = 0;
11056 unsigned int xcb_align_to = 0;
11059 xcb_block_len += sizeof(xcb_input_device_class_t);
11060 xcb_tmp += xcb_block_len;
11061 xcb_buffer_len += xcb_block_len;
11062 xcb_block_len = 0;
11063 /* uninterpreted_data */
11064 xcb_block_len += ((_aux->len * 4) - 8) * sizeof(uint8_t);
11065 xcb_tmp += xcb_block_len;
11066 xcb_align_to = ALIGNOF(uint8_t);
11067 /* insert padding */
11068 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11069 xcb_buffer_len += xcb_block_len + xcb_pad;
11070 if (0 != xcb_pad) {
11071 xcb_tmp += xcb_pad;
11072 xcb_pad = 0;
11074 xcb_block_len = 0;
11076 return xcb_buffer_len;
11080 /*****************************************************************************
11082 ** uint8_t * xcb_input_device_class_uninterpreted_data
11084 ** @param const xcb_input_device_class_t *R
11085 ** @returns uint8_t *
11087 *****************************************************************************/
11089 uint8_t *
11090 xcb_input_device_class_uninterpreted_data (const xcb_input_device_class_t *R /**< */)
11092 return (uint8_t *) (R + 1);
11096 /*****************************************************************************
11098 ** int xcb_input_device_class_uninterpreted_data_length
11100 ** @param const xcb_input_device_class_t *R
11101 ** @returns int
11103 *****************************************************************************/
11106 xcb_input_device_class_uninterpreted_data_length (const xcb_input_device_class_t *R /**< */)
11108 return ((R->len * 4) - 8);
11112 /*****************************************************************************
11114 ** xcb_generic_iterator_t xcb_input_device_class_uninterpreted_data_end
11116 ** @param const xcb_input_device_class_t *R
11117 ** @returns xcb_generic_iterator_t
11119 *****************************************************************************/
11121 xcb_generic_iterator_t
11122 xcb_input_device_class_uninterpreted_data_end (const xcb_input_device_class_t *R /**< */)
11124 xcb_generic_iterator_t i;
11125 i.data = ((uint8_t *) (R + 1)) + (((R->len * 4) - 8));
11126 i.rem = 0;
11127 i.index = (char *) i.data - (char *) R;
11128 return i;
11132 /*****************************************************************************
11134 ** void xcb_input_device_class_next
11136 ** @param xcb_input_device_class_iterator_t *i
11137 ** @returns void
11139 *****************************************************************************/
11141 void
11142 xcb_input_device_class_next (xcb_input_device_class_iterator_t *i /**< */)
11144 xcb_input_device_class_t *R = i->data;
11145 xcb_generic_iterator_t child;
11146 child.data = (xcb_input_device_class_t *)(((char *)R) + xcb_input_device_class_sizeof(R));
11147 i->index = (char *) child.data - (char *) i->data;
11148 --i->rem;
11149 i->data = (xcb_input_device_class_t *) child.data;
11153 /*****************************************************************************
11155 ** xcb_generic_iterator_t xcb_input_device_class_end
11157 ** @param xcb_input_device_class_iterator_t i
11158 ** @returns xcb_generic_iterator_t
11160 *****************************************************************************/
11162 xcb_generic_iterator_t
11163 xcb_input_device_class_end (xcb_input_device_class_iterator_t i /**< */)
11165 xcb_generic_iterator_t ret;
11166 while(i.rem > 0)
11167 xcb_input_device_class_next(&i);
11168 ret.data = i.data;
11169 ret.rem = i.rem;
11170 ret.index = i.index;
11171 return ret;
11175 xcb_input_xi_device_info_sizeof (const void *_buffer /**< */)
11177 char *xcb_tmp = (char *)_buffer;
11178 const xcb_input_xi_device_info_t *_aux = (xcb_input_xi_device_info_t *)_buffer;
11179 unsigned int xcb_buffer_len = 0;
11180 unsigned int xcb_block_len = 0;
11181 unsigned int xcb_pad = 0;
11182 unsigned int xcb_align_to = 0;
11184 unsigned int i;
11185 unsigned int xcb_tmp_len;
11187 xcb_block_len += sizeof(xcb_input_xi_device_info_t);
11188 xcb_tmp += xcb_block_len;
11189 xcb_buffer_len += xcb_block_len;
11190 xcb_block_len = 0;
11191 /* name */
11192 xcb_block_len += (((_aux->name_len + 3) / 4) * 4) * sizeof(char);
11193 xcb_tmp += xcb_block_len;
11194 xcb_align_to = ALIGNOF(char);
11195 /* insert padding */
11196 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11197 xcb_buffer_len += xcb_block_len + xcb_pad;
11198 if (0 != xcb_pad) {
11199 xcb_tmp += xcb_pad;
11200 xcb_pad = 0;
11202 xcb_block_len = 0;
11203 /* classes */
11204 for(i=0; i<_aux->num_classes; i++) {
11205 xcb_tmp_len = xcb_input_device_class_sizeof(xcb_tmp);
11206 xcb_block_len += xcb_tmp_len;
11207 xcb_tmp += xcb_tmp_len;
11209 xcb_align_to = ALIGNOF(xcb_input_device_class_t);
11210 /* insert padding */
11211 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11212 xcb_buffer_len += xcb_block_len + xcb_pad;
11213 if (0 != xcb_pad) {
11214 xcb_tmp += xcb_pad;
11215 xcb_pad = 0;
11217 xcb_block_len = 0;
11219 return xcb_buffer_len;
11223 /*****************************************************************************
11225 ** char * xcb_input_xi_device_info_name
11227 ** @param const xcb_input_xi_device_info_t *R
11228 ** @returns char *
11230 *****************************************************************************/
11232 char *
11233 xcb_input_xi_device_info_name (const xcb_input_xi_device_info_t *R /**< */)
11235 return (char *) (R + 1);
11239 /*****************************************************************************
11241 ** int xcb_input_xi_device_info_name_length
11243 ** @param const xcb_input_xi_device_info_t *R
11244 ** @returns int
11246 *****************************************************************************/
11249 xcb_input_xi_device_info_name_length (const xcb_input_xi_device_info_t *R /**< */)
11251 return (((R->name_len + 3) / 4) * 4);
11255 /*****************************************************************************
11257 ** xcb_generic_iterator_t xcb_input_xi_device_info_name_end
11259 ** @param const xcb_input_xi_device_info_t *R
11260 ** @returns xcb_generic_iterator_t
11262 *****************************************************************************/
11264 xcb_generic_iterator_t
11265 xcb_input_xi_device_info_name_end (const xcb_input_xi_device_info_t *R /**< */)
11267 xcb_generic_iterator_t i;
11268 i.data = ((char *) (R + 1)) + ((((R->name_len + 3) / 4) * 4));
11269 i.rem = 0;
11270 i.index = (char *) i.data - (char *) R;
11271 return i;
11275 /*****************************************************************************
11277 ** int xcb_input_xi_device_info_classes_length
11279 ** @param const xcb_input_xi_device_info_t *R
11280 ** @returns int
11282 *****************************************************************************/
11285 xcb_input_xi_device_info_classes_length (const xcb_input_xi_device_info_t *R /**< */)
11287 return R->num_classes;
11291 /*****************************************************************************
11293 ** xcb_input_device_class_iterator_t xcb_input_xi_device_info_classes_iterator
11295 ** @param const xcb_input_xi_device_info_t *R
11296 ** @returns xcb_input_device_class_iterator_t
11298 *****************************************************************************/
11300 xcb_input_device_class_iterator_t
11301 xcb_input_xi_device_info_classes_iterator (const xcb_input_xi_device_info_t *R /**< */)
11303 xcb_input_device_class_iterator_t i;
11304 xcb_generic_iterator_t prev = xcb_input_xi_device_info_name_end(R);
11305 i.data = (xcb_input_device_class_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_input_device_class_t, prev.index));
11306 i.rem = R->num_classes;
11307 i.index = (char *) i.data - (char *) R;
11308 return i;
11312 /*****************************************************************************
11314 ** void xcb_input_xi_device_info_next
11316 ** @param xcb_input_xi_device_info_iterator_t *i
11317 ** @returns void
11319 *****************************************************************************/
11321 void
11322 xcb_input_xi_device_info_next (xcb_input_xi_device_info_iterator_t *i /**< */)
11324 xcb_input_xi_device_info_t *R = i->data;
11325 xcb_generic_iterator_t child;
11326 child.data = (xcb_input_xi_device_info_t *)(((char *)R) + xcb_input_xi_device_info_sizeof(R));
11327 i->index = (char *) child.data - (char *) i->data;
11328 --i->rem;
11329 i->data = (xcb_input_xi_device_info_t *) child.data;
11333 /*****************************************************************************
11335 ** xcb_generic_iterator_t xcb_input_xi_device_info_end
11337 ** @param xcb_input_xi_device_info_iterator_t i
11338 ** @returns xcb_generic_iterator_t
11340 *****************************************************************************/
11342 xcb_generic_iterator_t
11343 xcb_input_xi_device_info_end (xcb_input_xi_device_info_iterator_t i /**< */)
11345 xcb_generic_iterator_t ret;
11346 while(i.rem > 0)
11347 xcb_input_xi_device_info_next(&i);
11348 ret.data = i.data;
11349 ret.rem = i.rem;
11350 ret.index = i.index;
11351 return ret;
11355 xcb_input_xi_query_device_sizeof (const void *_buffer /**< */)
11357 char *xcb_tmp = (char *)_buffer;
11358 const xcb_input_xi_query_device_reply_t *_aux = (xcb_input_xi_query_device_reply_t *)_buffer;
11359 unsigned int xcb_buffer_len = 0;
11360 unsigned int xcb_block_len = 0;
11361 unsigned int xcb_pad = 0;
11362 unsigned int xcb_align_to = 0;
11364 unsigned int i;
11365 unsigned int xcb_tmp_len;
11367 xcb_block_len += sizeof(xcb_input_xi_query_device_reply_t);
11368 xcb_tmp += xcb_block_len;
11369 xcb_buffer_len += xcb_block_len;
11370 xcb_block_len = 0;
11371 /* infos */
11372 for(i=0; i<_aux->num_infos; i++) {
11373 xcb_tmp_len = xcb_input_xi_device_info_sizeof(xcb_tmp);
11374 xcb_block_len += xcb_tmp_len;
11375 xcb_tmp += xcb_tmp_len;
11377 xcb_align_to = ALIGNOF(xcb_input_xi_device_info_t);
11378 /* insert padding */
11379 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11380 xcb_buffer_len += xcb_block_len + xcb_pad;
11381 if (0 != xcb_pad) {
11382 xcb_tmp += xcb_pad;
11383 xcb_pad = 0;
11385 xcb_block_len = 0;
11387 return xcb_buffer_len;
11391 /*****************************************************************************
11393 ** xcb_input_xi_query_device_cookie_t xcb_input_xi_query_device
11395 ** @param xcb_connection_t *c
11396 ** @param xcb_input_device_id_t deviceid
11397 ** @returns xcb_input_xi_query_device_cookie_t
11399 *****************************************************************************/
11401 xcb_input_xi_query_device_cookie_t
11402 xcb_input_xi_query_device (xcb_connection_t *c /**< */,
11403 xcb_input_device_id_t deviceid /**< */)
11405 static const xcb_protocol_request_t xcb_req = {
11406 /* count */ 2,
11407 /* ext */ &xcb_input_id,
11408 /* opcode */ XCB_INPUT_XI_QUERY_DEVICE,
11409 /* isvoid */ 0
11412 struct iovec xcb_parts[4];
11413 xcb_input_xi_query_device_cookie_t xcb_ret;
11414 xcb_input_xi_query_device_request_t xcb_out;
11416 xcb_out.deviceid = deviceid;
11417 memset(xcb_out.pad0, 0, 2);
11419 xcb_parts[2].iov_base = (char *) &xcb_out;
11420 xcb_parts[2].iov_len = sizeof(xcb_out);
11421 xcb_parts[3].iov_base = 0;
11422 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11424 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11425 return xcb_ret;
11429 /*****************************************************************************
11431 ** xcb_input_xi_query_device_cookie_t xcb_input_xi_query_device_unchecked
11433 ** @param xcb_connection_t *c
11434 ** @param xcb_input_device_id_t deviceid
11435 ** @returns xcb_input_xi_query_device_cookie_t
11437 *****************************************************************************/
11439 xcb_input_xi_query_device_cookie_t
11440 xcb_input_xi_query_device_unchecked (xcb_connection_t *c /**< */,
11441 xcb_input_device_id_t deviceid /**< */)
11443 static const xcb_protocol_request_t xcb_req = {
11444 /* count */ 2,
11445 /* ext */ &xcb_input_id,
11446 /* opcode */ XCB_INPUT_XI_QUERY_DEVICE,
11447 /* isvoid */ 0
11450 struct iovec xcb_parts[4];
11451 xcb_input_xi_query_device_cookie_t xcb_ret;
11452 xcb_input_xi_query_device_request_t xcb_out;
11454 xcb_out.deviceid = deviceid;
11455 memset(xcb_out.pad0, 0, 2);
11457 xcb_parts[2].iov_base = (char *) &xcb_out;
11458 xcb_parts[2].iov_len = sizeof(xcb_out);
11459 xcb_parts[3].iov_base = 0;
11460 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11462 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11463 return xcb_ret;
11467 /*****************************************************************************
11469 ** int xcb_input_xi_query_device_infos_length
11471 ** @param const xcb_input_xi_query_device_reply_t *R
11472 ** @returns int
11474 *****************************************************************************/
11477 xcb_input_xi_query_device_infos_length (const xcb_input_xi_query_device_reply_t *R /**< */)
11479 return R->num_infos;
11483 /*****************************************************************************
11485 ** xcb_input_xi_device_info_iterator_t xcb_input_xi_query_device_infos_iterator
11487 ** @param const xcb_input_xi_query_device_reply_t *R
11488 ** @returns xcb_input_xi_device_info_iterator_t
11490 *****************************************************************************/
11492 xcb_input_xi_device_info_iterator_t
11493 xcb_input_xi_query_device_infos_iterator (const xcb_input_xi_query_device_reply_t *R /**< */)
11495 xcb_input_xi_device_info_iterator_t i;
11496 i.data = (xcb_input_xi_device_info_t *) (R + 1);
11497 i.rem = R->num_infos;
11498 i.index = (char *) i.data - (char *) R;
11499 return i;
11503 /*****************************************************************************
11505 ** xcb_input_xi_query_device_reply_t * xcb_input_xi_query_device_reply
11507 ** @param xcb_connection_t *c
11508 ** @param xcb_input_xi_query_device_cookie_t cookie
11509 ** @param xcb_generic_error_t **e
11510 ** @returns xcb_input_xi_query_device_reply_t *
11512 *****************************************************************************/
11514 xcb_input_xi_query_device_reply_t *
11515 xcb_input_xi_query_device_reply (xcb_connection_t *c /**< */,
11516 xcb_input_xi_query_device_cookie_t cookie /**< */,
11517 xcb_generic_error_t **e /**< */)
11519 return (xcb_input_xi_query_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
11523 /*****************************************************************************
11525 ** xcb_void_cookie_t xcb_input_xi_set_focus_checked
11527 ** @param xcb_connection_t *c
11528 ** @param xcb_window_t window
11529 ** @param xcb_timestamp_t time
11530 ** @param xcb_input_device_id_t deviceid
11531 ** @returns xcb_void_cookie_t
11533 *****************************************************************************/
11535 xcb_void_cookie_t
11536 xcb_input_xi_set_focus_checked (xcb_connection_t *c /**< */,
11537 xcb_window_t window /**< */,
11538 xcb_timestamp_t time /**< */,
11539 xcb_input_device_id_t deviceid /**< */)
11541 static const xcb_protocol_request_t xcb_req = {
11542 /* count */ 2,
11543 /* ext */ &xcb_input_id,
11544 /* opcode */ XCB_INPUT_XI_SET_FOCUS,
11545 /* isvoid */ 1
11548 struct iovec xcb_parts[4];
11549 xcb_void_cookie_t xcb_ret;
11550 xcb_input_xi_set_focus_request_t xcb_out;
11552 xcb_out.window = window;
11553 xcb_out.time = time;
11554 xcb_out.deviceid = deviceid;
11555 memset(xcb_out.pad0, 0, 2);
11557 xcb_parts[2].iov_base = (char *) &xcb_out;
11558 xcb_parts[2].iov_len = sizeof(xcb_out);
11559 xcb_parts[3].iov_base = 0;
11560 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11562 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11563 return xcb_ret;
11567 /*****************************************************************************
11569 ** xcb_void_cookie_t xcb_input_xi_set_focus
11571 ** @param xcb_connection_t *c
11572 ** @param xcb_window_t window
11573 ** @param xcb_timestamp_t time
11574 ** @param xcb_input_device_id_t deviceid
11575 ** @returns xcb_void_cookie_t
11577 *****************************************************************************/
11579 xcb_void_cookie_t
11580 xcb_input_xi_set_focus (xcb_connection_t *c /**< */,
11581 xcb_window_t window /**< */,
11582 xcb_timestamp_t time /**< */,
11583 xcb_input_device_id_t deviceid /**< */)
11585 static const xcb_protocol_request_t xcb_req = {
11586 /* count */ 2,
11587 /* ext */ &xcb_input_id,
11588 /* opcode */ XCB_INPUT_XI_SET_FOCUS,
11589 /* isvoid */ 1
11592 struct iovec xcb_parts[4];
11593 xcb_void_cookie_t xcb_ret;
11594 xcb_input_xi_set_focus_request_t xcb_out;
11596 xcb_out.window = window;
11597 xcb_out.time = time;
11598 xcb_out.deviceid = deviceid;
11599 memset(xcb_out.pad0, 0, 2);
11601 xcb_parts[2].iov_base = (char *) &xcb_out;
11602 xcb_parts[2].iov_len = sizeof(xcb_out);
11603 xcb_parts[3].iov_base = 0;
11604 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11606 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11607 return xcb_ret;
11611 /*****************************************************************************
11613 ** xcb_input_xi_get_focus_cookie_t xcb_input_xi_get_focus
11615 ** @param xcb_connection_t *c
11616 ** @param xcb_input_device_id_t deviceid
11617 ** @returns xcb_input_xi_get_focus_cookie_t
11619 *****************************************************************************/
11621 xcb_input_xi_get_focus_cookie_t
11622 xcb_input_xi_get_focus (xcb_connection_t *c /**< */,
11623 xcb_input_device_id_t deviceid /**< */)
11625 static const xcb_protocol_request_t xcb_req = {
11626 /* count */ 2,
11627 /* ext */ &xcb_input_id,
11628 /* opcode */ XCB_INPUT_XI_GET_FOCUS,
11629 /* isvoid */ 0
11632 struct iovec xcb_parts[4];
11633 xcb_input_xi_get_focus_cookie_t xcb_ret;
11634 xcb_input_xi_get_focus_request_t xcb_out;
11636 xcb_out.deviceid = deviceid;
11637 memset(xcb_out.pad0, 0, 2);
11639 xcb_parts[2].iov_base = (char *) &xcb_out;
11640 xcb_parts[2].iov_len = sizeof(xcb_out);
11641 xcb_parts[3].iov_base = 0;
11642 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11644 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11645 return xcb_ret;
11649 /*****************************************************************************
11651 ** xcb_input_xi_get_focus_cookie_t xcb_input_xi_get_focus_unchecked
11653 ** @param xcb_connection_t *c
11654 ** @param xcb_input_device_id_t deviceid
11655 ** @returns xcb_input_xi_get_focus_cookie_t
11657 *****************************************************************************/
11659 xcb_input_xi_get_focus_cookie_t
11660 xcb_input_xi_get_focus_unchecked (xcb_connection_t *c /**< */,
11661 xcb_input_device_id_t deviceid /**< */)
11663 static const xcb_protocol_request_t xcb_req = {
11664 /* count */ 2,
11665 /* ext */ &xcb_input_id,
11666 /* opcode */ XCB_INPUT_XI_GET_FOCUS,
11667 /* isvoid */ 0
11670 struct iovec xcb_parts[4];
11671 xcb_input_xi_get_focus_cookie_t xcb_ret;
11672 xcb_input_xi_get_focus_request_t xcb_out;
11674 xcb_out.deviceid = deviceid;
11675 memset(xcb_out.pad0, 0, 2);
11677 xcb_parts[2].iov_base = (char *) &xcb_out;
11678 xcb_parts[2].iov_len = sizeof(xcb_out);
11679 xcb_parts[3].iov_base = 0;
11680 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11682 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11683 return xcb_ret;
11687 /*****************************************************************************
11689 ** xcb_input_xi_get_focus_reply_t * xcb_input_xi_get_focus_reply
11691 ** @param xcb_connection_t *c
11692 ** @param xcb_input_xi_get_focus_cookie_t cookie
11693 ** @param xcb_generic_error_t **e
11694 ** @returns xcb_input_xi_get_focus_reply_t *
11696 *****************************************************************************/
11698 xcb_input_xi_get_focus_reply_t *
11699 xcb_input_xi_get_focus_reply (xcb_connection_t *c /**< */,
11700 xcb_input_xi_get_focus_cookie_t cookie /**< */,
11701 xcb_generic_error_t **e /**< */)
11703 return (xcb_input_xi_get_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
11707 xcb_input_xi_grab_device_sizeof (const void *_buffer /**< */)
11709 char *xcb_tmp = (char *)_buffer;
11710 const xcb_input_xi_grab_device_request_t *_aux = (xcb_input_xi_grab_device_request_t *)_buffer;
11711 unsigned int xcb_buffer_len = 0;
11712 unsigned int xcb_block_len = 0;
11713 unsigned int xcb_pad = 0;
11714 unsigned int xcb_align_to = 0;
11717 xcb_block_len += sizeof(xcb_input_xi_grab_device_request_t);
11718 xcb_tmp += xcb_block_len;
11719 xcb_buffer_len += xcb_block_len;
11720 xcb_block_len = 0;
11721 /* mask */
11722 xcb_block_len += _aux->mask_len * sizeof(uint32_t);
11723 xcb_tmp += xcb_block_len;
11724 xcb_align_to = ALIGNOF(uint32_t);
11725 /* insert padding */
11726 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
11727 xcb_buffer_len += xcb_block_len + xcb_pad;
11728 if (0 != xcb_pad) {
11729 xcb_tmp += xcb_pad;
11730 xcb_pad = 0;
11732 xcb_block_len = 0;
11734 return xcb_buffer_len;
11738 /*****************************************************************************
11740 ** xcb_input_xi_grab_device_cookie_t xcb_input_xi_grab_device
11742 ** @param xcb_connection_t *c
11743 ** @param xcb_window_t window
11744 ** @param xcb_timestamp_t time
11745 ** @param xcb_cursor_t cursor
11746 ** @param xcb_input_device_id_t deviceid
11747 ** @param uint8_t mode
11748 ** @param uint8_t paired_device_mode
11749 ** @param uint8_t owner_events
11750 ** @param uint16_t mask_len
11751 ** @param const uint32_t *mask
11752 ** @returns xcb_input_xi_grab_device_cookie_t
11754 *****************************************************************************/
11756 xcb_input_xi_grab_device_cookie_t
11757 xcb_input_xi_grab_device (xcb_connection_t *c /**< */,
11758 xcb_window_t window /**< */,
11759 xcb_timestamp_t time /**< */,
11760 xcb_cursor_t cursor /**< */,
11761 xcb_input_device_id_t deviceid /**< */,
11762 uint8_t mode /**< */,
11763 uint8_t paired_device_mode /**< */,
11764 uint8_t owner_events /**< */,
11765 uint16_t mask_len /**< */,
11766 const uint32_t *mask /**< */)
11768 static const xcb_protocol_request_t xcb_req = {
11769 /* count */ 4,
11770 /* ext */ &xcb_input_id,
11771 /* opcode */ XCB_INPUT_XI_GRAB_DEVICE,
11772 /* isvoid */ 0
11775 struct iovec xcb_parts[6];
11776 xcb_input_xi_grab_device_cookie_t xcb_ret;
11777 xcb_input_xi_grab_device_request_t xcb_out;
11779 xcb_out.window = window;
11780 xcb_out.time = time;
11781 xcb_out.cursor = cursor;
11782 xcb_out.deviceid = deviceid;
11783 xcb_out.mode = mode;
11784 xcb_out.paired_device_mode = paired_device_mode;
11785 xcb_out.owner_events = owner_events;
11786 xcb_out.pad0 = 0;
11787 xcb_out.mask_len = mask_len;
11789 xcb_parts[2].iov_base = (char *) &xcb_out;
11790 xcb_parts[2].iov_len = sizeof(xcb_out);
11791 xcb_parts[3].iov_base = 0;
11792 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11793 /* uint32_t mask */
11794 xcb_parts[4].iov_base = (char *) mask;
11795 xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
11796 xcb_parts[5].iov_base = 0;
11797 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
11799 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11800 return xcb_ret;
11804 /*****************************************************************************
11806 ** xcb_input_xi_grab_device_cookie_t xcb_input_xi_grab_device_unchecked
11808 ** @param xcb_connection_t *c
11809 ** @param xcb_window_t window
11810 ** @param xcb_timestamp_t time
11811 ** @param xcb_cursor_t cursor
11812 ** @param xcb_input_device_id_t deviceid
11813 ** @param uint8_t mode
11814 ** @param uint8_t paired_device_mode
11815 ** @param uint8_t owner_events
11816 ** @param uint16_t mask_len
11817 ** @param const uint32_t *mask
11818 ** @returns xcb_input_xi_grab_device_cookie_t
11820 *****************************************************************************/
11822 xcb_input_xi_grab_device_cookie_t
11823 xcb_input_xi_grab_device_unchecked (xcb_connection_t *c /**< */,
11824 xcb_window_t window /**< */,
11825 xcb_timestamp_t time /**< */,
11826 xcb_cursor_t cursor /**< */,
11827 xcb_input_device_id_t deviceid /**< */,
11828 uint8_t mode /**< */,
11829 uint8_t paired_device_mode /**< */,
11830 uint8_t owner_events /**< */,
11831 uint16_t mask_len /**< */,
11832 const uint32_t *mask /**< */)
11834 static const xcb_protocol_request_t xcb_req = {
11835 /* count */ 4,
11836 /* ext */ &xcb_input_id,
11837 /* opcode */ XCB_INPUT_XI_GRAB_DEVICE,
11838 /* isvoid */ 0
11841 struct iovec xcb_parts[6];
11842 xcb_input_xi_grab_device_cookie_t xcb_ret;
11843 xcb_input_xi_grab_device_request_t xcb_out;
11845 xcb_out.window = window;
11846 xcb_out.time = time;
11847 xcb_out.cursor = cursor;
11848 xcb_out.deviceid = deviceid;
11849 xcb_out.mode = mode;
11850 xcb_out.paired_device_mode = paired_device_mode;
11851 xcb_out.owner_events = owner_events;
11852 xcb_out.pad0 = 0;
11853 xcb_out.mask_len = mask_len;
11855 xcb_parts[2].iov_base = (char *) &xcb_out;
11856 xcb_parts[2].iov_len = sizeof(xcb_out);
11857 xcb_parts[3].iov_base = 0;
11858 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11859 /* uint32_t mask */
11860 xcb_parts[4].iov_base = (char *) mask;
11861 xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
11862 xcb_parts[5].iov_base = 0;
11863 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
11865 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11866 return xcb_ret;
11870 /*****************************************************************************
11872 ** xcb_input_xi_grab_device_reply_t * xcb_input_xi_grab_device_reply
11874 ** @param xcb_connection_t *c
11875 ** @param xcb_input_xi_grab_device_cookie_t cookie
11876 ** @param xcb_generic_error_t **e
11877 ** @returns xcb_input_xi_grab_device_reply_t *
11879 *****************************************************************************/
11881 xcb_input_xi_grab_device_reply_t *
11882 xcb_input_xi_grab_device_reply (xcb_connection_t *c /**< */,
11883 xcb_input_xi_grab_device_cookie_t cookie /**< */,
11884 xcb_generic_error_t **e /**< */)
11886 return (xcb_input_xi_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
11890 /*****************************************************************************
11892 ** xcb_void_cookie_t xcb_input_xi_ungrab_device_checked
11894 ** @param xcb_connection_t *c
11895 ** @param xcb_timestamp_t time
11896 ** @param xcb_input_device_id_t deviceid
11897 ** @returns xcb_void_cookie_t
11899 *****************************************************************************/
11901 xcb_void_cookie_t
11902 xcb_input_xi_ungrab_device_checked (xcb_connection_t *c /**< */,
11903 xcb_timestamp_t time /**< */,
11904 xcb_input_device_id_t deviceid /**< */)
11906 static const xcb_protocol_request_t xcb_req = {
11907 /* count */ 2,
11908 /* ext */ &xcb_input_id,
11909 /* opcode */ XCB_INPUT_XI_UNGRAB_DEVICE,
11910 /* isvoid */ 1
11913 struct iovec xcb_parts[4];
11914 xcb_void_cookie_t xcb_ret;
11915 xcb_input_xi_ungrab_device_request_t xcb_out;
11917 xcb_out.time = time;
11918 xcb_out.deviceid = deviceid;
11919 memset(xcb_out.pad0, 0, 2);
11921 xcb_parts[2].iov_base = (char *) &xcb_out;
11922 xcb_parts[2].iov_len = sizeof(xcb_out);
11923 xcb_parts[3].iov_base = 0;
11924 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11926 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
11927 return xcb_ret;
11931 /*****************************************************************************
11933 ** xcb_void_cookie_t xcb_input_xi_ungrab_device
11935 ** @param xcb_connection_t *c
11936 ** @param xcb_timestamp_t time
11937 ** @param xcb_input_device_id_t deviceid
11938 ** @returns xcb_void_cookie_t
11940 *****************************************************************************/
11942 xcb_void_cookie_t
11943 xcb_input_xi_ungrab_device (xcb_connection_t *c /**< */,
11944 xcb_timestamp_t time /**< */,
11945 xcb_input_device_id_t deviceid /**< */)
11947 static const xcb_protocol_request_t xcb_req = {
11948 /* count */ 2,
11949 /* ext */ &xcb_input_id,
11950 /* opcode */ XCB_INPUT_XI_UNGRAB_DEVICE,
11951 /* isvoid */ 1
11954 struct iovec xcb_parts[4];
11955 xcb_void_cookie_t xcb_ret;
11956 xcb_input_xi_ungrab_device_request_t xcb_out;
11958 xcb_out.time = time;
11959 xcb_out.deviceid = deviceid;
11960 memset(xcb_out.pad0, 0, 2);
11962 xcb_parts[2].iov_base = (char *) &xcb_out;
11963 xcb_parts[2].iov_len = sizeof(xcb_out);
11964 xcb_parts[3].iov_base = 0;
11965 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
11967 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
11968 return xcb_ret;
11972 /*****************************************************************************
11974 ** xcb_void_cookie_t xcb_input_xi_allow_events_checked
11976 ** @param xcb_connection_t *c
11977 ** @param xcb_timestamp_t time
11978 ** @param xcb_input_device_id_t deviceid
11979 ** @param uint8_t event_mode
11980 ** @param uint32_t touchid
11981 ** @param xcb_window_t grab_window
11982 ** @returns xcb_void_cookie_t
11984 *****************************************************************************/
11986 xcb_void_cookie_t
11987 xcb_input_xi_allow_events_checked (xcb_connection_t *c /**< */,
11988 xcb_timestamp_t time /**< */,
11989 xcb_input_device_id_t deviceid /**< */,
11990 uint8_t event_mode /**< */,
11991 uint32_t touchid /**< */,
11992 xcb_window_t grab_window /**< */)
11994 static const xcb_protocol_request_t xcb_req = {
11995 /* count */ 2,
11996 /* ext */ &xcb_input_id,
11997 /* opcode */ XCB_INPUT_XI_ALLOW_EVENTS,
11998 /* isvoid */ 1
12001 struct iovec xcb_parts[4];
12002 xcb_void_cookie_t xcb_ret;
12003 xcb_input_xi_allow_events_request_t xcb_out;
12005 xcb_out.time = time;
12006 xcb_out.deviceid = deviceid;
12007 xcb_out.event_mode = event_mode;
12008 xcb_out.pad0 = 0;
12009 xcb_out.touchid = touchid;
12010 xcb_out.grab_window = grab_window;
12012 xcb_parts[2].iov_base = (char *) &xcb_out;
12013 xcb_parts[2].iov_len = sizeof(xcb_out);
12014 xcb_parts[3].iov_base = 0;
12015 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12017 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12018 return xcb_ret;
12022 /*****************************************************************************
12024 ** xcb_void_cookie_t xcb_input_xi_allow_events
12026 ** @param xcb_connection_t *c
12027 ** @param xcb_timestamp_t time
12028 ** @param xcb_input_device_id_t deviceid
12029 ** @param uint8_t event_mode
12030 ** @param uint32_t touchid
12031 ** @param xcb_window_t grab_window
12032 ** @returns xcb_void_cookie_t
12034 *****************************************************************************/
12036 xcb_void_cookie_t
12037 xcb_input_xi_allow_events (xcb_connection_t *c /**< */,
12038 xcb_timestamp_t time /**< */,
12039 xcb_input_device_id_t deviceid /**< */,
12040 uint8_t event_mode /**< */,
12041 uint32_t touchid /**< */,
12042 xcb_window_t grab_window /**< */)
12044 static const xcb_protocol_request_t xcb_req = {
12045 /* count */ 2,
12046 /* ext */ &xcb_input_id,
12047 /* opcode */ XCB_INPUT_XI_ALLOW_EVENTS,
12048 /* isvoid */ 1
12051 struct iovec xcb_parts[4];
12052 xcb_void_cookie_t xcb_ret;
12053 xcb_input_xi_allow_events_request_t xcb_out;
12055 xcb_out.time = time;
12056 xcb_out.deviceid = deviceid;
12057 xcb_out.event_mode = event_mode;
12058 xcb_out.pad0 = 0;
12059 xcb_out.touchid = touchid;
12060 xcb_out.grab_window = grab_window;
12062 xcb_parts[2].iov_base = (char *) &xcb_out;
12063 xcb_parts[2].iov_len = sizeof(xcb_out);
12064 xcb_parts[3].iov_base = 0;
12065 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12067 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12068 return xcb_ret;
12072 /*****************************************************************************
12074 ** void xcb_input_grab_modifier_info_next
12076 ** @param xcb_input_grab_modifier_info_iterator_t *i
12077 ** @returns void
12079 *****************************************************************************/
12081 void
12082 xcb_input_grab_modifier_info_next (xcb_input_grab_modifier_info_iterator_t *i /**< */)
12084 --i->rem;
12085 ++i->data;
12086 i->index += sizeof(xcb_input_grab_modifier_info_t);
12090 /*****************************************************************************
12092 ** xcb_generic_iterator_t xcb_input_grab_modifier_info_end
12094 ** @param xcb_input_grab_modifier_info_iterator_t i
12095 ** @returns xcb_generic_iterator_t
12097 *****************************************************************************/
12099 xcb_generic_iterator_t
12100 xcb_input_grab_modifier_info_end (xcb_input_grab_modifier_info_iterator_t i /**< */)
12102 xcb_generic_iterator_t ret;
12103 ret.data = i.data + i.rem;
12104 ret.index = i.index + ((char *) ret.data - (char *) i.data);
12105 ret.rem = 0;
12106 return ret;
12110 xcb_input_xi_passive_grab_device_sizeof (const void *_buffer /**< */)
12112 char *xcb_tmp = (char *)_buffer;
12113 const xcb_input_xi_passive_grab_device_request_t *_aux = (xcb_input_xi_passive_grab_device_request_t *)_buffer;
12114 unsigned int xcb_buffer_len = 0;
12115 unsigned int xcb_block_len = 0;
12116 unsigned int xcb_pad = 0;
12117 unsigned int xcb_align_to = 0;
12120 xcb_block_len += sizeof(xcb_input_xi_passive_grab_device_request_t);
12121 xcb_tmp += xcb_block_len;
12122 xcb_buffer_len += xcb_block_len;
12123 xcb_block_len = 0;
12124 /* mask */
12125 xcb_block_len += _aux->mask_len * sizeof(uint32_t);
12126 xcb_tmp += xcb_block_len;
12127 xcb_align_to = ALIGNOF(uint32_t);
12128 /* insert padding */
12129 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12130 xcb_buffer_len += xcb_block_len + xcb_pad;
12131 if (0 != xcb_pad) {
12132 xcb_tmp += xcb_pad;
12133 xcb_pad = 0;
12135 xcb_block_len = 0;
12136 /* modifiers */
12137 xcb_block_len += _aux->num_modifiers * sizeof(uint32_t);
12138 xcb_tmp += xcb_block_len;
12139 xcb_align_to = ALIGNOF(uint32_t);
12140 /* insert padding */
12141 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12142 xcb_buffer_len += xcb_block_len + xcb_pad;
12143 if (0 != xcb_pad) {
12144 xcb_tmp += xcb_pad;
12145 xcb_pad = 0;
12147 xcb_block_len = 0;
12149 return xcb_buffer_len;
12153 /*****************************************************************************
12155 ** xcb_input_xi_passive_grab_device_cookie_t xcb_input_xi_passive_grab_device
12157 ** @param xcb_connection_t *c
12158 ** @param xcb_timestamp_t time
12159 ** @param xcb_window_t grab_window
12160 ** @param xcb_cursor_t cursor
12161 ** @param uint32_t detail
12162 ** @param xcb_input_device_id_t deviceid
12163 ** @param uint16_t num_modifiers
12164 ** @param uint16_t mask_len
12165 ** @param uint8_t grab_type
12166 ** @param uint8_t grab_mode
12167 ** @param uint8_t paired_device_mode
12168 ** @param uint8_t owner_events
12169 ** @param const uint32_t *mask
12170 ** @param const uint32_t *modifiers
12171 ** @returns xcb_input_xi_passive_grab_device_cookie_t
12173 *****************************************************************************/
12175 xcb_input_xi_passive_grab_device_cookie_t
12176 xcb_input_xi_passive_grab_device (xcb_connection_t *c /**< */,
12177 xcb_timestamp_t time /**< */,
12178 xcb_window_t grab_window /**< */,
12179 xcb_cursor_t cursor /**< */,
12180 uint32_t detail /**< */,
12181 xcb_input_device_id_t deviceid /**< */,
12182 uint16_t num_modifiers /**< */,
12183 uint16_t mask_len /**< */,
12184 uint8_t grab_type /**< */,
12185 uint8_t grab_mode /**< */,
12186 uint8_t paired_device_mode /**< */,
12187 uint8_t owner_events /**< */,
12188 const uint32_t *mask /**< */,
12189 const uint32_t *modifiers /**< */)
12191 static const xcb_protocol_request_t xcb_req = {
12192 /* count */ 6,
12193 /* ext */ &xcb_input_id,
12194 /* opcode */ XCB_INPUT_XI_PASSIVE_GRAB_DEVICE,
12195 /* isvoid */ 0
12198 struct iovec xcb_parts[8];
12199 xcb_input_xi_passive_grab_device_cookie_t xcb_ret;
12200 xcb_input_xi_passive_grab_device_request_t xcb_out;
12202 xcb_out.time = time;
12203 xcb_out.grab_window = grab_window;
12204 xcb_out.cursor = cursor;
12205 xcb_out.detail = detail;
12206 xcb_out.deviceid = deviceid;
12207 xcb_out.num_modifiers = num_modifiers;
12208 xcb_out.mask_len = mask_len;
12209 xcb_out.grab_type = grab_type;
12210 xcb_out.grab_mode = grab_mode;
12211 xcb_out.paired_device_mode = paired_device_mode;
12212 xcb_out.owner_events = owner_events;
12213 memset(xcb_out.pad0, 0, 2);
12215 xcb_parts[2].iov_base = (char *) &xcb_out;
12216 xcb_parts[2].iov_len = sizeof(xcb_out);
12217 xcb_parts[3].iov_base = 0;
12218 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12219 /* uint32_t mask */
12220 xcb_parts[4].iov_base = (char *) mask;
12221 xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
12222 xcb_parts[5].iov_base = 0;
12223 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12224 /* uint32_t modifiers */
12225 xcb_parts[6].iov_base = (char *) modifiers;
12226 xcb_parts[6].iov_len = num_modifiers * sizeof(uint32_t);
12227 xcb_parts[7].iov_base = 0;
12228 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
12230 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12231 return xcb_ret;
12235 /*****************************************************************************
12237 ** xcb_input_xi_passive_grab_device_cookie_t xcb_input_xi_passive_grab_device_unchecked
12239 ** @param xcb_connection_t *c
12240 ** @param xcb_timestamp_t time
12241 ** @param xcb_window_t grab_window
12242 ** @param xcb_cursor_t cursor
12243 ** @param uint32_t detail
12244 ** @param xcb_input_device_id_t deviceid
12245 ** @param uint16_t num_modifiers
12246 ** @param uint16_t mask_len
12247 ** @param uint8_t grab_type
12248 ** @param uint8_t grab_mode
12249 ** @param uint8_t paired_device_mode
12250 ** @param uint8_t owner_events
12251 ** @param const uint32_t *mask
12252 ** @param const uint32_t *modifiers
12253 ** @returns xcb_input_xi_passive_grab_device_cookie_t
12255 *****************************************************************************/
12257 xcb_input_xi_passive_grab_device_cookie_t
12258 xcb_input_xi_passive_grab_device_unchecked (xcb_connection_t *c /**< */,
12259 xcb_timestamp_t time /**< */,
12260 xcb_window_t grab_window /**< */,
12261 xcb_cursor_t cursor /**< */,
12262 uint32_t detail /**< */,
12263 xcb_input_device_id_t deviceid /**< */,
12264 uint16_t num_modifiers /**< */,
12265 uint16_t mask_len /**< */,
12266 uint8_t grab_type /**< */,
12267 uint8_t grab_mode /**< */,
12268 uint8_t paired_device_mode /**< */,
12269 uint8_t owner_events /**< */,
12270 const uint32_t *mask /**< */,
12271 const uint32_t *modifiers /**< */)
12273 static const xcb_protocol_request_t xcb_req = {
12274 /* count */ 6,
12275 /* ext */ &xcb_input_id,
12276 /* opcode */ XCB_INPUT_XI_PASSIVE_GRAB_DEVICE,
12277 /* isvoid */ 0
12280 struct iovec xcb_parts[8];
12281 xcb_input_xi_passive_grab_device_cookie_t xcb_ret;
12282 xcb_input_xi_passive_grab_device_request_t xcb_out;
12284 xcb_out.time = time;
12285 xcb_out.grab_window = grab_window;
12286 xcb_out.cursor = cursor;
12287 xcb_out.detail = detail;
12288 xcb_out.deviceid = deviceid;
12289 xcb_out.num_modifiers = num_modifiers;
12290 xcb_out.mask_len = mask_len;
12291 xcb_out.grab_type = grab_type;
12292 xcb_out.grab_mode = grab_mode;
12293 xcb_out.paired_device_mode = paired_device_mode;
12294 xcb_out.owner_events = owner_events;
12295 memset(xcb_out.pad0, 0, 2);
12297 xcb_parts[2].iov_base = (char *) &xcb_out;
12298 xcb_parts[2].iov_len = sizeof(xcb_out);
12299 xcb_parts[3].iov_base = 0;
12300 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12301 /* uint32_t mask */
12302 xcb_parts[4].iov_base = (char *) mask;
12303 xcb_parts[4].iov_len = mask_len * sizeof(uint32_t);
12304 xcb_parts[5].iov_base = 0;
12305 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12306 /* uint32_t modifiers */
12307 xcb_parts[6].iov_base = (char *) modifiers;
12308 xcb_parts[6].iov_len = num_modifiers * sizeof(uint32_t);
12309 xcb_parts[7].iov_base = 0;
12310 xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3;
12312 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12313 return xcb_ret;
12317 /*****************************************************************************
12319 ** xcb_input_grab_modifier_info_t * xcb_input_xi_passive_grab_device_modifiers
12321 ** @param const xcb_input_xi_passive_grab_device_reply_t *R
12322 ** @returns xcb_input_grab_modifier_info_t *
12324 *****************************************************************************/
12326 xcb_input_grab_modifier_info_t *
12327 xcb_input_xi_passive_grab_device_modifiers (const xcb_input_xi_passive_grab_device_reply_t *R /**< */)
12329 return (xcb_input_grab_modifier_info_t *) (R + 1);
12333 /*****************************************************************************
12335 ** int xcb_input_xi_passive_grab_device_modifiers_length
12337 ** @param const xcb_input_xi_passive_grab_device_reply_t *R
12338 ** @returns int
12340 *****************************************************************************/
12343 xcb_input_xi_passive_grab_device_modifiers_length (const xcb_input_xi_passive_grab_device_reply_t *R /**< */)
12345 return R->num_modifiers;
12349 /*****************************************************************************
12351 ** xcb_input_grab_modifier_info_iterator_t xcb_input_xi_passive_grab_device_modifiers_iterator
12353 ** @param const xcb_input_xi_passive_grab_device_reply_t *R
12354 ** @returns xcb_input_grab_modifier_info_iterator_t
12356 *****************************************************************************/
12358 xcb_input_grab_modifier_info_iterator_t
12359 xcb_input_xi_passive_grab_device_modifiers_iterator (const xcb_input_xi_passive_grab_device_reply_t *R /**< */)
12361 xcb_input_grab_modifier_info_iterator_t i;
12362 i.data = (xcb_input_grab_modifier_info_t *) (R + 1);
12363 i.rem = R->num_modifiers;
12364 i.index = (char *) i.data - (char *) R;
12365 return i;
12369 /*****************************************************************************
12371 ** xcb_input_xi_passive_grab_device_reply_t * xcb_input_xi_passive_grab_device_reply
12373 ** @param xcb_connection_t *c
12374 ** @param xcb_input_xi_passive_grab_device_cookie_t cookie
12375 ** @param xcb_generic_error_t **e
12376 ** @returns xcb_input_xi_passive_grab_device_reply_t *
12378 *****************************************************************************/
12380 xcb_input_xi_passive_grab_device_reply_t *
12381 xcb_input_xi_passive_grab_device_reply (xcb_connection_t *c /**< */,
12382 xcb_input_xi_passive_grab_device_cookie_t cookie /**< */,
12383 xcb_generic_error_t **e /**< */)
12385 return (xcb_input_xi_passive_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
12389 xcb_input_xi_passive_ungrab_device_sizeof (const void *_buffer /**< */)
12391 char *xcb_tmp = (char *)_buffer;
12392 const xcb_input_xi_passive_ungrab_device_request_t *_aux = (xcb_input_xi_passive_ungrab_device_request_t *)_buffer;
12393 unsigned int xcb_buffer_len = 0;
12394 unsigned int xcb_block_len = 0;
12395 unsigned int xcb_pad = 0;
12396 unsigned int xcb_align_to = 0;
12399 xcb_block_len += sizeof(xcb_input_xi_passive_ungrab_device_request_t);
12400 xcb_tmp += xcb_block_len;
12401 xcb_buffer_len += xcb_block_len;
12402 xcb_block_len = 0;
12403 /* modifiers */
12404 xcb_block_len += _aux->num_modifiers * sizeof(uint32_t);
12405 xcb_tmp += xcb_block_len;
12406 xcb_align_to = ALIGNOF(uint32_t);
12407 /* insert padding */
12408 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12409 xcb_buffer_len += xcb_block_len + xcb_pad;
12410 if (0 != xcb_pad) {
12411 xcb_tmp += xcb_pad;
12412 xcb_pad = 0;
12414 xcb_block_len = 0;
12416 return xcb_buffer_len;
12420 /*****************************************************************************
12422 ** xcb_void_cookie_t xcb_input_xi_passive_ungrab_device_checked
12424 ** @param xcb_connection_t *c
12425 ** @param xcb_window_t grab_window
12426 ** @param uint32_t detail
12427 ** @param xcb_input_device_id_t deviceid
12428 ** @param uint16_t num_modifiers
12429 ** @param uint8_t grab_type
12430 ** @param const uint32_t *modifiers
12431 ** @returns xcb_void_cookie_t
12433 *****************************************************************************/
12435 xcb_void_cookie_t
12436 xcb_input_xi_passive_ungrab_device_checked (xcb_connection_t *c /**< */,
12437 xcb_window_t grab_window /**< */,
12438 uint32_t detail /**< */,
12439 xcb_input_device_id_t deviceid /**< */,
12440 uint16_t num_modifiers /**< */,
12441 uint8_t grab_type /**< */,
12442 const uint32_t *modifiers /**< */)
12444 static const xcb_protocol_request_t xcb_req = {
12445 /* count */ 4,
12446 /* ext */ &xcb_input_id,
12447 /* opcode */ XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE,
12448 /* isvoid */ 1
12451 struct iovec xcb_parts[6];
12452 xcb_void_cookie_t xcb_ret;
12453 xcb_input_xi_passive_ungrab_device_request_t xcb_out;
12455 xcb_out.grab_window = grab_window;
12456 xcb_out.detail = detail;
12457 xcb_out.deviceid = deviceid;
12458 xcb_out.num_modifiers = num_modifiers;
12459 xcb_out.grab_type = grab_type;
12460 memset(xcb_out.pad0, 0, 3);
12462 xcb_parts[2].iov_base = (char *) &xcb_out;
12463 xcb_parts[2].iov_len = sizeof(xcb_out);
12464 xcb_parts[3].iov_base = 0;
12465 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12466 /* uint32_t modifiers */
12467 xcb_parts[4].iov_base = (char *) modifiers;
12468 xcb_parts[4].iov_len = num_modifiers * sizeof(uint32_t);
12469 xcb_parts[5].iov_base = 0;
12470 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12472 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12473 return xcb_ret;
12477 /*****************************************************************************
12479 ** xcb_void_cookie_t xcb_input_xi_passive_ungrab_device
12481 ** @param xcb_connection_t *c
12482 ** @param xcb_window_t grab_window
12483 ** @param uint32_t detail
12484 ** @param xcb_input_device_id_t deviceid
12485 ** @param uint16_t num_modifiers
12486 ** @param uint8_t grab_type
12487 ** @param const uint32_t *modifiers
12488 ** @returns xcb_void_cookie_t
12490 *****************************************************************************/
12492 xcb_void_cookie_t
12493 xcb_input_xi_passive_ungrab_device (xcb_connection_t *c /**< */,
12494 xcb_window_t grab_window /**< */,
12495 uint32_t detail /**< */,
12496 xcb_input_device_id_t deviceid /**< */,
12497 uint16_t num_modifiers /**< */,
12498 uint8_t grab_type /**< */,
12499 const uint32_t *modifiers /**< */)
12501 static const xcb_protocol_request_t xcb_req = {
12502 /* count */ 4,
12503 /* ext */ &xcb_input_id,
12504 /* opcode */ XCB_INPUT_XI_PASSIVE_UNGRAB_DEVICE,
12505 /* isvoid */ 1
12508 struct iovec xcb_parts[6];
12509 xcb_void_cookie_t xcb_ret;
12510 xcb_input_xi_passive_ungrab_device_request_t xcb_out;
12512 xcb_out.grab_window = grab_window;
12513 xcb_out.detail = detail;
12514 xcb_out.deviceid = deviceid;
12515 xcb_out.num_modifiers = num_modifiers;
12516 xcb_out.grab_type = grab_type;
12517 memset(xcb_out.pad0, 0, 3);
12519 xcb_parts[2].iov_base = (char *) &xcb_out;
12520 xcb_parts[2].iov_len = sizeof(xcb_out);
12521 xcb_parts[3].iov_base = 0;
12522 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12523 /* uint32_t modifiers */
12524 xcb_parts[4].iov_base = (char *) modifiers;
12525 xcb_parts[4].iov_len = num_modifiers * sizeof(uint32_t);
12526 xcb_parts[5].iov_base = 0;
12527 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
12529 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12530 return xcb_ret;
12534 xcb_input_xi_list_properties_sizeof (const void *_buffer /**< */)
12536 char *xcb_tmp = (char *)_buffer;
12537 const xcb_input_xi_list_properties_reply_t *_aux = (xcb_input_xi_list_properties_reply_t *)_buffer;
12538 unsigned int xcb_buffer_len = 0;
12539 unsigned int xcb_block_len = 0;
12540 unsigned int xcb_pad = 0;
12541 unsigned int xcb_align_to = 0;
12544 xcb_block_len += sizeof(xcb_input_xi_list_properties_reply_t);
12545 xcb_tmp += xcb_block_len;
12546 xcb_buffer_len += xcb_block_len;
12547 xcb_block_len = 0;
12548 /* properties */
12549 xcb_block_len += _aux->num_properties * sizeof(xcb_atom_t);
12550 xcb_tmp += xcb_block_len;
12551 xcb_align_to = ALIGNOF(xcb_atom_t);
12552 /* insert padding */
12553 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12554 xcb_buffer_len += xcb_block_len + xcb_pad;
12555 if (0 != xcb_pad) {
12556 xcb_tmp += xcb_pad;
12557 xcb_pad = 0;
12559 xcb_block_len = 0;
12561 return xcb_buffer_len;
12565 /*****************************************************************************
12567 ** xcb_input_xi_list_properties_cookie_t xcb_input_xi_list_properties
12569 ** @param xcb_connection_t *c
12570 ** @param xcb_input_device_id_t deviceid
12571 ** @returns xcb_input_xi_list_properties_cookie_t
12573 *****************************************************************************/
12575 xcb_input_xi_list_properties_cookie_t
12576 xcb_input_xi_list_properties (xcb_connection_t *c /**< */,
12577 xcb_input_device_id_t deviceid /**< */)
12579 static const xcb_protocol_request_t xcb_req = {
12580 /* count */ 2,
12581 /* ext */ &xcb_input_id,
12582 /* opcode */ XCB_INPUT_XI_LIST_PROPERTIES,
12583 /* isvoid */ 0
12586 struct iovec xcb_parts[4];
12587 xcb_input_xi_list_properties_cookie_t xcb_ret;
12588 xcb_input_xi_list_properties_request_t xcb_out;
12590 xcb_out.deviceid = deviceid;
12591 memset(xcb_out.pad0, 0, 2);
12593 xcb_parts[2].iov_base = (char *) &xcb_out;
12594 xcb_parts[2].iov_len = sizeof(xcb_out);
12595 xcb_parts[3].iov_base = 0;
12596 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12598 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
12599 return xcb_ret;
12603 /*****************************************************************************
12605 ** xcb_input_xi_list_properties_cookie_t xcb_input_xi_list_properties_unchecked
12607 ** @param xcb_connection_t *c
12608 ** @param xcb_input_device_id_t deviceid
12609 ** @returns xcb_input_xi_list_properties_cookie_t
12611 *****************************************************************************/
12613 xcb_input_xi_list_properties_cookie_t
12614 xcb_input_xi_list_properties_unchecked (xcb_connection_t *c /**< */,
12615 xcb_input_device_id_t deviceid /**< */)
12617 static const xcb_protocol_request_t xcb_req = {
12618 /* count */ 2,
12619 /* ext */ &xcb_input_id,
12620 /* opcode */ XCB_INPUT_XI_LIST_PROPERTIES,
12621 /* isvoid */ 0
12624 struct iovec xcb_parts[4];
12625 xcb_input_xi_list_properties_cookie_t xcb_ret;
12626 xcb_input_xi_list_properties_request_t xcb_out;
12628 xcb_out.deviceid = deviceid;
12629 memset(xcb_out.pad0, 0, 2);
12631 xcb_parts[2].iov_base = (char *) &xcb_out;
12632 xcb_parts[2].iov_len = sizeof(xcb_out);
12633 xcb_parts[3].iov_base = 0;
12634 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
12636 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
12637 return xcb_ret;
12641 /*****************************************************************************
12643 ** xcb_atom_t * xcb_input_xi_list_properties_properties
12645 ** @param const xcb_input_xi_list_properties_reply_t *R
12646 ** @returns xcb_atom_t *
12648 *****************************************************************************/
12650 xcb_atom_t *
12651 xcb_input_xi_list_properties_properties (const xcb_input_xi_list_properties_reply_t *R /**< */)
12653 return (xcb_atom_t *) (R + 1);
12657 /*****************************************************************************
12659 ** int xcb_input_xi_list_properties_properties_length
12661 ** @param const xcb_input_xi_list_properties_reply_t *R
12662 ** @returns int
12664 *****************************************************************************/
12667 xcb_input_xi_list_properties_properties_length (const xcb_input_xi_list_properties_reply_t *R /**< */)
12669 return R->num_properties;
12673 /*****************************************************************************
12675 ** xcb_generic_iterator_t xcb_input_xi_list_properties_properties_end
12677 ** @param const xcb_input_xi_list_properties_reply_t *R
12678 ** @returns xcb_generic_iterator_t
12680 *****************************************************************************/
12682 xcb_generic_iterator_t
12683 xcb_input_xi_list_properties_properties_end (const xcb_input_xi_list_properties_reply_t *R /**< */)
12685 xcb_generic_iterator_t i;
12686 i.data = ((xcb_atom_t *) (R + 1)) + (R->num_properties);
12687 i.rem = 0;
12688 i.index = (char *) i.data - (char *) R;
12689 return i;
12693 /*****************************************************************************
12695 ** xcb_input_xi_list_properties_reply_t * xcb_input_xi_list_properties_reply
12697 ** @param xcb_connection_t *c
12698 ** @param xcb_input_xi_list_properties_cookie_t cookie
12699 ** @param xcb_generic_error_t **e
12700 ** @returns xcb_input_xi_list_properties_reply_t *
12702 *****************************************************************************/
12704 xcb_input_xi_list_properties_reply_t *
12705 xcb_input_xi_list_properties_reply (xcb_connection_t *c /**< */,
12706 xcb_input_xi_list_properties_cookie_t cookie /**< */,
12707 xcb_generic_error_t **e /**< */)
12709 return (xcb_input_xi_list_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
12713 /*****************************************************************************
12715 ** uint8_t * xcb_input_xi_change_property_items_data_8
12717 ** @param const xcb_input_xi_change_property_items_t *S
12718 ** @returns uint8_t *
12720 *****************************************************************************/
12722 uint8_t *
12723 xcb_input_xi_change_property_items_data_8 (const xcb_input_xi_change_property_items_t *S /**< */)
12725 return /* items */ S->data8;
12729 /*****************************************************************************
12731 ** int xcb_input_xi_change_property_items_data_8_length
12733 ** @param const xcb_input_xi_change_property_items_t *R
12734 ** @returns int
12736 *****************************************************************************/
12739 xcb_input_xi_change_property_items_data_8_length (const xcb_input_xi_change_property_request_t *R /**< */,
12740 const xcb_input_xi_change_property_items_t *S /**< */)
12742 return R->num_items;
12746 /*****************************************************************************
12748 ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_8_end
12750 ** @param const xcb_input_xi_change_property_items_t *R
12751 ** @returns xcb_generic_iterator_t
12753 *****************************************************************************/
12755 xcb_generic_iterator_t
12756 xcb_input_xi_change_property_items_data_8_end (const xcb_input_xi_change_property_request_t *R /**< */,
12757 const xcb_input_xi_change_property_items_t *S /**< */)
12759 xcb_generic_iterator_t i;
12760 i.data = /* items */ S->data8 + R->num_items;
12761 i.rem = 0;
12762 i.index = (char *) i.data - (char *) S;
12763 return i;
12767 /*****************************************************************************
12769 ** uint16_t * xcb_input_xi_change_property_items_data_16
12771 ** @param const xcb_input_xi_change_property_items_t *S
12772 ** @returns uint16_t *
12774 *****************************************************************************/
12776 uint16_t *
12777 xcb_input_xi_change_property_items_data_16 (const xcb_input_xi_change_property_items_t *S /**< */)
12779 return /* items */ S->data16;
12783 /*****************************************************************************
12785 ** int xcb_input_xi_change_property_items_data_16_length
12787 ** @param const xcb_input_xi_change_property_items_t *R
12788 ** @returns int
12790 *****************************************************************************/
12793 xcb_input_xi_change_property_items_data_16_length (const xcb_input_xi_change_property_request_t *R /**< */,
12794 const xcb_input_xi_change_property_items_t *S /**< */)
12796 return R->num_items;
12800 /*****************************************************************************
12802 ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_16_end
12804 ** @param const xcb_input_xi_change_property_items_t *R
12805 ** @returns xcb_generic_iterator_t
12807 *****************************************************************************/
12809 xcb_generic_iterator_t
12810 xcb_input_xi_change_property_items_data_16_end (const xcb_input_xi_change_property_request_t *R /**< */,
12811 const xcb_input_xi_change_property_items_t *S /**< */)
12813 xcb_generic_iterator_t i;
12814 i.data = /* items */ S->data16 + R->num_items;
12815 i.rem = 0;
12816 i.index = (char *) i.data - (char *) S;
12817 return i;
12821 /*****************************************************************************
12823 ** uint32_t * xcb_input_xi_change_property_items_data_32
12825 ** @param const xcb_input_xi_change_property_items_t *S
12826 ** @returns uint32_t *
12828 *****************************************************************************/
12830 uint32_t *
12831 xcb_input_xi_change_property_items_data_32 (const xcb_input_xi_change_property_items_t *S /**< */)
12833 return /* items */ S->data32;
12837 /*****************************************************************************
12839 ** int xcb_input_xi_change_property_items_data_32_length
12841 ** @param const xcb_input_xi_change_property_items_t *R
12842 ** @returns int
12844 *****************************************************************************/
12847 xcb_input_xi_change_property_items_data_32_length (const xcb_input_xi_change_property_request_t *R /**< */,
12848 const xcb_input_xi_change_property_items_t *S /**< */)
12850 return R->num_items;
12854 /*****************************************************************************
12856 ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_32_end
12858 ** @param const xcb_input_xi_change_property_items_t *R
12859 ** @returns xcb_generic_iterator_t
12861 *****************************************************************************/
12863 xcb_generic_iterator_t
12864 xcb_input_xi_change_property_items_data_32_end (const xcb_input_xi_change_property_request_t *R /**< */,
12865 const xcb_input_xi_change_property_items_t *S /**< */)
12867 xcb_generic_iterator_t i;
12868 i.data = /* items */ S->data32 + R->num_items;
12869 i.rem = 0;
12870 i.index = (char *) i.data - (char *) S;
12871 return i;
12875 xcb_input_xi_change_property_items_serialize (void **_buffer /**< */,
12876 uint32_t num_items /**< */,
12877 uint8_t format /**< */,
12878 const xcb_input_xi_change_property_items_t *_aux /**< */)
12880 char *xcb_out = *_buffer;
12881 unsigned int xcb_buffer_len = 0;
12882 unsigned int xcb_align_to = 0;
12884 unsigned int xcb_pad = 0;
12885 char xcb_pad0[3] = {0, 0, 0};
12886 struct iovec xcb_parts[7];
12887 unsigned int xcb_parts_idx = 0;
12888 unsigned int xcb_block_len = 0;
12889 unsigned int i;
12890 char *xcb_tmp;
12892 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
12893 /* insert padding */
12894 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12895 xcb_buffer_len += xcb_block_len + xcb_pad;
12896 if (0 != xcb_pad) {
12897 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12898 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12899 xcb_parts_idx++;
12900 xcb_pad = 0;
12902 xcb_block_len = 0;
12903 /* data8 */
12904 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
12905 xcb_block_len += num_items * sizeof(uint8_t);
12906 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
12907 xcb_parts_idx++;
12908 xcb_align_to = ALIGNOF(uint8_t);
12910 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
12911 /* insert padding */
12912 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12913 xcb_buffer_len += xcb_block_len + xcb_pad;
12914 if (0 != xcb_pad) {
12915 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12916 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12917 xcb_parts_idx++;
12918 xcb_pad = 0;
12920 xcb_block_len = 0;
12921 /* data16 */
12922 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
12923 xcb_block_len += num_items * sizeof(uint16_t);
12924 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
12925 xcb_parts_idx++;
12926 xcb_align_to = ALIGNOF(uint16_t);
12928 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
12929 /* insert padding */
12930 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12931 xcb_buffer_len += xcb_block_len + xcb_pad;
12932 if (0 != xcb_pad) {
12933 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12934 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12935 xcb_parts_idx++;
12936 xcb_pad = 0;
12938 xcb_block_len = 0;
12939 /* data32 */
12940 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
12941 xcb_block_len += num_items * sizeof(uint32_t);
12942 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
12943 xcb_parts_idx++;
12944 xcb_align_to = ALIGNOF(uint32_t);
12946 /* insert padding */
12947 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12948 xcb_buffer_len += xcb_block_len + xcb_pad;
12949 if (0 != xcb_pad) {
12950 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
12951 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
12952 xcb_parts_idx++;
12953 xcb_pad = 0;
12955 xcb_block_len = 0;
12957 if (NULL == xcb_out) {
12958 /* allocate memory */
12959 xcb_out = malloc(xcb_buffer_len);
12960 *_buffer = xcb_out;
12963 xcb_tmp = xcb_out;
12964 for(i=0; i<xcb_parts_idx; i++) {
12965 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
12966 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
12967 if (0 != xcb_parts[i].iov_len)
12968 xcb_tmp += xcb_parts[i].iov_len;
12971 return xcb_buffer_len;
12975 xcb_input_xi_change_property_items_unpack (const void *_buffer /**< */,
12976 uint32_t num_items /**< */,
12977 uint8_t format /**< */,
12978 xcb_input_xi_change_property_items_t *_aux /**< */)
12980 char *xcb_tmp = (char *)_buffer;
12981 unsigned int xcb_buffer_len = 0;
12982 unsigned int xcb_block_len = 0;
12983 unsigned int xcb_pad = 0;
12984 unsigned int xcb_align_to = 0;
12987 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
12988 /* insert padding */
12989 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
12990 xcb_buffer_len += xcb_block_len + xcb_pad;
12991 if (0 != xcb_pad) {
12992 xcb_tmp += xcb_pad;
12993 xcb_pad = 0;
12995 xcb_block_len = 0;
12996 /* data8 */
12997 _aux->data8 = (uint8_t *)xcb_tmp;
12998 xcb_block_len += num_items * sizeof(uint8_t);
12999 xcb_tmp += xcb_block_len;
13000 xcb_align_to = ALIGNOF(uint8_t);
13002 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
13003 /* insert padding */
13004 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13005 xcb_buffer_len += xcb_block_len + xcb_pad;
13006 if (0 != xcb_pad) {
13007 xcb_tmp += xcb_pad;
13008 xcb_pad = 0;
13010 xcb_block_len = 0;
13011 /* data16 */
13012 _aux->data16 = (uint16_t *)xcb_tmp;
13013 xcb_block_len += num_items * sizeof(uint16_t);
13014 xcb_tmp += xcb_block_len;
13015 xcb_align_to = ALIGNOF(uint16_t);
13017 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
13018 /* insert padding */
13019 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13020 xcb_buffer_len += xcb_block_len + xcb_pad;
13021 if (0 != xcb_pad) {
13022 xcb_tmp += xcb_pad;
13023 xcb_pad = 0;
13025 xcb_block_len = 0;
13026 /* data32 */
13027 _aux->data32 = (uint32_t *)xcb_tmp;
13028 xcb_block_len += num_items * sizeof(uint32_t);
13029 xcb_tmp += xcb_block_len;
13030 xcb_align_to = ALIGNOF(uint32_t);
13032 /* insert padding */
13033 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13034 xcb_buffer_len += xcb_block_len + xcb_pad;
13035 if (0 != xcb_pad) {
13036 xcb_tmp += xcb_pad;
13037 xcb_pad = 0;
13039 xcb_block_len = 0;
13041 return xcb_buffer_len;
13045 xcb_input_xi_change_property_items_sizeof (const void *_buffer /**< */,
13046 uint32_t num_items /**< */,
13047 uint8_t format /**< */)
13049 xcb_input_xi_change_property_items_t _aux;
13050 return xcb_input_xi_change_property_items_unpack(_buffer, num_items, format, &_aux);
13054 /*****************************************************************************
13056 ** xcb_void_cookie_t xcb_input_xi_change_property_checked
13058 ** @param xcb_connection_t *c
13059 ** @param xcb_input_device_id_t deviceid
13060 ** @param uint8_t mode
13061 ** @param uint8_t format
13062 ** @param xcb_atom_t property
13063 ** @param xcb_atom_t type
13064 ** @param uint32_t num_items
13065 ** @param const void *items
13066 ** @returns xcb_void_cookie_t
13068 *****************************************************************************/
13070 xcb_void_cookie_t
13071 xcb_input_xi_change_property_checked (xcb_connection_t *c /**< */,
13072 xcb_input_device_id_t deviceid /**< */,
13073 uint8_t mode /**< */,
13074 uint8_t format /**< */,
13075 xcb_atom_t property /**< */,
13076 xcb_atom_t type /**< */,
13077 uint32_t num_items /**< */,
13078 const void *items /**< */)
13080 static const xcb_protocol_request_t xcb_req = {
13081 /* count */ 3,
13082 /* ext */ &xcb_input_id,
13083 /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13084 /* isvoid */ 1
13087 struct iovec xcb_parts[5];
13088 xcb_void_cookie_t xcb_ret;
13089 xcb_input_xi_change_property_request_t xcb_out;
13091 xcb_out.deviceid = deviceid;
13092 xcb_out.mode = mode;
13093 xcb_out.format = format;
13094 xcb_out.property = property;
13095 xcb_out.type = type;
13096 xcb_out.num_items = num_items;
13098 xcb_parts[2].iov_base = (char *) &xcb_out;
13099 xcb_parts[2].iov_len = sizeof(xcb_out);
13100 xcb_parts[3].iov_base = 0;
13101 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13102 /* xcb_input_xi_change_property_items_t items */
13103 xcb_parts[4].iov_base = (char *) items;
13104 xcb_parts[4].iov_len =
13105 xcb_input_xi_change_property_items_sizeof (items, num_items, format);
13107 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13108 return xcb_ret;
13112 /*****************************************************************************
13114 ** xcb_void_cookie_t xcb_input_xi_change_property
13116 ** @param xcb_connection_t *c
13117 ** @param xcb_input_device_id_t deviceid
13118 ** @param uint8_t mode
13119 ** @param uint8_t format
13120 ** @param xcb_atom_t property
13121 ** @param xcb_atom_t type
13122 ** @param uint32_t num_items
13123 ** @param const void *items
13124 ** @returns xcb_void_cookie_t
13126 *****************************************************************************/
13128 xcb_void_cookie_t
13129 xcb_input_xi_change_property (xcb_connection_t *c /**< */,
13130 xcb_input_device_id_t deviceid /**< */,
13131 uint8_t mode /**< */,
13132 uint8_t format /**< */,
13133 xcb_atom_t property /**< */,
13134 xcb_atom_t type /**< */,
13135 uint32_t num_items /**< */,
13136 const void *items /**< */)
13138 static const xcb_protocol_request_t xcb_req = {
13139 /* count */ 3,
13140 /* ext */ &xcb_input_id,
13141 /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13142 /* isvoid */ 1
13145 struct iovec xcb_parts[5];
13146 xcb_void_cookie_t xcb_ret;
13147 xcb_input_xi_change_property_request_t xcb_out;
13149 xcb_out.deviceid = deviceid;
13150 xcb_out.mode = mode;
13151 xcb_out.format = format;
13152 xcb_out.property = property;
13153 xcb_out.type = type;
13154 xcb_out.num_items = num_items;
13156 xcb_parts[2].iov_base = (char *) &xcb_out;
13157 xcb_parts[2].iov_len = sizeof(xcb_out);
13158 xcb_parts[3].iov_base = 0;
13159 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13160 /* xcb_input_xi_change_property_items_t items */
13161 xcb_parts[4].iov_base = (char *) items;
13162 xcb_parts[4].iov_len =
13163 xcb_input_xi_change_property_items_sizeof (items, num_items, format);
13165 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13166 return xcb_ret;
13170 /*****************************************************************************
13172 ** xcb_void_cookie_t xcb_input_xi_change_property_aux_checked
13174 ** @param xcb_connection_t *c
13175 ** @param xcb_input_device_id_t deviceid
13176 ** @param uint8_t mode
13177 ** @param uint8_t format
13178 ** @param xcb_atom_t property
13179 ** @param xcb_atom_t type
13180 ** @param uint32_t num_items
13181 ** @param const xcb_input_xi_change_property_items_t *items
13182 ** @returns xcb_void_cookie_t
13184 *****************************************************************************/
13186 xcb_void_cookie_t
13187 xcb_input_xi_change_property_aux_checked (xcb_connection_t *c /**< */,
13188 xcb_input_device_id_t deviceid /**< */,
13189 uint8_t mode /**< */,
13190 uint8_t format /**< */,
13191 xcb_atom_t property /**< */,
13192 xcb_atom_t type /**< */,
13193 uint32_t num_items /**< */,
13194 const xcb_input_xi_change_property_items_t *items /**< */)
13196 static const xcb_protocol_request_t xcb_req = {
13197 /* count */ 3,
13198 /* ext */ &xcb_input_id,
13199 /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13200 /* isvoid */ 1
13203 struct iovec xcb_parts[5];
13204 xcb_void_cookie_t xcb_ret;
13205 xcb_input_xi_change_property_request_t xcb_out;
13206 void *xcb_aux0 = 0;
13208 xcb_out.deviceid = deviceid;
13209 xcb_out.mode = mode;
13210 xcb_out.format = format;
13211 xcb_out.property = property;
13212 xcb_out.type = type;
13213 xcb_out.num_items = num_items;
13215 xcb_parts[2].iov_base = (char *) &xcb_out;
13216 xcb_parts[2].iov_len = sizeof(xcb_out);
13217 xcb_parts[3].iov_base = 0;
13218 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13219 /* xcb_input_xi_change_property_items_t items */
13220 xcb_parts[4].iov_len =
13221 xcb_input_xi_change_property_items_serialize (&xcb_aux0, num_items, format, items);
13222 xcb_parts[4].iov_base = xcb_aux0;
13224 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13225 free(xcb_aux0);
13226 return xcb_ret;
13230 /*****************************************************************************
13232 ** xcb_void_cookie_t xcb_input_xi_change_property_aux
13234 ** @param xcb_connection_t *c
13235 ** @param xcb_input_device_id_t deviceid
13236 ** @param uint8_t mode
13237 ** @param uint8_t format
13238 ** @param xcb_atom_t property
13239 ** @param xcb_atom_t type
13240 ** @param uint32_t num_items
13241 ** @param const xcb_input_xi_change_property_items_t *items
13242 ** @returns xcb_void_cookie_t
13244 *****************************************************************************/
13246 xcb_void_cookie_t
13247 xcb_input_xi_change_property_aux (xcb_connection_t *c /**< */,
13248 xcb_input_device_id_t deviceid /**< */,
13249 uint8_t mode /**< */,
13250 uint8_t format /**< */,
13251 xcb_atom_t property /**< */,
13252 xcb_atom_t type /**< */,
13253 uint32_t num_items /**< */,
13254 const xcb_input_xi_change_property_items_t *items /**< */)
13256 static const xcb_protocol_request_t xcb_req = {
13257 /* count */ 3,
13258 /* ext */ &xcb_input_id,
13259 /* opcode */ XCB_INPUT_XI_CHANGE_PROPERTY,
13260 /* isvoid */ 1
13263 struct iovec xcb_parts[5];
13264 xcb_void_cookie_t xcb_ret;
13265 xcb_input_xi_change_property_request_t xcb_out;
13266 void *xcb_aux0 = 0;
13268 xcb_out.deviceid = deviceid;
13269 xcb_out.mode = mode;
13270 xcb_out.format = format;
13271 xcb_out.property = property;
13272 xcb_out.type = type;
13273 xcb_out.num_items = num_items;
13275 xcb_parts[2].iov_base = (char *) &xcb_out;
13276 xcb_parts[2].iov_len = sizeof(xcb_out);
13277 xcb_parts[3].iov_base = 0;
13278 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13279 /* xcb_input_xi_change_property_items_t items */
13280 xcb_parts[4].iov_len =
13281 xcb_input_xi_change_property_items_serialize (&xcb_aux0, num_items, format, items);
13282 xcb_parts[4].iov_base = xcb_aux0;
13284 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13285 free(xcb_aux0);
13286 return xcb_ret;
13290 /*****************************************************************************
13292 ** xcb_void_cookie_t xcb_input_xi_delete_property_checked
13294 ** @param xcb_connection_t *c
13295 ** @param xcb_input_device_id_t deviceid
13296 ** @param xcb_atom_t property
13297 ** @returns xcb_void_cookie_t
13299 *****************************************************************************/
13301 xcb_void_cookie_t
13302 xcb_input_xi_delete_property_checked (xcb_connection_t *c /**< */,
13303 xcb_input_device_id_t deviceid /**< */,
13304 xcb_atom_t property /**< */)
13306 static const xcb_protocol_request_t xcb_req = {
13307 /* count */ 2,
13308 /* ext */ &xcb_input_id,
13309 /* opcode */ XCB_INPUT_XI_DELETE_PROPERTY,
13310 /* isvoid */ 1
13313 struct iovec xcb_parts[4];
13314 xcb_void_cookie_t xcb_ret;
13315 xcb_input_xi_delete_property_request_t xcb_out;
13317 xcb_out.deviceid = deviceid;
13318 memset(xcb_out.pad0, 0, 2);
13319 xcb_out.property = property;
13321 xcb_parts[2].iov_base = (char *) &xcb_out;
13322 xcb_parts[2].iov_len = sizeof(xcb_out);
13323 xcb_parts[3].iov_base = 0;
13324 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13326 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13327 return xcb_ret;
13331 /*****************************************************************************
13333 ** xcb_void_cookie_t xcb_input_xi_delete_property
13335 ** @param xcb_connection_t *c
13336 ** @param xcb_input_device_id_t deviceid
13337 ** @param xcb_atom_t property
13338 ** @returns xcb_void_cookie_t
13340 *****************************************************************************/
13342 xcb_void_cookie_t
13343 xcb_input_xi_delete_property (xcb_connection_t *c /**< */,
13344 xcb_input_device_id_t deviceid /**< */,
13345 xcb_atom_t property /**< */)
13347 static const xcb_protocol_request_t xcb_req = {
13348 /* count */ 2,
13349 /* ext */ &xcb_input_id,
13350 /* opcode */ XCB_INPUT_XI_DELETE_PROPERTY,
13351 /* isvoid */ 1
13354 struct iovec xcb_parts[4];
13355 xcb_void_cookie_t xcb_ret;
13356 xcb_input_xi_delete_property_request_t xcb_out;
13358 xcb_out.deviceid = deviceid;
13359 memset(xcb_out.pad0, 0, 2);
13360 xcb_out.property = property;
13362 xcb_parts[2].iov_base = (char *) &xcb_out;
13363 xcb_parts[2].iov_len = sizeof(xcb_out);
13364 xcb_parts[3].iov_base = 0;
13365 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13367 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13368 return xcb_ret;
13372 /*****************************************************************************
13374 ** uint8_t * xcb_input_xi_get_property_items_data_8
13376 ** @param const xcb_input_xi_get_property_items_t *S
13377 ** @returns uint8_t *
13379 *****************************************************************************/
13381 uint8_t *
13382 xcb_input_xi_get_property_items_data_8 (const xcb_input_xi_get_property_items_t *S /**< */)
13384 return /* items */ S->data8;
13388 /*****************************************************************************
13390 ** int xcb_input_xi_get_property_items_data_8_length
13392 ** @param const xcb_input_xi_get_property_items_t *R
13393 ** @returns int
13395 *****************************************************************************/
13398 xcb_input_xi_get_property_items_data_8_length (const xcb_input_xi_get_property_reply_t *R /**< */,
13399 const xcb_input_xi_get_property_items_t *S /**< */)
13401 return R->num_items;
13405 /*****************************************************************************
13407 ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_8_end
13409 ** @param const xcb_input_xi_get_property_items_t *R
13410 ** @returns xcb_generic_iterator_t
13412 *****************************************************************************/
13414 xcb_generic_iterator_t
13415 xcb_input_xi_get_property_items_data_8_end (const xcb_input_xi_get_property_reply_t *R /**< */,
13416 const xcb_input_xi_get_property_items_t *S /**< */)
13418 xcb_generic_iterator_t i;
13419 i.data = /* items */ S->data8 + R->num_items;
13420 i.rem = 0;
13421 i.index = (char *) i.data - (char *) S;
13422 return i;
13426 /*****************************************************************************
13428 ** uint16_t * xcb_input_xi_get_property_items_data_16
13430 ** @param const xcb_input_xi_get_property_items_t *S
13431 ** @returns uint16_t *
13433 *****************************************************************************/
13435 uint16_t *
13436 xcb_input_xi_get_property_items_data_16 (const xcb_input_xi_get_property_items_t *S /**< */)
13438 return /* items */ S->data16;
13442 /*****************************************************************************
13444 ** int xcb_input_xi_get_property_items_data_16_length
13446 ** @param const xcb_input_xi_get_property_items_t *R
13447 ** @returns int
13449 *****************************************************************************/
13452 xcb_input_xi_get_property_items_data_16_length (const xcb_input_xi_get_property_reply_t *R /**< */,
13453 const xcb_input_xi_get_property_items_t *S /**< */)
13455 return R->num_items;
13459 /*****************************************************************************
13461 ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_16_end
13463 ** @param const xcb_input_xi_get_property_items_t *R
13464 ** @returns xcb_generic_iterator_t
13466 *****************************************************************************/
13468 xcb_generic_iterator_t
13469 xcb_input_xi_get_property_items_data_16_end (const xcb_input_xi_get_property_reply_t *R /**< */,
13470 const xcb_input_xi_get_property_items_t *S /**< */)
13472 xcb_generic_iterator_t i;
13473 i.data = /* items */ S->data16 + R->num_items;
13474 i.rem = 0;
13475 i.index = (char *) i.data - (char *) S;
13476 return i;
13480 /*****************************************************************************
13482 ** uint32_t * xcb_input_xi_get_property_items_data_32
13484 ** @param const xcb_input_xi_get_property_items_t *S
13485 ** @returns uint32_t *
13487 *****************************************************************************/
13489 uint32_t *
13490 xcb_input_xi_get_property_items_data_32 (const xcb_input_xi_get_property_items_t *S /**< */)
13492 return /* items */ S->data32;
13496 /*****************************************************************************
13498 ** int xcb_input_xi_get_property_items_data_32_length
13500 ** @param const xcb_input_xi_get_property_items_t *R
13501 ** @returns int
13503 *****************************************************************************/
13506 xcb_input_xi_get_property_items_data_32_length (const xcb_input_xi_get_property_reply_t *R /**< */,
13507 const xcb_input_xi_get_property_items_t *S /**< */)
13509 return R->num_items;
13513 /*****************************************************************************
13515 ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_32_end
13517 ** @param const xcb_input_xi_get_property_items_t *R
13518 ** @returns xcb_generic_iterator_t
13520 *****************************************************************************/
13522 xcb_generic_iterator_t
13523 xcb_input_xi_get_property_items_data_32_end (const xcb_input_xi_get_property_reply_t *R /**< */,
13524 const xcb_input_xi_get_property_items_t *S /**< */)
13526 xcb_generic_iterator_t i;
13527 i.data = /* items */ S->data32 + R->num_items;
13528 i.rem = 0;
13529 i.index = (char *) i.data - (char *) S;
13530 return i;
13534 xcb_input_xi_get_property_items_serialize (void **_buffer /**< */,
13535 uint32_t num_items /**< */,
13536 uint8_t format /**< */,
13537 const xcb_input_xi_get_property_items_t *_aux /**< */)
13539 char *xcb_out = *_buffer;
13540 unsigned int xcb_buffer_len = 0;
13541 unsigned int xcb_align_to = 0;
13543 unsigned int xcb_pad = 0;
13544 char xcb_pad0[3] = {0, 0, 0};
13545 struct iovec xcb_parts[7];
13546 unsigned int xcb_parts_idx = 0;
13547 unsigned int xcb_block_len = 0;
13548 unsigned int i;
13549 char *xcb_tmp;
13551 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
13552 /* insert padding */
13553 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13554 xcb_buffer_len += xcb_block_len + xcb_pad;
13555 if (0 != xcb_pad) {
13556 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13557 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13558 xcb_parts_idx++;
13559 xcb_pad = 0;
13561 xcb_block_len = 0;
13562 /* data8 */
13563 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data8;
13564 xcb_block_len += num_items * sizeof(uint8_t);
13565 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint8_t);
13566 xcb_parts_idx++;
13567 xcb_align_to = ALIGNOF(uint8_t);
13569 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
13570 /* insert padding */
13571 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13572 xcb_buffer_len += xcb_block_len + xcb_pad;
13573 if (0 != xcb_pad) {
13574 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13575 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13576 xcb_parts_idx++;
13577 xcb_pad = 0;
13579 xcb_block_len = 0;
13580 /* data16 */
13581 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data16;
13582 xcb_block_len += num_items * sizeof(uint16_t);
13583 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint16_t);
13584 xcb_parts_idx++;
13585 xcb_align_to = ALIGNOF(uint16_t);
13587 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
13588 /* insert padding */
13589 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13590 xcb_buffer_len += xcb_block_len + xcb_pad;
13591 if (0 != xcb_pad) {
13592 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13593 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13594 xcb_parts_idx++;
13595 xcb_pad = 0;
13597 xcb_block_len = 0;
13598 /* data32 */
13599 xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->data32;
13600 xcb_block_len += num_items * sizeof(uint32_t);
13601 xcb_parts[xcb_parts_idx].iov_len = num_items * sizeof(uint32_t);
13602 xcb_parts_idx++;
13603 xcb_align_to = ALIGNOF(uint32_t);
13605 /* insert padding */
13606 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13607 xcb_buffer_len += xcb_block_len + xcb_pad;
13608 if (0 != xcb_pad) {
13609 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0;
13610 xcb_parts[xcb_parts_idx].iov_len = xcb_pad;
13611 xcb_parts_idx++;
13612 xcb_pad = 0;
13614 xcb_block_len = 0;
13616 if (NULL == xcb_out) {
13617 /* allocate memory */
13618 xcb_out = malloc(xcb_buffer_len);
13619 *_buffer = xcb_out;
13622 xcb_tmp = xcb_out;
13623 for(i=0; i<xcb_parts_idx; i++) {
13624 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len)
13625 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len);
13626 if (0 != xcb_parts[i].iov_len)
13627 xcb_tmp += xcb_parts[i].iov_len;
13630 return xcb_buffer_len;
13634 xcb_input_xi_get_property_items_unpack (const void *_buffer /**< */,
13635 uint32_t num_items /**< */,
13636 uint8_t format /**< */,
13637 xcb_input_xi_get_property_items_t *_aux /**< */)
13639 char *xcb_tmp = (char *)_buffer;
13640 unsigned int xcb_buffer_len = 0;
13641 unsigned int xcb_block_len = 0;
13642 unsigned int xcb_pad = 0;
13643 unsigned int xcb_align_to = 0;
13646 if(format & XCB_INPUT_PROPERTY_FORMAT_8_BITS) {
13647 /* insert padding */
13648 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13649 xcb_buffer_len += xcb_block_len + xcb_pad;
13650 if (0 != xcb_pad) {
13651 xcb_tmp += xcb_pad;
13652 xcb_pad = 0;
13654 xcb_block_len = 0;
13655 /* data8 */
13656 _aux->data8 = (uint8_t *)xcb_tmp;
13657 xcb_block_len += num_items * sizeof(uint8_t);
13658 xcb_tmp += xcb_block_len;
13659 xcb_align_to = ALIGNOF(uint8_t);
13661 if(format & XCB_INPUT_PROPERTY_FORMAT_16_BITS) {
13662 /* insert padding */
13663 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13664 xcb_buffer_len += xcb_block_len + xcb_pad;
13665 if (0 != xcb_pad) {
13666 xcb_tmp += xcb_pad;
13667 xcb_pad = 0;
13669 xcb_block_len = 0;
13670 /* data16 */
13671 _aux->data16 = (uint16_t *)xcb_tmp;
13672 xcb_block_len += num_items * sizeof(uint16_t);
13673 xcb_tmp += xcb_block_len;
13674 xcb_align_to = ALIGNOF(uint16_t);
13676 if(format & XCB_INPUT_PROPERTY_FORMAT_32_BITS) {
13677 /* insert padding */
13678 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13679 xcb_buffer_len += xcb_block_len + xcb_pad;
13680 if (0 != xcb_pad) {
13681 xcb_tmp += xcb_pad;
13682 xcb_pad = 0;
13684 xcb_block_len = 0;
13685 /* data32 */
13686 _aux->data32 = (uint32_t *)xcb_tmp;
13687 xcb_block_len += num_items * sizeof(uint32_t);
13688 xcb_tmp += xcb_block_len;
13689 xcb_align_to = ALIGNOF(uint32_t);
13691 /* insert padding */
13692 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13693 xcb_buffer_len += xcb_block_len + xcb_pad;
13694 if (0 != xcb_pad) {
13695 xcb_tmp += xcb_pad;
13696 xcb_pad = 0;
13698 xcb_block_len = 0;
13700 return xcb_buffer_len;
13704 xcb_input_xi_get_property_items_sizeof (const void *_buffer /**< */,
13705 uint32_t num_items /**< */,
13706 uint8_t format /**< */)
13708 xcb_input_xi_get_property_items_t _aux;
13709 return xcb_input_xi_get_property_items_unpack(_buffer, num_items, format, &_aux);
13713 /*****************************************************************************
13715 ** xcb_input_xi_get_property_cookie_t xcb_input_xi_get_property
13717 ** @param xcb_connection_t *c
13718 ** @param xcb_input_device_id_t deviceid
13719 ** @param uint8_t _delete
13720 ** @param xcb_atom_t property
13721 ** @param xcb_atom_t type
13722 ** @param uint32_t offset
13723 ** @param uint32_t len
13724 ** @returns xcb_input_xi_get_property_cookie_t
13726 *****************************************************************************/
13728 xcb_input_xi_get_property_cookie_t
13729 xcb_input_xi_get_property (xcb_connection_t *c /**< */,
13730 xcb_input_device_id_t deviceid /**< */,
13731 uint8_t _delete /**< */,
13732 xcb_atom_t property /**< */,
13733 xcb_atom_t type /**< */,
13734 uint32_t offset /**< */,
13735 uint32_t len /**< */)
13737 static const xcb_protocol_request_t xcb_req = {
13738 /* count */ 2,
13739 /* ext */ &xcb_input_id,
13740 /* opcode */ XCB_INPUT_XI_GET_PROPERTY,
13741 /* isvoid */ 0
13744 struct iovec xcb_parts[4];
13745 xcb_input_xi_get_property_cookie_t xcb_ret;
13746 xcb_input_xi_get_property_request_t xcb_out;
13748 xcb_out.deviceid = deviceid;
13749 xcb_out._delete = _delete;
13750 xcb_out.pad0 = 0;
13751 xcb_out.property = property;
13752 xcb_out.type = type;
13753 xcb_out.offset = offset;
13754 xcb_out.len = len;
13756 xcb_parts[2].iov_base = (char *) &xcb_out;
13757 xcb_parts[2].iov_len = sizeof(xcb_out);
13758 xcb_parts[3].iov_base = 0;
13759 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13761 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13762 return xcb_ret;
13766 /*****************************************************************************
13768 ** xcb_input_xi_get_property_cookie_t xcb_input_xi_get_property_unchecked
13770 ** @param xcb_connection_t *c
13771 ** @param xcb_input_device_id_t deviceid
13772 ** @param uint8_t _delete
13773 ** @param xcb_atom_t property
13774 ** @param xcb_atom_t type
13775 ** @param uint32_t offset
13776 ** @param uint32_t len
13777 ** @returns xcb_input_xi_get_property_cookie_t
13779 *****************************************************************************/
13781 xcb_input_xi_get_property_cookie_t
13782 xcb_input_xi_get_property_unchecked (xcb_connection_t *c /**< */,
13783 xcb_input_device_id_t deviceid /**< */,
13784 uint8_t _delete /**< */,
13785 xcb_atom_t property /**< */,
13786 xcb_atom_t type /**< */,
13787 uint32_t offset /**< */,
13788 uint32_t len /**< */)
13790 static const xcb_protocol_request_t xcb_req = {
13791 /* count */ 2,
13792 /* ext */ &xcb_input_id,
13793 /* opcode */ XCB_INPUT_XI_GET_PROPERTY,
13794 /* isvoid */ 0
13797 struct iovec xcb_parts[4];
13798 xcb_input_xi_get_property_cookie_t xcb_ret;
13799 xcb_input_xi_get_property_request_t xcb_out;
13801 xcb_out.deviceid = deviceid;
13802 xcb_out._delete = _delete;
13803 xcb_out.pad0 = 0;
13804 xcb_out.property = property;
13805 xcb_out.type = type;
13806 xcb_out.offset = offset;
13807 xcb_out.len = len;
13809 xcb_parts[2].iov_base = (char *) &xcb_out;
13810 xcb_parts[2].iov_len = sizeof(xcb_out);
13811 xcb_parts[3].iov_base = 0;
13812 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13814 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13815 return xcb_ret;
13819 /*****************************************************************************
13821 ** xcb_input_xi_get_property_items_t * xcb_input_xi_get_property_items
13823 ** @param const xcb_input_xi_get_property_reply_t *R
13824 ** @returns xcb_input_xi_get_property_items_t *
13826 *****************************************************************************/
13828 void *
13829 xcb_input_xi_get_property_items (const xcb_input_xi_get_property_reply_t *R /**< */)
13831 return (void *) (R + 1);
13835 /*****************************************************************************
13837 ** xcb_input_xi_get_property_reply_t * xcb_input_xi_get_property_reply
13839 ** @param xcb_connection_t *c
13840 ** @param xcb_input_xi_get_property_cookie_t cookie
13841 ** @param xcb_generic_error_t **e
13842 ** @returns xcb_input_xi_get_property_reply_t *
13844 *****************************************************************************/
13846 xcb_input_xi_get_property_reply_t *
13847 xcb_input_xi_get_property_reply (xcb_connection_t *c /**< */,
13848 xcb_input_xi_get_property_cookie_t cookie /**< */,
13849 xcb_generic_error_t **e /**< */)
13851 return (xcb_input_xi_get_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
13855 xcb_input_xi_get_selected_events_sizeof (const void *_buffer /**< */)
13857 char *xcb_tmp = (char *)_buffer;
13858 const xcb_input_xi_get_selected_events_reply_t *_aux = (xcb_input_xi_get_selected_events_reply_t *)_buffer;
13859 unsigned int xcb_buffer_len = 0;
13860 unsigned int xcb_block_len = 0;
13861 unsigned int xcb_pad = 0;
13862 unsigned int xcb_align_to = 0;
13864 unsigned int i;
13865 unsigned int xcb_tmp_len;
13867 xcb_block_len += sizeof(xcb_input_xi_get_selected_events_reply_t);
13868 xcb_tmp += xcb_block_len;
13869 xcb_buffer_len += xcb_block_len;
13870 xcb_block_len = 0;
13871 /* masks */
13872 for(i=0; i<_aux->num_masks; i++) {
13873 xcb_tmp_len = xcb_input_event_mask_sizeof(xcb_tmp);
13874 xcb_block_len += xcb_tmp_len;
13875 xcb_tmp += xcb_tmp_len;
13877 xcb_align_to = ALIGNOF(xcb_input_event_mask_t);
13878 /* insert padding */
13879 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
13880 xcb_buffer_len += xcb_block_len + xcb_pad;
13881 if (0 != xcb_pad) {
13882 xcb_tmp += xcb_pad;
13883 xcb_pad = 0;
13885 xcb_block_len = 0;
13887 return xcb_buffer_len;
13891 /*****************************************************************************
13893 ** xcb_input_xi_get_selected_events_cookie_t xcb_input_xi_get_selected_events
13895 ** @param xcb_connection_t *c
13896 ** @param xcb_window_t window
13897 ** @returns xcb_input_xi_get_selected_events_cookie_t
13899 *****************************************************************************/
13901 xcb_input_xi_get_selected_events_cookie_t
13902 xcb_input_xi_get_selected_events (xcb_connection_t *c /**< */,
13903 xcb_window_t window /**< */)
13905 static const xcb_protocol_request_t xcb_req = {
13906 /* count */ 2,
13907 /* ext */ &xcb_input_id,
13908 /* opcode */ XCB_INPUT_XI_GET_SELECTED_EVENTS,
13909 /* isvoid */ 0
13912 struct iovec xcb_parts[4];
13913 xcb_input_xi_get_selected_events_cookie_t xcb_ret;
13914 xcb_input_xi_get_selected_events_request_t xcb_out;
13916 xcb_out.window = window;
13918 xcb_parts[2].iov_base = (char *) &xcb_out;
13919 xcb_parts[2].iov_len = sizeof(xcb_out);
13920 xcb_parts[3].iov_base = 0;
13921 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13923 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
13924 return xcb_ret;
13928 /*****************************************************************************
13930 ** xcb_input_xi_get_selected_events_cookie_t xcb_input_xi_get_selected_events_unchecked
13932 ** @param xcb_connection_t *c
13933 ** @param xcb_window_t window
13934 ** @returns xcb_input_xi_get_selected_events_cookie_t
13936 *****************************************************************************/
13938 xcb_input_xi_get_selected_events_cookie_t
13939 xcb_input_xi_get_selected_events_unchecked (xcb_connection_t *c /**< */,
13940 xcb_window_t window /**< */)
13942 static const xcb_protocol_request_t xcb_req = {
13943 /* count */ 2,
13944 /* ext */ &xcb_input_id,
13945 /* opcode */ XCB_INPUT_XI_GET_SELECTED_EVENTS,
13946 /* isvoid */ 0
13949 struct iovec xcb_parts[4];
13950 xcb_input_xi_get_selected_events_cookie_t xcb_ret;
13951 xcb_input_xi_get_selected_events_request_t xcb_out;
13953 xcb_out.window = window;
13955 xcb_parts[2].iov_base = (char *) &xcb_out;
13956 xcb_parts[2].iov_len = sizeof(xcb_out);
13957 xcb_parts[3].iov_base = 0;
13958 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
13960 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
13961 return xcb_ret;
13965 /*****************************************************************************
13967 ** int xcb_input_xi_get_selected_events_masks_length
13969 ** @param const xcb_input_xi_get_selected_events_reply_t *R
13970 ** @returns int
13972 *****************************************************************************/
13975 xcb_input_xi_get_selected_events_masks_length (const xcb_input_xi_get_selected_events_reply_t *R /**< */)
13977 return R->num_masks;
13981 /*****************************************************************************
13983 ** xcb_input_event_mask_iterator_t xcb_input_xi_get_selected_events_masks_iterator
13985 ** @param const xcb_input_xi_get_selected_events_reply_t *R
13986 ** @returns xcb_input_event_mask_iterator_t
13988 *****************************************************************************/
13990 xcb_input_event_mask_iterator_t
13991 xcb_input_xi_get_selected_events_masks_iterator (const xcb_input_xi_get_selected_events_reply_t *R /**< */)
13993 xcb_input_event_mask_iterator_t i;
13994 i.data = (xcb_input_event_mask_t *) (R + 1);
13995 i.rem = R->num_masks;
13996 i.index = (char *) i.data - (char *) R;
13997 return i;
14001 /*****************************************************************************
14003 ** xcb_input_xi_get_selected_events_reply_t * xcb_input_xi_get_selected_events_reply
14005 ** @param xcb_connection_t *c
14006 ** @param xcb_input_xi_get_selected_events_cookie_t cookie
14007 ** @param xcb_generic_error_t **e
14008 ** @returns xcb_input_xi_get_selected_events_reply_t *
14010 *****************************************************************************/
14012 xcb_input_xi_get_selected_events_reply_t *
14013 xcb_input_xi_get_selected_events_reply (xcb_connection_t *c /**< */,
14014 xcb_input_xi_get_selected_events_cookie_t cookie /**< */,
14015 xcb_generic_error_t **e /**< */)
14017 return (xcb_input_xi_get_selected_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
14021 /*****************************************************************************
14023 ** void xcb_input_barrier_release_pointer_info_next
14025 ** @param xcb_input_barrier_release_pointer_info_iterator_t *i
14026 ** @returns void
14028 *****************************************************************************/
14030 void
14031 xcb_input_barrier_release_pointer_info_next (xcb_input_barrier_release_pointer_info_iterator_t *i /**< */)
14033 --i->rem;
14034 ++i->data;
14035 i->index += sizeof(xcb_input_barrier_release_pointer_info_t);
14039 /*****************************************************************************
14041 ** xcb_generic_iterator_t xcb_input_barrier_release_pointer_info_end
14043 ** @param xcb_input_barrier_release_pointer_info_iterator_t i
14044 ** @returns xcb_generic_iterator_t
14046 *****************************************************************************/
14048 xcb_generic_iterator_t
14049 xcb_input_barrier_release_pointer_info_end (xcb_input_barrier_release_pointer_info_iterator_t i /**< */)
14051 xcb_generic_iterator_t ret;
14052 ret.data = i.data + i.rem;
14053 ret.index = i.index + ((char *) ret.data - (char *) i.data);
14054 ret.rem = 0;
14055 return ret;
14059 xcb_input_xi_barrier_release_pointer_sizeof (const void *_buffer /**< */)
14061 char *xcb_tmp = (char *)_buffer;
14062 const xcb_input_xi_barrier_release_pointer_request_t *_aux = (xcb_input_xi_barrier_release_pointer_request_t *)_buffer;
14063 unsigned int xcb_buffer_len = 0;
14064 unsigned int xcb_block_len = 0;
14065 unsigned int xcb_pad = 0;
14066 unsigned int xcb_align_to = 0;
14069 xcb_block_len += sizeof(xcb_input_xi_barrier_release_pointer_request_t);
14070 xcb_tmp += xcb_block_len;
14071 xcb_buffer_len += xcb_block_len;
14072 xcb_block_len = 0;
14073 /* barriers */
14074 xcb_block_len += _aux->num_barriers * sizeof(xcb_input_barrier_release_pointer_info_t);
14075 xcb_tmp += xcb_block_len;
14076 xcb_align_to = ALIGNOF(xcb_input_barrier_release_pointer_info_t);
14077 /* insert padding */
14078 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14079 xcb_buffer_len += xcb_block_len + xcb_pad;
14080 if (0 != xcb_pad) {
14081 xcb_tmp += xcb_pad;
14082 xcb_pad = 0;
14084 xcb_block_len = 0;
14086 return xcb_buffer_len;
14090 /*****************************************************************************
14092 ** xcb_void_cookie_t xcb_input_xi_barrier_release_pointer_checked
14094 ** @param xcb_connection_t *c
14095 ** @param uint32_t num_barriers
14096 ** @param const xcb_input_barrier_release_pointer_info_t *barriers
14097 ** @returns xcb_void_cookie_t
14099 *****************************************************************************/
14101 xcb_void_cookie_t
14102 xcb_input_xi_barrier_release_pointer_checked (xcb_connection_t *c /**< */,
14103 uint32_t num_barriers /**< */,
14104 const xcb_input_barrier_release_pointer_info_t *barriers /**< */)
14106 static const xcb_protocol_request_t xcb_req = {
14107 /* count */ 4,
14108 /* ext */ &xcb_input_id,
14109 /* opcode */ XCB_INPUT_XI_BARRIER_RELEASE_POINTER,
14110 /* isvoid */ 1
14113 struct iovec xcb_parts[6];
14114 xcb_void_cookie_t xcb_ret;
14115 xcb_input_xi_barrier_release_pointer_request_t xcb_out;
14117 xcb_out.num_barriers = num_barriers;
14119 xcb_parts[2].iov_base = (char *) &xcb_out;
14120 xcb_parts[2].iov_len = sizeof(xcb_out);
14121 xcb_parts[3].iov_base = 0;
14122 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
14123 /* xcb_input_barrier_release_pointer_info_t barriers */
14124 xcb_parts[4].iov_base = (char *) barriers;
14125 xcb_parts[4].iov_len = num_barriers * sizeof(xcb_input_barrier_release_pointer_info_t);
14126 xcb_parts[5].iov_base = 0;
14127 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
14129 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
14130 return xcb_ret;
14134 /*****************************************************************************
14136 ** xcb_void_cookie_t xcb_input_xi_barrier_release_pointer
14138 ** @param xcb_connection_t *c
14139 ** @param uint32_t num_barriers
14140 ** @param const xcb_input_barrier_release_pointer_info_t *barriers
14141 ** @returns xcb_void_cookie_t
14143 *****************************************************************************/
14145 xcb_void_cookie_t
14146 xcb_input_xi_barrier_release_pointer (xcb_connection_t *c /**< */,
14147 uint32_t num_barriers /**< */,
14148 const xcb_input_barrier_release_pointer_info_t *barriers /**< */)
14150 static const xcb_protocol_request_t xcb_req = {
14151 /* count */ 4,
14152 /* ext */ &xcb_input_id,
14153 /* opcode */ XCB_INPUT_XI_BARRIER_RELEASE_POINTER,
14154 /* isvoid */ 1
14157 struct iovec xcb_parts[6];
14158 xcb_void_cookie_t xcb_ret;
14159 xcb_input_xi_barrier_release_pointer_request_t xcb_out;
14161 xcb_out.num_barriers = num_barriers;
14163 xcb_parts[2].iov_base = (char *) &xcb_out;
14164 xcb_parts[2].iov_len = sizeof(xcb_out);
14165 xcb_parts[3].iov_base = 0;
14166 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
14167 /* xcb_input_barrier_release_pointer_info_t barriers */
14168 xcb_parts[4].iov_base = (char *) barriers;
14169 xcb_parts[4].iov_len = num_barriers * sizeof(xcb_input_barrier_release_pointer_info_t);
14170 xcb_parts[5].iov_base = 0;
14171 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
14173 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
14174 return xcb_ret;
14178 xcb_input_device_changed_sizeof (const void *_buffer /**< */)
14180 char *xcb_tmp = (char *)_buffer;
14181 const xcb_input_device_changed_event_t *_aux = (xcb_input_device_changed_event_t *)_buffer;
14182 unsigned int xcb_buffer_len = 0;
14183 unsigned int xcb_block_len = 0;
14184 unsigned int xcb_pad = 0;
14185 unsigned int xcb_align_to = 0;
14187 unsigned int i;
14188 unsigned int xcb_tmp_len;
14190 xcb_block_len += sizeof(xcb_input_device_changed_event_t);
14191 xcb_tmp += xcb_block_len;
14192 xcb_buffer_len += xcb_block_len;
14193 xcb_block_len = 0;
14194 /* classes */
14195 for(i=0; i<_aux->num_classes; i++) {
14196 xcb_tmp_len = xcb_input_device_class_sizeof(xcb_tmp);
14197 xcb_block_len += xcb_tmp_len;
14198 xcb_tmp += xcb_tmp_len;
14200 xcb_align_to = ALIGNOF(xcb_input_device_class_t);
14201 /* insert padding */
14202 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14203 xcb_buffer_len += xcb_block_len + xcb_pad;
14204 if (0 != xcb_pad) {
14205 xcb_tmp += xcb_pad;
14206 xcb_pad = 0;
14208 xcb_block_len = 0;
14210 return xcb_buffer_len;
14214 xcb_input_key_press_sizeof (const void *_buffer /**< */)
14216 char *xcb_tmp = (char *)_buffer;
14217 const xcb_input_key_press_event_t *_aux = (xcb_input_key_press_event_t *)_buffer;
14218 unsigned int xcb_buffer_len = 0;
14219 unsigned int xcb_block_len = 0;
14220 unsigned int xcb_pad = 0;
14221 unsigned int xcb_align_to = 0;
14224 xcb_block_len += sizeof(xcb_input_key_press_event_t);
14225 xcb_tmp += xcb_block_len;
14226 xcb_buffer_len += xcb_block_len;
14227 xcb_block_len = 0;
14228 /* button_mask */
14229 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14230 xcb_tmp += xcb_block_len;
14231 xcb_align_to = ALIGNOF(uint32_t);
14232 /* insert padding */
14233 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14234 xcb_buffer_len += xcb_block_len + xcb_pad;
14235 if (0 != xcb_pad) {
14236 xcb_tmp += xcb_pad;
14237 xcb_pad = 0;
14239 xcb_block_len = 0;
14240 /* valuator_mask */
14241 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14242 xcb_tmp += xcb_block_len;
14243 xcb_align_to = ALIGNOF(uint32_t);
14244 /* insert padding */
14245 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14246 xcb_buffer_len += xcb_block_len + xcb_pad;
14247 if (0 != xcb_pad) {
14248 xcb_tmp += xcb_pad;
14249 xcb_pad = 0;
14251 xcb_block_len = 0;
14253 return xcb_buffer_len;
14257 xcb_input_key_release_sizeof (const void *_buffer /**< */)
14259 char *xcb_tmp = (char *)_buffer;
14260 const xcb_input_key_release_event_t *_aux = (xcb_input_key_release_event_t *)_buffer;
14261 unsigned int xcb_buffer_len = 0;
14262 unsigned int xcb_block_len = 0;
14263 unsigned int xcb_pad = 0;
14264 unsigned int xcb_align_to = 0;
14267 xcb_block_len += sizeof(xcb_input_key_release_event_t);
14268 xcb_tmp += xcb_block_len;
14269 xcb_buffer_len += xcb_block_len;
14270 xcb_block_len = 0;
14271 /* button_mask */
14272 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14273 xcb_tmp += xcb_block_len;
14274 xcb_align_to = ALIGNOF(uint32_t);
14275 /* insert padding */
14276 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14277 xcb_buffer_len += xcb_block_len + xcb_pad;
14278 if (0 != xcb_pad) {
14279 xcb_tmp += xcb_pad;
14280 xcb_pad = 0;
14282 xcb_block_len = 0;
14283 /* valuator_mask */
14284 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14285 xcb_tmp += xcb_block_len;
14286 xcb_align_to = ALIGNOF(uint32_t);
14287 /* insert padding */
14288 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14289 xcb_buffer_len += xcb_block_len + xcb_pad;
14290 if (0 != xcb_pad) {
14291 xcb_tmp += xcb_pad;
14292 xcb_pad = 0;
14294 xcb_block_len = 0;
14296 return xcb_buffer_len;
14300 xcb_input_button_press_sizeof (const void *_buffer /**< */)
14302 char *xcb_tmp = (char *)_buffer;
14303 const xcb_input_button_press_event_t *_aux = (xcb_input_button_press_event_t *)_buffer;
14304 unsigned int xcb_buffer_len = 0;
14305 unsigned int xcb_block_len = 0;
14306 unsigned int xcb_pad = 0;
14307 unsigned int xcb_align_to = 0;
14310 xcb_block_len += sizeof(xcb_input_button_press_event_t);
14311 xcb_tmp += xcb_block_len;
14312 xcb_buffer_len += xcb_block_len;
14313 xcb_block_len = 0;
14314 /* button_mask */
14315 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14316 xcb_tmp += xcb_block_len;
14317 xcb_align_to = ALIGNOF(uint32_t);
14318 /* insert padding */
14319 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14320 xcb_buffer_len += xcb_block_len + xcb_pad;
14321 if (0 != xcb_pad) {
14322 xcb_tmp += xcb_pad;
14323 xcb_pad = 0;
14325 xcb_block_len = 0;
14326 /* valuator_mask */
14327 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14328 xcb_tmp += xcb_block_len;
14329 xcb_align_to = ALIGNOF(uint32_t);
14330 /* insert padding */
14331 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14332 xcb_buffer_len += xcb_block_len + xcb_pad;
14333 if (0 != xcb_pad) {
14334 xcb_tmp += xcb_pad;
14335 xcb_pad = 0;
14337 xcb_block_len = 0;
14339 return xcb_buffer_len;
14343 xcb_input_button_release_sizeof (const void *_buffer /**< */)
14345 char *xcb_tmp = (char *)_buffer;
14346 const xcb_input_button_release_event_t *_aux = (xcb_input_button_release_event_t *)_buffer;
14347 unsigned int xcb_buffer_len = 0;
14348 unsigned int xcb_block_len = 0;
14349 unsigned int xcb_pad = 0;
14350 unsigned int xcb_align_to = 0;
14353 xcb_block_len += sizeof(xcb_input_button_release_event_t);
14354 xcb_tmp += xcb_block_len;
14355 xcb_buffer_len += xcb_block_len;
14356 xcb_block_len = 0;
14357 /* button_mask */
14358 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14359 xcb_tmp += xcb_block_len;
14360 xcb_align_to = ALIGNOF(uint32_t);
14361 /* insert padding */
14362 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14363 xcb_buffer_len += xcb_block_len + xcb_pad;
14364 if (0 != xcb_pad) {
14365 xcb_tmp += xcb_pad;
14366 xcb_pad = 0;
14368 xcb_block_len = 0;
14369 /* valuator_mask */
14370 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14371 xcb_tmp += xcb_block_len;
14372 xcb_align_to = ALIGNOF(uint32_t);
14373 /* insert padding */
14374 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14375 xcb_buffer_len += xcb_block_len + xcb_pad;
14376 if (0 != xcb_pad) {
14377 xcb_tmp += xcb_pad;
14378 xcb_pad = 0;
14380 xcb_block_len = 0;
14382 return xcb_buffer_len;
14386 xcb_input_motion_sizeof (const void *_buffer /**< */)
14388 char *xcb_tmp = (char *)_buffer;
14389 const xcb_input_motion_event_t *_aux = (xcb_input_motion_event_t *)_buffer;
14390 unsigned int xcb_buffer_len = 0;
14391 unsigned int xcb_block_len = 0;
14392 unsigned int xcb_pad = 0;
14393 unsigned int xcb_align_to = 0;
14396 xcb_block_len += sizeof(xcb_input_motion_event_t);
14397 xcb_tmp += xcb_block_len;
14398 xcb_buffer_len += xcb_block_len;
14399 xcb_block_len = 0;
14400 /* button_mask */
14401 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14402 xcb_tmp += xcb_block_len;
14403 xcb_align_to = ALIGNOF(uint32_t);
14404 /* insert padding */
14405 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14406 xcb_buffer_len += xcb_block_len + xcb_pad;
14407 if (0 != xcb_pad) {
14408 xcb_tmp += xcb_pad;
14409 xcb_pad = 0;
14411 xcb_block_len = 0;
14412 /* valuator_mask */
14413 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14414 xcb_tmp += xcb_block_len;
14415 xcb_align_to = ALIGNOF(uint32_t);
14416 /* insert padding */
14417 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14418 xcb_buffer_len += xcb_block_len + xcb_pad;
14419 if (0 != xcb_pad) {
14420 xcb_tmp += xcb_pad;
14421 xcb_pad = 0;
14423 xcb_block_len = 0;
14425 return xcb_buffer_len;
14429 xcb_input_enter_sizeof (const void *_buffer /**< */)
14431 char *xcb_tmp = (char *)_buffer;
14432 const xcb_input_enter_event_t *_aux = (xcb_input_enter_event_t *)_buffer;
14433 unsigned int xcb_buffer_len = 0;
14434 unsigned int xcb_block_len = 0;
14435 unsigned int xcb_pad = 0;
14436 unsigned int xcb_align_to = 0;
14439 xcb_block_len += sizeof(xcb_input_enter_event_t);
14440 xcb_tmp += xcb_block_len;
14441 xcb_buffer_len += xcb_block_len;
14442 xcb_block_len = 0;
14443 /* buttons */
14444 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14445 xcb_tmp += xcb_block_len;
14446 xcb_align_to = ALIGNOF(uint32_t);
14447 /* insert padding */
14448 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14449 xcb_buffer_len += xcb_block_len + xcb_pad;
14450 if (0 != xcb_pad) {
14451 xcb_tmp += xcb_pad;
14452 xcb_pad = 0;
14454 xcb_block_len = 0;
14456 return xcb_buffer_len;
14460 xcb_input_leave_sizeof (const void *_buffer /**< */)
14462 char *xcb_tmp = (char *)_buffer;
14463 const xcb_input_leave_event_t *_aux = (xcb_input_leave_event_t *)_buffer;
14464 unsigned int xcb_buffer_len = 0;
14465 unsigned int xcb_block_len = 0;
14466 unsigned int xcb_pad = 0;
14467 unsigned int xcb_align_to = 0;
14470 xcb_block_len += sizeof(xcb_input_leave_event_t);
14471 xcb_tmp += xcb_block_len;
14472 xcb_buffer_len += xcb_block_len;
14473 xcb_block_len = 0;
14474 /* buttons */
14475 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14476 xcb_tmp += xcb_block_len;
14477 xcb_align_to = ALIGNOF(uint32_t);
14478 /* insert padding */
14479 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14480 xcb_buffer_len += xcb_block_len + xcb_pad;
14481 if (0 != xcb_pad) {
14482 xcb_tmp += xcb_pad;
14483 xcb_pad = 0;
14485 xcb_block_len = 0;
14487 return xcb_buffer_len;
14491 xcb_input_focus_in_sizeof (const void *_buffer /**< */)
14493 char *xcb_tmp = (char *)_buffer;
14494 const xcb_input_focus_in_event_t *_aux = (xcb_input_focus_in_event_t *)_buffer;
14495 unsigned int xcb_buffer_len = 0;
14496 unsigned int xcb_block_len = 0;
14497 unsigned int xcb_pad = 0;
14498 unsigned int xcb_align_to = 0;
14501 xcb_block_len += sizeof(xcb_input_focus_in_event_t);
14502 xcb_tmp += xcb_block_len;
14503 xcb_buffer_len += xcb_block_len;
14504 xcb_block_len = 0;
14505 /* buttons */
14506 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14507 xcb_tmp += xcb_block_len;
14508 xcb_align_to = ALIGNOF(uint32_t);
14509 /* insert padding */
14510 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14511 xcb_buffer_len += xcb_block_len + xcb_pad;
14512 if (0 != xcb_pad) {
14513 xcb_tmp += xcb_pad;
14514 xcb_pad = 0;
14516 xcb_block_len = 0;
14518 return xcb_buffer_len;
14522 xcb_input_focus_out_sizeof (const void *_buffer /**< */)
14524 char *xcb_tmp = (char *)_buffer;
14525 const xcb_input_focus_out_event_t *_aux = (xcb_input_focus_out_event_t *)_buffer;
14526 unsigned int xcb_buffer_len = 0;
14527 unsigned int xcb_block_len = 0;
14528 unsigned int xcb_pad = 0;
14529 unsigned int xcb_align_to = 0;
14532 xcb_block_len += sizeof(xcb_input_focus_out_event_t);
14533 xcb_tmp += xcb_block_len;
14534 xcb_buffer_len += xcb_block_len;
14535 xcb_block_len = 0;
14536 /* buttons */
14537 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14538 xcb_tmp += xcb_block_len;
14539 xcb_align_to = ALIGNOF(uint32_t);
14540 /* insert padding */
14541 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14542 xcb_buffer_len += xcb_block_len + xcb_pad;
14543 if (0 != xcb_pad) {
14544 xcb_tmp += xcb_pad;
14545 xcb_pad = 0;
14547 xcb_block_len = 0;
14549 return xcb_buffer_len;
14553 /*****************************************************************************
14555 ** void xcb_input_hierarchy_info_next
14557 ** @param xcb_input_hierarchy_info_iterator_t *i
14558 ** @returns void
14560 *****************************************************************************/
14562 void
14563 xcb_input_hierarchy_info_next (xcb_input_hierarchy_info_iterator_t *i /**< */)
14565 --i->rem;
14566 ++i->data;
14567 i->index += sizeof(xcb_input_hierarchy_info_t);
14571 /*****************************************************************************
14573 ** xcb_generic_iterator_t xcb_input_hierarchy_info_end
14575 ** @param xcb_input_hierarchy_info_iterator_t i
14576 ** @returns xcb_generic_iterator_t
14578 *****************************************************************************/
14580 xcb_generic_iterator_t
14581 xcb_input_hierarchy_info_end (xcb_input_hierarchy_info_iterator_t i /**< */)
14583 xcb_generic_iterator_t ret;
14584 ret.data = i.data + i.rem;
14585 ret.index = i.index + ((char *) ret.data - (char *) i.data);
14586 ret.rem = 0;
14587 return ret;
14591 xcb_input_hierarchy_sizeof (const void *_buffer /**< */)
14593 char *xcb_tmp = (char *)_buffer;
14594 const xcb_input_hierarchy_event_t *_aux = (xcb_input_hierarchy_event_t *)_buffer;
14595 unsigned int xcb_buffer_len = 0;
14596 unsigned int xcb_block_len = 0;
14597 unsigned int xcb_pad = 0;
14598 unsigned int xcb_align_to = 0;
14601 xcb_block_len += sizeof(xcb_input_hierarchy_event_t);
14602 xcb_tmp += xcb_block_len;
14603 xcb_buffer_len += xcb_block_len;
14604 xcb_block_len = 0;
14605 /* infos */
14606 xcb_block_len += _aux->num_infos * sizeof(xcb_input_hierarchy_info_t);
14607 xcb_tmp += xcb_block_len;
14608 xcb_align_to = ALIGNOF(xcb_input_hierarchy_info_t);
14609 /* insert padding */
14610 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14611 xcb_buffer_len += xcb_block_len + xcb_pad;
14612 if (0 != xcb_pad) {
14613 xcb_tmp += xcb_pad;
14614 xcb_pad = 0;
14616 xcb_block_len = 0;
14618 return xcb_buffer_len;
14622 xcb_input_raw_key_press_sizeof (const void *_buffer /**< */)
14624 char *xcb_tmp = (char *)_buffer;
14625 const xcb_input_raw_key_press_event_t *_aux = (xcb_input_raw_key_press_event_t *)_buffer;
14626 unsigned int xcb_buffer_len = 0;
14627 unsigned int xcb_block_len = 0;
14628 unsigned int xcb_pad = 0;
14629 unsigned int xcb_align_to = 0;
14632 xcb_block_len += sizeof(xcb_input_raw_key_press_event_t);
14633 xcb_tmp += xcb_block_len;
14634 xcb_buffer_len += xcb_block_len;
14635 xcb_block_len = 0;
14636 /* valuator_mask */
14637 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14638 xcb_tmp += xcb_block_len;
14639 xcb_align_to = ALIGNOF(uint32_t);
14640 /* insert padding */
14641 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14642 xcb_buffer_len += xcb_block_len + xcb_pad;
14643 if (0 != xcb_pad) {
14644 xcb_tmp += xcb_pad;
14645 xcb_pad = 0;
14647 xcb_block_len = 0;
14649 return xcb_buffer_len;
14653 xcb_input_raw_key_release_sizeof (const void *_buffer /**< */)
14655 char *xcb_tmp = (char *)_buffer;
14656 const xcb_input_raw_key_release_event_t *_aux = (xcb_input_raw_key_release_event_t *)_buffer;
14657 unsigned int xcb_buffer_len = 0;
14658 unsigned int xcb_block_len = 0;
14659 unsigned int xcb_pad = 0;
14660 unsigned int xcb_align_to = 0;
14663 xcb_block_len += sizeof(xcb_input_raw_key_release_event_t);
14664 xcb_tmp += xcb_block_len;
14665 xcb_buffer_len += xcb_block_len;
14666 xcb_block_len = 0;
14667 /* valuator_mask */
14668 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14669 xcb_tmp += xcb_block_len;
14670 xcb_align_to = ALIGNOF(uint32_t);
14671 /* insert padding */
14672 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14673 xcb_buffer_len += xcb_block_len + xcb_pad;
14674 if (0 != xcb_pad) {
14675 xcb_tmp += xcb_pad;
14676 xcb_pad = 0;
14678 xcb_block_len = 0;
14680 return xcb_buffer_len;
14684 xcb_input_raw_button_press_sizeof (const void *_buffer /**< */)
14686 char *xcb_tmp = (char *)_buffer;
14687 const xcb_input_raw_button_press_event_t *_aux = (xcb_input_raw_button_press_event_t *)_buffer;
14688 unsigned int xcb_buffer_len = 0;
14689 unsigned int xcb_block_len = 0;
14690 unsigned int xcb_pad = 0;
14691 unsigned int xcb_align_to = 0;
14694 xcb_block_len += sizeof(xcb_input_raw_button_press_event_t);
14695 xcb_tmp += xcb_block_len;
14696 xcb_buffer_len += xcb_block_len;
14697 xcb_block_len = 0;
14698 /* valuator_mask */
14699 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14700 xcb_tmp += xcb_block_len;
14701 xcb_align_to = ALIGNOF(uint32_t);
14702 /* insert padding */
14703 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14704 xcb_buffer_len += xcb_block_len + xcb_pad;
14705 if (0 != xcb_pad) {
14706 xcb_tmp += xcb_pad;
14707 xcb_pad = 0;
14709 xcb_block_len = 0;
14711 return xcb_buffer_len;
14715 xcb_input_raw_button_release_sizeof (const void *_buffer /**< */)
14717 char *xcb_tmp = (char *)_buffer;
14718 const xcb_input_raw_button_release_event_t *_aux = (xcb_input_raw_button_release_event_t *)_buffer;
14719 unsigned int xcb_buffer_len = 0;
14720 unsigned int xcb_block_len = 0;
14721 unsigned int xcb_pad = 0;
14722 unsigned int xcb_align_to = 0;
14725 xcb_block_len += sizeof(xcb_input_raw_button_release_event_t);
14726 xcb_tmp += xcb_block_len;
14727 xcb_buffer_len += xcb_block_len;
14728 xcb_block_len = 0;
14729 /* valuator_mask */
14730 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14731 xcb_tmp += xcb_block_len;
14732 xcb_align_to = ALIGNOF(uint32_t);
14733 /* insert padding */
14734 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14735 xcb_buffer_len += xcb_block_len + xcb_pad;
14736 if (0 != xcb_pad) {
14737 xcb_tmp += xcb_pad;
14738 xcb_pad = 0;
14740 xcb_block_len = 0;
14742 return xcb_buffer_len;
14746 xcb_input_raw_motion_sizeof (const void *_buffer /**< */)
14748 char *xcb_tmp = (char *)_buffer;
14749 const xcb_input_raw_motion_event_t *_aux = (xcb_input_raw_motion_event_t *)_buffer;
14750 unsigned int xcb_buffer_len = 0;
14751 unsigned int xcb_block_len = 0;
14752 unsigned int xcb_pad = 0;
14753 unsigned int xcb_align_to = 0;
14756 xcb_block_len += sizeof(xcb_input_raw_motion_event_t);
14757 xcb_tmp += xcb_block_len;
14758 xcb_buffer_len += xcb_block_len;
14759 xcb_block_len = 0;
14760 /* valuator_mask */
14761 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14762 xcb_tmp += xcb_block_len;
14763 xcb_align_to = ALIGNOF(uint32_t);
14764 /* insert padding */
14765 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14766 xcb_buffer_len += xcb_block_len + xcb_pad;
14767 if (0 != xcb_pad) {
14768 xcb_tmp += xcb_pad;
14769 xcb_pad = 0;
14771 xcb_block_len = 0;
14773 return xcb_buffer_len;
14777 xcb_input_touch_begin_sizeof (const void *_buffer /**< */)
14779 char *xcb_tmp = (char *)_buffer;
14780 const xcb_input_touch_begin_event_t *_aux = (xcb_input_touch_begin_event_t *)_buffer;
14781 unsigned int xcb_buffer_len = 0;
14782 unsigned int xcb_block_len = 0;
14783 unsigned int xcb_pad = 0;
14784 unsigned int xcb_align_to = 0;
14787 xcb_block_len += sizeof(xcb_input_touch_begin_event_t);
14788 xcb_tmp += xcb_block_len;
14789 xcb_buffer_len += xcb_block_len;
14790 xcb_block_len = 0;
14791 /* button_mask */
14792 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14793 xcb_tmp += xcb_block_len;
14794 xcb_align_to = ALIGNOF(uint32_t);
14795 /* insert padding */
14796 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14797 xcb_buffer_len += xcb_block_len + xcb_pad;
14798 if (0 != xcb_pad) {
14799 xcb_tmp += xcb_pad;
14800 xcb_pad = 0;
14802 xcb_block_len = 0;
14803 /* valuator_mask */
14804 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14805 xcb_tmp += xcb_block_len;
14806 xcb_align_to = ALIGNOF(uint32_t);
14807 /* insert padding */
14808 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14809 xcb_buffer_len += xcb_block_len + xcb_pad;
14810 if (0 != xcb_pad) {
14811 xcb_tmp += xcb_pad;
14812 xcb_pad = 0;
14814 xcb_block_len = 0;
14816 return xcb_buffer_len;
14820 xcb_input_touch_update_sizeof (const void *_buffer /**< */)
14822 char *xcb_tmp = (char *)_buffer;
14823 const xcb_input_touch_update_event_t *_aux = (xcb_input_touch_update_event_t *)_buffer;
14824 unsigned int xcb_buffer_len = 0;
14825 unsigned int xcb_block_len = 0;
14826 unsigned int xcb_pad = 0;
14827 unsigned int xcb_align_to = 0;
14830 xcb_block_len += sizeof(xcb_input_touch_update_event_t);
14831 xcb_tmp += xcb_block_len;
14832 xcb_buffer_len += xcb_block_len;
14833 xcb_block_len = 0;
14834 /* button_mask */
14835 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14836 xcb_tmp += xcb_block_len;
14837 xcb_align_to = ALIGNOF(uint32_t);
14838 /* insert padding */
14839 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14840 xcb_buffer_len += xcb_block_len + xcb_pad;
14841 if (0 != xcb_pad) {
14842 xcb_tmp += xcb_pad;
14843 xcb_pad = 0;
14845 xcb_block_len = 0;
14846 /* valuator_mask */
14847 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14848 xcb_tmp += xcb_block_len;
14849 xcb_align_to = ALIGNOF(uint32_t);
14850 /* insert padding */
14851 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14852 xcb_buffer_len += xcb_block_len + xcb_pad;
14853 if (0 != xcb_pad) {
14854 xcb_tmp += xcb_pad;
14855 xcb_pad = 0;
14857 xcb_block_len = 0;
14859 return xcb_buffer_len;
14863 xcb_input_touch_end_sizeof (const void *_buffer /**< */)
14865 char *xcb_tmp = (char *)_buffer;
14866 const xcb_input_touch_end_event_t *_aux = (xcb_input_touch_end_event_t *)_buffer;
14867 unsigned int xcb_buffer_len = 0;
14868 unsigned int xcb_block_len = 0;
14869 unsigned int xcb_pad = 0;
14870 unsigned int xcb_align_to = 0;
14873 xcb_block_len += sizeof(xcb_input_touch_end_event_t);
14874 xcb_tmp += xcb_block_len;
14875 xcb_buffer_len += xcb_block_len;
14876 xcb_block_len = 0;
14877 /* button_mask */
14878 xcb_block_len += _aux->buttons_len * sizeof(uint32_t);
14879 xcb_tmp += xcb_block_len;
14880 xcb_align_to = ALIGNOF(uint32_t);
14881 /* insert padding */
14882 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14883 xcb_buffer_len += xcb_block_len + xcb_pad;
14884 if (0 != xcb_pad) {
14885 xcb_tmp += xcb_pad;
14886 xcb_pad = 0;
14888 xcb_block_len = 0;
14889 /* valuator_mask */
14890 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14891 xcb_tmp += xcb_block_len;
14892 xcb_align_to = ALIGNOF(uint32_t);
14893 /* insert padding */
14894 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14895 xcb_buffer_len += xcb_block_len + xcb_pad;
14896 if (0 != xcb_pad) {
14897 xcb_tmp += xcb_pad;
14898 xcb_pad = 0;
14900 xcb_block_len = 0;
14902 return xcb_buffer_len;
14906 xcb_input_raw_touch_begin_sizeof (const void *_buffer /**< */)
14908 char *xcb_tmp = (char *)_buffer;
14909 const xcb_input_raw_touch_begin_event_t *_aux = (xcb_input_raw_touch_begin_event_t *)_buffer;
14910 unsigned int xcb_buffer_len = 0;
14911 unsigned int xcb_block_len = 0;
14912 unsigned int xcb_pad = 0;
14913 unsigned int xcb_align_to = 0;
14916 xcb_block_len += sizeof(xcb_input_raw_touch_begin_event_t);
14917 xcb_tmp += xcb_block_len;
14918 xcb_buffer_len += xcb_block_len;
14919 xcb_block_len = 0;
14920 /* valuator_mask */
14921 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14922 xcb_tmp += xcb_block_len;
14923 xcb_align_to = ALIGNOF(uint32_t);
14924 /* insert padding */
14925 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14926 xcb_buffer_len += xcb_block_len + xcb_pad;
14927 if (0 != xcb_pad) {
14928 xcb_tmp += xcb_pad;
14929 xcb_pad = 0;
14931 xcb_block_len = 0;
14933 return xcb_buffer_len;
14937 xcb_input_raw_touch_update_sizeof (const void *_buffer /**< */)
14939 char *xcb_tmp = (char *)_buffer;
14940 const xcb_input_raw_touch_update_event_t *_aux = (xcb_input_raw_touch_update_event_t *)_buffer;
14941 unsigned int xcb_buffer_len = 0;
14942 unsigned int xcb_block_len = 0;
14943 unsigned int xcb_pad = 0;
14944 unsigned int xcb_align_to = 0;
14947 xcb_block_len += sizeof(xcb_input_raw_touch_update_event_t);
14948 xcb_tmp += xcb_block_len;
14949 xcb_buffer_len += xcb_block_len;
14950 xcb_block_len = 0;
14951 /* valuator_mask */
14952 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14953 xcb_tmp += xcb_block_len;
14954 xcb_align_to = ALIGNOF(uint32_t);
14955 /* insert padding */
14956 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14957 xcb_buffer_len += xcb_block_len + xcb_pad;
14958 if (0 != xcb_pad) {
14959 xcb_tmp += xcb_pad;
14960 xcb_pad = 0;
14962 xcb_block_len = 0;
14964 return xcb_buffer_len;
14968 xcb_input_raw_touch_end_sizeof (const void *_buffer /**< */)
14970 char *xcb_tmp = (char *)_buffer;
14971 const xcb_input_raw_touch_end_event_t *_aux = (xcb_input_raw_touch_end_event_t *)_buffer;
14972 unsigned int xcb_buffer_len = 0;
14973 unsigned int xcb_block_len = 0;
14974 unsigned int xcb_pad = 0;
14975 unsigned int xcb_align_to = 0;
14978 xcb_block_len += sizeof(xcb_input_raw_touch_end_event_t);
14979 xcb_tmp += xcb_block_len;
14980 xcb_buffer_len += xcb_block_len;
14981 xcb_block_len = 0;
14982 /* valuator_mask */
14983 xcb_block_len += _aux->valuators_len * sizeof(uint32_t);
14984 xcb_tmp += xcb_block_len;
14985 xcb_align_to = ALIGNOF(uint32_t);
14986 /* insert padding */
14987 xcb_pad = -xcb_block_len & (xcb_align_to - 1);
14988 xcb_buffer_len += xcb_block_len + xcb_pad;
14989 if (0 != xcb_pad) {
14990 xcb_tmp += xcb_pad;
14991 xcb_pad = 0;
14993 xcb_block_len = 0;
14995 return xcb_buffer_len;