1 /* 2 * This file generated automatically from xinput.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 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 "xcbext.h" 14 #include "xinput.h" 15 16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 #include "xproto.h" 18 #include "render.h" 19 #include "shape.h" 20 #include "xfixes.h" 21 22 xcb_extension_t xcb_input_id = { "XInputExtension", 0 }; 23 24 25 /***************************************************************************** 26 ** 27 ** void xcb_input_event_class_next 28 ** 29 ** @param xcb_input_event_class_iterator_t *i 30 ** @returns void 31 ** 32 *****************************************************************************/ 33 34 void 35 xcb_input_event_class_next (xcb_input_event_class_iterator_t *i /**< */) 36 { 37 --i->rem; 38 ++i->data; 39 i->index += sizeof(xcb_input_event_class_t); 40 } 41 42 43 /***************************************************************************** 44 ** 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 49 ** 50 *****************************************************************************/ 51 52 xcb_generic_iterator_t 53 xcb_input_event_class_end (xcb_input_event_class_iterator_t i /**< */) 54 { 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; 60 } 61 62 63 /***************************************************************************** 64 ** 65 ** void xcb_input_key_code_next 66 ** 67 ** @param xcb_input_key_code_iterator_t *i 68 ** @returns void 69 ** 70 *****************************************************************************/ 71 72 void 73 xcb_input_key_code_next (xcb_input_key_code_iterator_t *i /**< */) 74 { 75 --i->rem; 76 ++i->data; 77 i->index += sizeof(xcb_input_key_code_t); 78 } 79 80 81 /***************************************************************************** 82 ** 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 87 ** 88 *****************************************************************************/ 89 90 xcb_generic_iterator_t 91 xcb_input_key_code_end (xcb_input_key_code_iterator_t i /**< */) 92 { 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; 98 } 99 100 101 /***************************************************************************** 102 ** 103 ** void xcb_input_device_id_next 104 ** 105 ** @param xcb_input_device_id_iterator_t *i 106 ** @returns void 107 ** 108 *****************************************************************************/ 109 110 void 111 xcb_input_device_id_next (xcb_input_device_id_iterator_t *i /**< */) 112 { 113 --i->rem; 114 ++i->data; 115 i->index += sizeof(xcb_input_device_id_t); 116 } 117 118 119 /***************************************************************************** 120 ** 121 ** xcb_generic_iterator_t xcb_input_device_id_end 122 ** 123 ** @param xcb_input_device_id_iterator_t i 124 ** @returns xcb_generic_iterator_t 125 ** 126 *****************************************************************************/ 127 128 xcb_generic_iterator_t 129 xcb_input_device_id_end (xcb_input_device_id_iterator_t i /**< */) 130 { 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; 136 } 137 138 139 /***************************************************************************** 140 ** 141 ** void xcb_input_fp1616_next 142 ** 143 ** @param xcb_input_fp1616_iterator_t *i 144 ** @returns void 145 ** 146 *****************************************************************************/ 147 148 void 149 xcb_input_fp1616_next (xcb_input_fp1616_iterator_t *i /**< */) 150 { 151 --i->rem; 152 ++i->data; 153 i->index += sizeof(xcb_input_fp1616_t); 154 } 155 156 157 /***************************************************************************** 158 ** 159 ** xcb_generic_iterator_t xcb_input_fp1616_end 160 ** 161 ** @param xcb_input_fp1616_iterator_t i 162 ** @returns xcb_generic_iterator_t 163 ** 164 *****************************************************************************/ 165 166 xcb_generic_iterator_t 167 xcb_input_fp1616_end (xcb_input_fp1616_iterator_t i /**< */) 168 { 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; 174 } 175 176 177 /***************************************************************************** 178 ** 179 ** void xcb_input_fp3232_next 180 ** 181 ** @param xcb_input_fp3232_iterator_t *i 182 ** @returns void 183 ** 184 *****************************************************************************/ 185 186 void 187 xcb_input_fp3232_next (xcb_input_fp3232_iterator_t *i /**< */) 188 { 189 --i->rem; 190 ++i->data; 191 i->index += sizeof(xcb_input_fp3232_t); 192 } 193 194 195 /***************************************************************************** 196 ** 197 ** xcb_generic_iterator_t xcb_input_fp3232_end 198 ** 199 ** @param xcb_input_fp3232_iterator_t i 200 ** @returns xcb_generic_iterator_t 201 ** 202 *****************************************************************************/ 203 204 xcb_generic_iterator_t 205 xcb_input_fp3232_end (xcb_input_fp3232_iterator_t i /**< */) 206 { 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; 212 } 213 214 int 215 xcb_input_get_extension_version_sizeof (const void *_buffer /**< */) 216 { 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; 223 224 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; 239 } 240 xcb_block_len = 0; 241 242 return xcb_buffer_len; 243 } 244 245 246 /***************************************************************************** 247 ** 248 ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version 249 ** 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 254 ** 255 *****************************************************************************/ 256 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 /**< */) 261 { 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 267 }; 268 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; 272 273 xcb_out.name_len = name_len; 274 memset(xcb_out.pad0, 0, 2); 275 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; 285 286 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 287 return xcb_ret; 288 } 289 290 291 /***************************************************************************** 292 ** 293 ** xcb_input_get_extension_version_cookie_t xcb_input_get_extension_version_unchecked 294 ** 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 299 ** 300 *****************************************************************************/ 301 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 /**< */) 306 { 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 312 }; 313 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; 317 318 xcb_out.name_len = name_len; 319 memset(xcb_out.pad0, 0, 2); 320 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; 330 331 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 332 return xcb_ret; 333 } 334 335 336 /***************************************************************************** 337 ** 338 ** xcb_input_get_extension_version_reply_t * xcb_input_get_extension_version_reply 339 ** 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 * 344 ** 345 *****************************************************************************/ 346 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 /**< */) 351 { 352 return (xcb_input_get_extension_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 353 } 354 355 356 /***************************************************************************** 357 ** 358 ** void xcb_input_device_info_next 359 ** 360 ** @param xcb_input_device_info_iterator_t *i 361 ** @returns void 362 ** 363 *****************************************************************************/ 364 365 void 366 xcb_input_device_info_next (xcb_input_device_info_iterator_t *i /**< */) 367 { 368 --i->rem; 369 ++i->data; 370 i->index += sizeof(xcb_input_device_info_t); 371 } 372 373 374 /***************************************************************************** 375 ** 376 ** xcb_generic_iterator_t xcb_input_device_info_end 377 ** 378 ** @param xcb_input_device_info_iterator_t i 379 ** @returns xcb_generic_iterator_t 380 ** 381 *****************************************************************************/ 382 383 xcb_generic_iterator_t 384 xcb_input_device_info_end (xcb_input_device_info_iterator_t i /**< */) 385 { 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; 391 } 392 393 394 /***************************************************************************** 395 ** 396 ** void xcb_input_key_info_next 397 ** 398 ** @param xcb_input_key_info_iterator_t *i 399 ** @returns void 400 ** 401 *****************************************************************************/ 402 403 void 404 xcb_input_key_info_next (xcb_input_key_info_iterator_t *i /**< */) 405 { 406 --i->rem; 407 ++i->data; 408 i->index += sizeof(xcb_input_key_info_t); 409 } 410 411 412 /***************************************************************************** 413 ** 414 ** xcb_generic_iterator_t xcb_input_key_info_end 415 ** 416 ** @param xcb_input_key_info_iterator_t i 417 ** @returns xcb_generic_iterator_t 418 ** 419 *****************************************************************************/ 420 421 xcb_generic_iterator_t 422 xcb_input_key_info_end (xcb_input_key_info_iterator_t i /**< */) 423 { 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; 429 } 430 431 432 /***************************************************************************** 433 ** 434 ** void xcb_input_button_info_next 435 ** 436 ** @param xcb_input_button_info_iterator_t *i 437 ** @returns void 438 ** 439 *****************************************************************************/ 440 441 void 442 xcb_input_button_info_next (xcb_input_button_info_iterator_t *i /**< */) 443 { 444 --i->rem; 445 ++i->data; 446 i->index += sizeof(xcb_input_button_info_t); 447 } 448 449 450 /***************************************************************************** 451 ** 452 ** xcb_generic_iterator_t xcb_input_button_info_end 453 ** 454 ** @param xcb_input_button_info_iterator_t i 455 ** @returns xcb_generic_iterator_t 456 ** 457 *****************************************************************************/ 458 459 xcb_generic_iterator_t 460 xcb_input_button_info_end (xcb_input_button_info_iterator_t i /**< */) 461 { 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; 467 } 468 469 470 /***************************************************************************** 471 ** 472 ** void xcb_input_axis_info_next 473 ** 474 ** @param xcb_input_axis_info_iterator_t *i 475 ** @returns void 476 ** 477 *****************************************************************************/ 478 479 void 480 xcb_input_axis_info_next (xcb_input_axis_info_iterator_t *i /**< */) 481 { 482 --i->rem; 483 ++i->data; 484 i->index += sizeof(xcb_input_axis_info_t); 485 } 486 487 488 /***************************************************************************** 489 ** 490 ** xcb_generic_iterator_t xcb_input_axis_info_end 491 ** 492 ** @param xcb_input_axis_info_iterator_t i 493 ** @returns xcb_generic_iterator_t 494 ** 495 *****************************************************************************/ 496 497 xcb_generic_iterator_t 498 xcb_input_axis_info_end (xcb_input_axis_info_iterator_t i /**< */) 499 { 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; 505 } 506 507 int 508 xcb_input_valuator_info_sizeof (const void *_buffer /**< */) 509 { 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; 516 517 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; 532 } 533 xcb_block_len = 0; 534 535 return xcb_buffer_len; 536 } 537 538 539 /***************************************************************************** 540 ** 541 ** xcb_input_axis_info_t * xcb_input_valuator_info_axes 542 ** 543 ** @param const xcb_input_valuator_info_t *R 544 ** @returns xcb_input_axis_info_t * 545 ** 546 *****************************************************************************/ 547 548 xcb_input_axis_info_t * 549 xcb_input_valuator_info_axes (const xcb_input_valuator_info_t *R /**< */) 550 { 551 return (xcb_input_axis_info_t *) (R + 1); 552 } 553 554 555 /***************************************************************************** 556 ** 557 ** int xcb_input_valuator_info_axes_length 558 ** 559 ** @param const xcb_input_valuator_info_t *R 560 ** @returns int 561 ** 562 *****************************************************************************/ 563 564 int 565 xcb_input_valuator_info_axes_length (const xcb_input_valuator_info_t *R /**< */) 566 { 567 return R->axes_len; 568 } 569 570 571 /***************************************************************************** 572 ** 573 ** xcb_input_axis_info_iterator_t xcb_input_valuator_info_axes_iterator 574 ** 575 ** @param const xcb_input_valuator_info_t *R 576 ** @returns xcb_input_axis_info_iterator_t 577 ** 578 *****************************************************************************/ 579 580 xcb_input_axis_info_iterator_t 581 xcb_input_valuator_info_axes_iterator (const xcb_input_valuator_info_t *R /**< */) 582 { 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; 588 } 589 590 591 /***************************************************************************** 592 ** 593 ** void xcb_input_valuator_info_next 594 ** 595 ** @param xcb_input_valuator_info_iterator_t *i 596 ** @returns void 597 ** 598 *****************************************************************************/ 599 600 void 601 xcb_input_valuator_info_next (xcb_input_valuator_info_iterator_t *i /**< */) 602 { 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; 609 } 610 611 612 /***************************************************************************** 613 ** 614 ** xcb_generic_iterator_t xcb_input_valuator_info_end 615 ** 616 ** @param xcb_input_valuator_info_iterator_t i 617 ** @returns xcb_generic_iterator_t 618 ** 619 *****************************************************************************/ 620 621 xcb_generic_iterator_t 622 xcb_input_valuator_info_end (xcb_input_valuator_info_iterator_t i /**< */) 623 { 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; 631 } 632 633 634 /***************************************************************************** 635 ** 636 ** void xcb_input_input_info_next 637 ** 638 ** @param xcb_input_input_info_iterator_t *i 639 ** @returns void 640 ** 641 *****************************************************************************/ 642 643 void 644 xcb_input_input_info_next (xcb_input_input_info_iterator_t *i /**< */) 645 { 646 --i->rem; 647 ++i->data; 648 i->index += sizeof(xcb_input_input_info_t); 649 } 650 651 652 /***************************************************************************** 653 ** 654 ** xcb_generic_iterator_t xcb_input_input_info_end 655 ** 656 ** @param xcb_input_input_info_iterator_t i 657 ** @returns xcb_generic_iterator_t 658 ** 659 *****************************************************************************/ 660 661 xcb_generic_iterator_t 662 xcb_input_input_info_end (xcb_input_input_info_iterator_t i /**< */) 663 { 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; 669 } 670 671 int 672 xcb_input_device_name_sizeof (const void *_buffer /**< */) 673 { 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; 680 681 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; 696 } 697 xcb_block_len = 0; 698 699 return xcb_buffer_len; 700 } 701 702 703 /***************************************************************************** 704 ** 705 ** char * xcb_input_device_name_string 706 ** 707 ** @param const xcb_input_device_name_t *R 708 ** @returns char * 709 ** 710 *****************************************************************************/ 711 712 char * 713 xcb_input_device_name_string (const xcb_input_device_name_t *R /**< */) 714 { 715 return (char *) (R + 1); 716 } 717 718 719 /***************************************************************************** 720 ** 721 ** int xcb_input_device_name_string_length 722 ** 723 ** @param const xcb_input_device_name_t *R 724 ** @returns int 725 ** 726 *****************************************************************************/ 727 728 int 729 xcb_input_device_name_string_length (const xcb_input_device_name_t *R /**< */) 730 { 731 return R->len; 732 } 733 734 735 /***************************************************************************** 736 ** 737 ** xcb_generic_iterator_t xcb_input_device_name_string_end 738 ** 739 ** @param const xcb_input_device_name_t *R 740 ** @returns xcb_generic_iterator_t 741 ** 742 *****************************************************************************/ 743 744 xcb_generic_iterator_t 745 xcb_input_device_name_string_end (const xcb_input_device_name_t *R /**< */) 746 { 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; 752 } 753 754 755 /***************************************************************************** 756 ** 757 ** void xcb_input_device_name_next 758 ** 759 ** @param xcb_input_device_name_iterator_t *i 760 ** @returns void 761 ** 762 *****************************************************************************/ 763 764 void 765 xcb_input_device_name_next (xcb_input_device_name_iterator_t *i /**< */) 766 { 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; 773 } 774 775 776 /***************************************************************************** 777 ** 778 ** xcb_generic_iterator_t xcb_input_device_name_end 779 ** 780 ** @param xcb_input_device_name_iterator_t i 781 ** @returns xcb_generic_iterator_t 782 ** 783 *****************************************************************************/ 784 785 xcb_generic_iterator_t 786 xcb_input_device_name_end (xcb_input_device_name_iterator_t i /**< */) 787 { 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; 795 } 796 797 int 798 xcb_input_list_input_devices_sizeof (const void *_buffer /**< */) 799 { 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; 806 807 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; 822 } 823 xcb_block_len = 0; 824 825 return xcb_buffer_len; 826 } 827 828 829 /***************************************************************************** 830 ** 831 ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices 832 ** 833 ** @param xcb_connection_t *c 834 ** @returns xcb_input_list_input_devices_cookie_t 835 ** 836 *****************************************************************************/ 837 838 xcb_input_list_input_devices_cookie_t 839 xcb_input_list_input_devices (xcb_connection_t *c /**< */) 840 { 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 846 }; 847 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; 851 852 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; 857 858 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 859 return xcb_ret; 860 } 861 862 863 /***************************************************************************** 864 ** 865 ** xcb_input_list_input_devices_cookie_t xcb_input_list_input_devices_unchecked 866 ** 867 ** @param xcb_connection_t *c 868 ** @returns xcb_input_list_input_devices_cookie_t 869 ** 870 *****************************************************************************/ 871 872 xcb_input_list_input_devices_cookie_t 873 xcb_input_list_input_devices_unchecked (xcb_connection_t *c /**< */) 874 { 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 880 }; 881 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; 885 886 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; 891 892 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 893 return xcb_ret; 894 } 895 896 897 /***************************************************************************** 898 ** 899 ** xcb_input_device_info_t * xcb_input_list_input_devices_devices 900 ** 901 ** @param const xcb_input_list_input_devices_reply_t *R 902 ** @returns xcb_input_device_info_t * 903 ** 904 *****************************************************************************/ 905 906 xcb_input_device_info_t * 907 xcb_input_list_input_devices_devices (const xcb_input_list_input_devices_reply_t *R /**< */) 908 { 909 return (xcb_input_device_info_t *) (R + 1); 910 } 911 912 913 /***************************************************************************** 914 ** 915 ** int xcb_input_list_input_devices_devices_length 916 ** 917 ** @param const xcb_input_list_input_devices_reply_t *R 918 ** @returns int 919 ** 920 *****************************************************************************/ 921 922 int 923 xcb_input_list_input_devices_devices_length (const xcb_input_list_input_devices_reply_t *R /**< */) 924 { 925 return R->devices_len; 926 } 927 928 929 /***************************************************************************** 930 ** 931 ** xcb_input_device_info_iterator_t xcb_input_list_input_devices_devices_iterator 932 ** 933 ** @param const xcb_input_list_input_devices_reply_t *R 934 ** @returns xcb_input_device_info_iterator_t 935 ** 936 *****************************************************************************/ 937 938 xcb_input_device_info_iterator_t 939 xcb_input_list_input_devices_devices_iterator (const xcb_input_list_input_devices_reply_t *R /**< */) 940 { 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; 946 } 947 948 949 /***************************************************************************** 950 ** 951 ** xcb_input_list_input_devices_reply_t * xcb_input_list_input_devices_reply 952 ** 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 * 957 ** 958 *****************************************************************************/ 959 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 /**< */) 964 { 965 return (xcb_input_list_input_devices_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 966 } 967 968 969 /***************************************************************************** 970 ** 971 ** void xcb_input_input_class_info_next 972 ** 973 ** @param xcb_input_input_class_info_iterator_t *i 974 ** @returns void 975 ** 976 *****************************************************************************/ 977 978 void 979 xcb_input_input_class_info_next (xcb_input_input_class_info_iterator_t *i /**< */) 980 { 981 --i->rem; 982 ++i->data; 983 i->index += sizeof(xcb_input_input_class_info_t); 984 } 985 986 987 /***************************************************************************** 988 ** 989 ** xcb_generic_iterator_t xcb_input_input_class_info_end 990 ** 991 ** @param xcb_input_input_class_info_iterator_t i 992 ** @returns xcb_generic_iterator_t 993 ** 994 *****************************************************************************/ 995 996 xcb_generic_iterator_t 997 xcb_input_input_class_info_end (xcb_input_input_class_info_iterator_t i /**< */) 998 { 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; 1004 } 1005 1006 int 1007 xcb_input_open_device_sizeof (const void *_buffer /**< */) 1008 { 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; 1015 1016 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; 1031 } 1032 xcb_block_len = 0; 1033 1034 return xcb_buffer_len; 1035 } 1036 1037 1038 /***************************************************************************** 1039 ** 1040 ** xcb_input_open_device_cookie_t xcb_input_open_device 1041 ** 1042 ** @param xcb_connection_t *c 1043 ** @param uint8_t device_id 1044 ** @returns xcb_input_open_device_cookie_t 1045 ** 1046 *****************************************************************************/ 1047 1048 xcb_input_open_device_cookie_t 1049 xcb_input_open_device (xcb_connection_t *c /**< */, 1050 uint8_t device_id /**< */) 1051 { 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 1057 }; 1058 1059 struct iovec xcb_parts[4]; 1060 xcb_input_open_device_cookie_t xcb_ret; 1061 xcb_input_open_device_request_t xcb_out; 1062 1063 xcb_out.device_id = device_id; 1064 memset(xcb_out.pad0, 0, 3); 1065 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; 1070 1071 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1072 return xcb_ret; 1073 } 1074 1075 1076 /***************************************************************************** 1077 ** 1078 ** xcb_input_open_device_cookie_t xcb_input_open_device_unchecked 1079 ** 1080 ** @param xcb_connection_t *c 1081 ** @param uint8_t device_id 1082 ** @returns xcb_input_open_device_cookie_t 1083 ** 1084 *****************************************************************************/ 1085 1086 xcb_input_open_device_cookie_t 1087 xcb_input_open_device_unchecked (xcb_connection_t *c /**< */, 1088 uint8_t device_id /**< */) 1089 { 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 1095 }; 1096 1097 struct iovec xcb_parts[4]; 1098 xcb_input_open_device_cookie_t xcb_ret; 1099 xcb_input_open_device_request_t xcb_out; 1100 1101 xcb_out.device_id = device_id; 1102 memset(xcb_out.pad0, 0, 3); 1103 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; 1108 1109 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1110 return xcb_ret; 1111 } 1112 1113 1114 /***************************************************************************** 1115 ** 1116 ** xcb_input_input_class_info_t * xcb_input_open_device_class_info 1117 ** 1118 ** @param const xcb_input_open_device_reply_t *R 1119 ** @returns xcb_input_input_class_info_t * 1120 ** 1121 *****************************************************************************/ 1122 1123 xcb_input_input_class_info_t * 1124 xcb_input_open_device_class_info (const xcb_input_open_device_reply_t *R /**< */) 1125 { 1126 return (xcb_input_input_class_info_t *) (R + 1); 1127 } 1128 1129 1130 /***************************************************************************** 1131 ** 1132 ** int xcb_input_open_device_class_info_length 1133 ** 1134 ** @param const xcb_input_open_device_reply_t *R 1135 ** @returns int 1136 ** 1137 *****************************************************************************/ 1138 1139 int 1140 xcb_input_open_device_class_info_length (const xcb_input_open_device_reply_t *R /**< */) 1141 { 1142 return R->num_classes; 1143 } 1144 1145 1146 /***************************************************************************** 1147 ** 1148 ** xcb_input_input_class_info_iterator_t xcb_input_open_device_class_info_iterator 1149 ** 1150 ** @param const xcb_input_open_device_reply_t *R 1151 ** @returns xcb_input_input_class_info_iterator_t 1152 ** 1153 *****************************************************************************/ 1154 1155 xcb_input_input_class_info_iterator_t 1156 xcb_input_open_device_class_info_iterator (const xcb_input_open_device_reply_t *R /**< */) 1157 { 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; 1163 } 1164 1165 1166 /***************************************************************************** 1167 ** 1168 ** xcb_input_open_device_reply_t * xcb_input_open_device_reply 1169 ** 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 * 1174 ** 1175 *****************************************************************************/ 1176 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 /**< */) 1181 { 1182 return (xcb_input_open_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1183 } 1184 1185 1186 /***************************************************************************** 1187 ** 1188 ** xcb_void_cookie_t xcb_input_close_device_checked 1189 ** 1190 ** @param xcb_connection_t *c 1191 ** @param uint8_t device_id 1192 ** @returns xcb_void_cookie_t 1193 ** 1194 *****************************************************************************/ 1195 1196 xcb_void_cookie_t 1197 xcb_input_close_device_checked (xcb_connection_t *c /**< */, 1198 uint8_t device_id /**< */) 1199 { 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 1205 }; 1206 1207 struct iovec xcb_parts[4]; 1208 xcb_void_cookie_t xcb_ret; 1209 xcb_input_close_device_request_t xcb_out; 1210 1211 xcb_out.device_id = device_id; 1212 memset(xcb_out.pad0, 0, 3); 1213 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; 1218 1219 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1220 return xcb_ret; 1221 } 1222 1223 1224 /***************************************************************************** 1225 ** 1226 ** xcb_void_cookie_t xcb_input_close_device 1227 ** 1228 ** @param xcb_connection_t *c 1229 ** @param uint8_t device_id 1230 ** @returns xcb_void_cookie_t 1231 ** 1232 *****************************************************************************/ 1233 1234 xcb_void_cookie_t 1235 xcb_input_close_device (xcb_connection_t *c /**< */, 1236 uint8_t device_id /**< */) 1237 { 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 1243 }; 1244 1245 struct iovec xcb_parts[4]; 1246 xcb_void_cookie_t xcb_ret; 1247 xcb_input_close_device_request_t xcb_out; 1248 1249 xcb_out.device_id = device_id; 1250 memset(xcb_out.pad0, 0, 3); 1251 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; 1256 1257 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1258 return xcb_ret; 1259 } 1260 1261 1262 /***************************************************************************** 1263 ** 1264 ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode 1265 ** 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 1270 ** 1271 *****************************************************************************/ 1272 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 /**< */) 1277 { 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 1283 }; 1284 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; 1288 1289 xcb_out.device_id = device_id; 1290 xcb_out.mode = mode; 1291 memset(xcb_out.pad0, 0, 2); 1292 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; 1297 1298 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1299 return xcb_ret; 1300 } 1301 1302 1303 /***************************************************************************** 1304 ** 1305 ** xcb_input_set_device_mode_cookie_t xcb_input_set_device_mode_unchecked 1306 ** 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 1311 ** 1312 *****************************************************************************/ 1313 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 /**< */) 1318 { 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 1324 }; 1325 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; 1329 1330 xcb_out.device_id = device_id; 1331 xcb_out.mode = mode; 1332 memset(xcb_out.pad0, 0, 2); 1333 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; 1338 1339 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1340 return xcb_ret; 1341 } 1342 1343 1344 /***************************************************************************** 1345 ** 1346 ** xcb_input_set_device_mode_reply_t * xcb_input_set_device_mode_reply 1347 ** 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 * 1352 ** 1353 *****************************************************************************/ 1354 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 /**< */) 1359 { 1360 return (xcb_input_set_device_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1361 } 1362 1363 int 1364 xcb_input_select_extension_event_sizeof (const void *_buffer /**< */) 1365 { 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; 1372 1373 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; 1388 } 1389 xcb_block_len = 0; 1390 1391 return xcb_buffer_len; 1392 } 1393 1394 1395 /***************************************************************************** 1396 ** 1397 ** xcb_void_cookie_t xcb_input_select_extension_event_checked 1398 ** 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 1404 ** 1405 *****************************************************************************/ 1406 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 /**< */) 1412 { 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 1418 }; 1419 1420 struct iovec xcb_parts[6]; 1421 xcb_void_cookie_t xcb_ret; 1422 xcb_input_select_extension_event_request_t xcb_out; 1423 1424 xcb_out.window = window; 1425 xcb_out.num_classes = num_classes; 1426 memset(xcb_out.pad0, 0, 2); 1427 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; 1437 1438 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1439 return xcb_ret; 1440 } 1441 1442 1443 /***************************************************************************** 1444 ** 1445 ** xcb_void_cookie_t xcb_input_select_extension_event 1446 ** 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 1452 ** 1453 *****************************************************************************/ 1454 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 /**< */) 1460 { 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 1466 }; 1467 1468 struct iovec xcb_parts[6]; 1469 xcb_void_cookie_t xcb_ret; 1470 xcb_input_select_extension_event_request_t xcb_out; 1471 1472 xcb_out.window = window; 1473 xcb_out.num_classes = num_classes; 1474 memset(xcb_out.pad0, 0, 2); 1475 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; 1485 1486 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1487 return xcb_ret; 1488 } 1489 1490 int 1491 xcb_input_get_selected_extension_events_sizeof (const void *_buffer /**< */) 1492 { 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; 1499 1500 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; 1515 } 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; 1527 } 1528 xcb_block_len = 0; 1529 1530 return xcb_buffer_len; 1531 } 1532 1533 1534 /***************************************************************************** 1535 ** 1536 ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events 1537 ** 1538 ** @param xcb_connection_t *c 1539 ** @param xcb_window_t window 1540 ** @returns xcb_input_get_selected_extension_events_cookie_t 1541 ** 1542 *****************************************************************************/ 1543 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 /**< */) 1547 { 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 1553 }; 1554 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; 1558 1559 xcb_out.window = window; 1560 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; 1565 1566 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1567 return xcb_ret; 1568 } 1569 1570 1571 /***************************************************************************** 1572 ** 1573 ** xcb_input_get_selected_extension_events_cookie_t xcb_input_get_selected_extension_events_unchecked 1574 ** 1575 ** @param xcb_connection_t *c 1576 ** @param xcb_window_t window 1577 ** @returns xcb_input_get_selected_extension_events_cookie_t 1578 ** 1579 *****************************************************************************/ 1580 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 /**< */) 1584 { 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 1590 }; 1591 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; 1595 1596 xcb_out.window = window; 1597 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; 1602 1603 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1604 return xcb_ret; 1605 } 1606 1607 1608 /***************************************************************************** 1609 ** 1610 ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_this_classes 1611 ** 1612 ** @param const xcb_input_get_selected_extension_events_reply_t *R 1613 ** @returns xcb_input_event_class_t * 1614 ** 1615 *****************************************************************************/ 1616 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 /**< */) 1619 { 1620 return (xcb_input_event_class_t *) (R + 1); 1621 } 1622 1623 1624 /***************************************************************************** 1625 ** 1626 ** int xcb_input_get_selected_extension_events_this_classes_length 1627 ** 1628 ** @param const xcb_input_get_selected_extension_events_reply_t *R 1629 ** @returns int 1630 ** 1631 *****************************************************************************/ 1632 1633 int 1634 xcb_input_get_selected_extension_events_this_classes_length (const xcb_input_get_selected_extension_events_reply_t *R /**< */) 1635 { 1636 return R->num_this_classes; 1637 } 1638 1639 1640 /***************************************************************************** 1641 ** 1642 ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_this_classes_end 1643 ** 1644 ** @param const xcb_input_get_selected_extension_events_reply_t *R 1645 ** @returns xcb_generic_iterator_t 1646 ** 1647 *****************************************************************************/ 1648 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 /**< */) 1651 { 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; 1657 } 1658 1659 1660 /***************************************************************************** 1661 ** 1662 ** xcb_input_event_class_t * xcb_input_get_selected_extension_events_all_classes 1663 ** 1664 ** @param const xcb_input_get_selected_extension_events_reply_t *R 1665 ** @returns xcb_input_event_class_t * 1666 ** 1667 *****************************************************************************/ 1668 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 /**< */) 1671 { 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); 1674 } 1675 1676 1677 /***************************************************************************** 1678 ** 1679 ** int xcb_input_get_selected_extension_events_all_classes_length 1680 ** 1681 ** @param const xcb_input_get_selected_extension_events_reply_t *R 1682 ** @returns int 1683 ** 1684 *****************************************************************************/ 1685 1686 int 1687 xcb_input_get_selected_extension_events_all_classes_length (const xcb_input_get_selected_extension_events_reply_t *R /**< */) 1688 { 1689 return R->num_all_classes; 1690 } 1691 1692 1693 /***************************************************************************** 1694 ** 1695 ** xcb_generic_iterator_t xcb_input_get_selected_extension_events_all_classes_end 1696 ** 1697 ** @param const xcb_input_get_selected_extension_events_reply_t *R 1698 ** @returns xcb_generic_iterator_t 1699 ** 1700 *****************************************************************************/ 1701 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 /**< */) 1704 { 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; 1711 } 1712 1713 1714 /***************************************************************************** 1715 ** 1716 ** xcb_input_get_selected_extension_events_reply_t * xcb_input_get_selected_extension_events_reply 1717 ** 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 * 1722 ** 1723 *****************************************************************************/ 1724 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 /**< */) 1729 { 1730 return (xcb_input_get_selected_extension_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1731 } 1732 1733 int 1734 xcb_input_change_device_dont_propagate_list_sizeof (const void *_buffer /**< */) 1735 { 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; 1742 1743 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; 1758 } 1759 xcb_block_len = 0; 1760 1761 return xcb_buffer_len; 1762 } 1763 1764 1765 /***************************************************************************** 1766 ** 1767 ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list_checked 1768 ** 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 1775 ** 1776 *****************************************************************************/ 1777 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 /**< */) 1784 { 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 1790 }; 1791 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; 1795 1796 xcb_out.window = window; 1797 xcb_out.num_classes = num_classes; 1798 xcb_out.mode = mode; 1799 xcb_out.pad0 = 0; 1800 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; 1810 1811 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1812 return xcb_ret; 1813 } 1814 1815 1816 /***************************************************************************** 1817 ** 1818 ** xcb_void_cookie_t xcb_input_change_device_dont_propagate_list 1819 ** 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 1826 ** 1827 *****************************************************************************/ 1828 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 /**< */) 1835 { 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 1841 }; 1842 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; 1846 1847 xcb_out.window = window; 1848 xcb_out.num_classes = num_classes; 1849 xcb_out.mode = mode; 1850 xcb_out.pad0 = 0; 1851 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; 1861 1862 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1863 return xcb_ret; 1864 } 1865 1866 int 1867 xcb_input_get_device_dont_propagate_list_sizeof (const void *_buffer /**< */) 1868 { 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; 1875 1876 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; 1891 } 1892 xcb_block_len = 0; 1893 1894 return xcb_buffer_len; 1895 } 1896 1897 1898 /***************************************************************************** 1899 ** 1900 ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list 1901 ** 1902 ** @param xcb_connection_t *c 1903 ** @param xcb_window_t window 1904 ** @returns xcb_input_get_device_dont_propagate_list_cookie_t 1905 ** 1906 *****************************************************************************/ 1907 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 /**< */) 1911 { 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 1917 }; 1918 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; 1922 1923 xcb_out.window = window; 1924 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; 1929 1930 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1931 return xcb_ret; 1932 } 1933 1934 1935 /***************************************************************************** 1936 ** 1937 ** xcb_input_get_device_dont_propagate_list_cookie_t xcb_input_get_device_dont_propagate_list_unchecked 1938 ** 1939 ** @param xcb_connection_t *c 1940 ** @param xcb_window_t window 1941 ** @returns xcb_input_get_device_dont_propagate_list_cookie_t 1942 ** 1943 *****************************************************************************/ 1944 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 /**< */) 1948 { 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 1954 }; 1955 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; 1959 1960 xcb_out.window = window; 1961 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; 1966 1967 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1968 return xcb_ret; 1969 } 1970 1971 1972 /***************************************************************************** 1973 ** 1974 ** xcb_input_event_class_t * xcb_input_get_device_dont_propagate_list_classes 1975 ** 1976 ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R 1977 ** @returns xcb_input_event_class_t * 1978 ** 1979 *****************************************************************************/ 1980 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 /**< */) 1983 { 1984 return (xcb_input_event_class_t *) (R + 1); 1985 } 1986 1987 1988 /***************************************************************************** 1989 ** 1990 ** int xcb_input_get_device_dont_propagate_list_classes_length 1991 ** 1992 ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R 1993 ** @returns int 1994 ** 1995 *****************************************************************************/ 1996 1997 int 1998 xcb_input_get_device_dont_propagate_list_classes_length (const xcb_input_get_device_dont_propagate_list_reply_t *R /**< */) 1999 { 2000 return R->num_classes; 2001 } 2002 2003 2004 /***************************************************************************** 2005 ** 2006 ** xcb_generic_iterator_t xcb_input_get_device_dont_propagate_list_classes_end 2007 ** 2008 ** @param const xcb_input_get_device_dont_propagate_list_reply_t *R 2009 ** @returns xcb_generic_iterator_t 2010 ** 2011 *****************************************************************************/ 2012 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 /**< */) 2015 { 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; 2021 } 2022 2023 2024 /***************************************************************************** 2025 ** 2026 ** xcb_input_get_device_dont_propagate_list_reply_t * xcb_input_get_device_dont_propagate_list_reply 2027 ** 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 * 2032 ** 2033 *****************************************************************************/ 2034 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 /**< */) 2039 { 2040 return (xcb_input_get_device_dont_propagate_list_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2041 } 2042 2043 2044 /***************************************************************************** 2045 ** 2046 ** void xcb_input_device_time_coord_next 2047 ** 2048 ** @param xcb_input_device_time_coord_iterator_t *i 2049 ** @returns void 2050 ** 2051 *****************************************************************************/ 2052 2053 void 2054 xcb_input_device_time_coord_next (xcb_input_device_time_coord_iterator_t *i /**< */) 2055 { 2056 --i->rem; 2057 ++i->data; 2058 i->index += sizeof(xcb_input_device_time_coord_t); 2059 } 2060 2061 2062 /***************************************************************************** 2063 ** 2064 ** xcb_generic_iterator_t xcb_input_device_time_coord_end 2065 ** 2066 ** @param xcb_input_device_time_coord_iterator_t i 2067 ** @returns xcb_generic_iterator_t 2068 ** 2069 *****************************************************************************/ 2070 2071 xcb_generic_iterator_t 2072 xcb_input_device_time_coord_end (xcb_input_device_time_coord_iterator_t i /**< */) 2073 { 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; 2079 } 2080 2081 2082 /***************************************************************************** 2083 ** 2084 ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events 2085 ** 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 2091 ** 2092 *****************************************************************************/ 2093 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 /**< */) 2099 { 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 2105 }; 2106 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; 2110 2111 xcb_out.start = start; 2112 xcb_out.stop = stop; 2113 xcb_out.device_id = device_id; 2114 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; 2119 2120 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2121 return xcb_ret; 2122 } 2123 2124 2125 /***************************************************************************** 2126 ** 2127 ** xcb_input_get_device_motion_events_cookie_t xcb_input_get_device_motion_events_unchecked 2128 ** 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 2134 ** 2135 *****************************************************************************/ 2136 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 /**< */) 2142 { 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 2148 }; 2149 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; 2153 2154 xcb_out.start = start; 2155 xcb_out.stop = stop; 2156 xcb_out.device_id = device_id; 2157 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; 2162 2163 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2164 return xcb_ret; 2165 } 2166 2167 2168 /***************************************************************************** 2169 ** 2170 ** xcb_input_get_device_motion_events_reply_t * xcb_input_get_device_motion_events_reply 2171 ** 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 * 2176 ** 2177 *****************************************************************************/ 2178 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 /**< */) 2183 { 2184 return (xcb_input_get_device_motion_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2185 } 2186 2187 2188 /***************************************************************************** 2189 ** 2190 ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device 2191 ** 2192 ** @param xcb_connection_t *c 2193 ** @param uint8_t device_id 2194 ** @returns xcb_input_change_keyboard_device_cookie_t 2195 ** 2196 *****************************************************************************/ 2197 2198 xcb_input_change_keyboard_device_cookie_t 2199 xcb_input_change_keyboard_device (xcb_connection_t *c /**< */, 2200 uint8_t device_id /**< */) 2201 { 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 2207 }; 2208 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; 2212 2213 xcb_out.device_id = device_id; 2214 memset(xcb_out.pad0, 0, 3); 2215 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; 2220 2221 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2222 return xcb_ret; 2223 } 2224 2225 2226 /***************************************************************************** 2227 ** 2228 ** xcb_input_change_keyboard_device_cookie_t xcb_input_change_keyboard_device_unchecked 2229 ** 2230 ** @param xcb_connection_t *c 2231 ** @param uint8_t device_id 2232 ** @returns xcb_input_change_keyboard_device_cookie_t 2233 ** 2234 *****************************************************************************/ 2235 2236 xcb_input_change_keyboard_device_cookie_t 2237 xcb_input_change_keyboard_device_unchecked (xcb_connection_t *c /**< */, 2238 uint8_t device_id /**< */) 2239 { 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 2245 }; 2246 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; 2250 2251 xcb_out.device_id = device_id; 2252 memset(xcb_out.pad0, 0, 3); 2253 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; 2258 2259 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2260 return xcb_ret; 2261 } 2262 2263 2264 /***************************************************************************** 2265 ** 2266 ** xcb_input_change_keyboard_device_reply_t * xcb_input_change_keyboard_device_reply 2267 ** 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 * 2272 ** 2273 *****************************************************************************/ 2274 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 /**< */) 2279 { 2280 return (xcb_input_change_keyboard_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2281 } 2282 2283 2284 /***************************************************************************** 2285 ** 2286 ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device 2287 ** 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 2293 ** 2294 *****************************************************************************/ 2295 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 /**< */) 2301 { 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 2307 }; 2308 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; 2312 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; 2317 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; 2322 2323 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2324 return xcb_ret; 2325 } 2326 2327 2328 /***************************************************************************** 2329 ** 2330 ** xcb_input_change_pointer_device_cookie_t xcb_input_change_pointer_device_unchecked 2331 ** 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 2337 ** 2338 *****************************************************************************/ 2339 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 /**< */) 2345 { 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 2351 }; 2352 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; 2356 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; 2361 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; 2366 2367 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2368 return xcb_ret; 2369 } 2370 2371 2372 /***************************************************************************** 2373 ** 2374 ** xcb_input_change_pointer_device_reply_t * xcb_input_change_pointer_device_reply 2375 ** 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 * 2380 ** 2381 *****************************************************************************/ 2382 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 /**< */) 2387 { 2388 return (xcb_input_change_pointer_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2389 } 2390 2391 int 2392 xcb_input_grab_device_sizeof (const void *_buffer /**< */) 2393 { 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; 2400 2401 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; 2416 } 2417 xcb_block_len = 0; 2418 2419 return xcb_buffer_len; 2420 } 2421 2422 2423 /***************************************************************************** 2424 ** 2425 ** xcb_input_grab_device_cookie_t xcb_input_grab_device 2426 ** 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 2437 ** 2438 *****************************************************************************/ 2439 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 /**< */) 2450 { 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 2456 }; 2457 2458 struct iovec xcb_parts[6]; 2459 xcb_input_grab_device_cookie_t xcb_ret; 2460 xcb_input_grab_device_request_t xcb_out; 2461 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); 2470 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; 2480 2481 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2482 return xcb_ret; 2483 } 2484 2485 2486 /***************************************************************************** 2487 ** 2488 ** xcb_input_grab_device_cookie_t xcb_input_grab_device_unchecked 2489 ** 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 2500 ** 2501 *****************************************************************************/ 2502 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 /**< */) 2513 { 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 2519 }; 2520 2521 struct iovec xcb_parts[6]; 2522 xcb_input_grab_device_cookie_t xcb_ret; 2523 xcb_input_grab_device_request_t xcb_out; 2524 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); 2533 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; 2543 2544 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2545 return xcb_ret; 2546 } 2547 2548 2549 /***************************************************************************** 2550 ** 2551 ** xcb_input_grab_device_reply_t * xcb_input_grab_device_reply 2552 ** 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 * 2557 ** 2558 *****************************************************************************/ 2559 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 /**< */) 2564 { 2565 return (xcb_input_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2566 } 2567 2568 2569 /***************************************************************************** 2570 ** 2571 ** xcb_void_cookie_t xcb_input_ungrab_device_checked 2572 ** 2573 ** @param xcb_connection_t *c 2574 ** @param xcb_timestamp_t time 2575 ** @param uint8_t device_id 2576 ** @returns xcb_void_cookie_t 2577 ** 2578 *****************************************************************************/ 2579 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 /**< */) 2584 { 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 2590 }; 2591 2592 struct iovec xcb_parts[4]; 2593 xcb_void_cookie_t xcb_ret; 2594 xcb_input_ungrab_device_request_t xcb_out; 2595 2596 xcb_out.time = time; 2597 xcb_out.device_id = device_id; 2598 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; 2603 2604 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2605 return xcb_ret; 2606 } 2607 2608 2609 /***************************************************************************** 2610 ** 2611 ** xcb_void_cookie_t xcb_input_ungrab_device 2612 ** 2613 ** @param xcb_connection_t *c 2614 ** @param xcb_timestamp_t time 2615 ** @param uint8_t device_id 2616 ** @returns xcb_void_cookie_t 2617 ** 2618 *****************************************************************************/ 2619 2620 xcb_void_cookie_t 2621 xcb_input_ungrab_device (xcb_connection_t *c /**< */, 2622 xcb_timestamp_t time /**< */, 2623 uint8_t device_id /**< */) 2624 { 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 2630 }; 2631 2632 struct iovec xcb_parts[4]; 2633 xcb_void_cookie_t xcb_ret; 2634 xcb_input_ungrab_device_request_t xcb_out; 2635 2636 xcb_out.time = time; 2637 xcb_out.device_id = device_id; 2638 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; 2643 2644 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2645 return xcb_ret; 2646 } 2647 2648 int 2649 xcb_input_grab_device_key_sizeof (const void *_buffer /**< */) 2650 { 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; 2657 2658 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; 2673 } 2674 xcb_block_len = 0; 2675 2676 return xcb_buffer_len; 2677 } 2678 2679 2680 /***************************************************************************** 2681 ** 2682 ** xcb_void_cookie_t xcb_input_grab_device_key_checked 2683 ** 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 2696 ** 2697 *****************************************************************************/ 2698 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 /**< */) 2711 { 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 2717 }; 2718 2719 struct iovec xcb_parts[6]; 2720 xcb_void_cookie_t xcb_ret; 2721 xcb_input_grab_device_key_request_t xcb_out; 2722 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); 2733 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; 2743 2744 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2745 return xcb_ret; 2746 } 2747 2748 2749 /***************************************************************************** 2750 ** 2751 ** xcb_void_cookie_t xcb_input_grab_device_key 2752 ** 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 2765 ** 2766 *****************************************************************************/ 2767 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 /**< */) 2780 { 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 2786 }; 2787 2788 struct iovec xcb_parts[6]; 2789 xcb_void_cookie_t xcb_ret; 2790 xcb_input_grab_device_key_request_t xcb_out; 2791 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); 2802 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; 2812 2813 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2814 return xcb_ret; 2815 } 2816 2817 2818 /***************************************************************************** 2819 ** 2820 ** xcb_void_cookie_t xcb_input_ungrab_device_key_checked 2821 ** 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 2829 ** 2830 *****************************************************************************/ 2831 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 /**< */) 2839 { 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 2845 }; 2846 2847 struct iovec xcb_parts[4]; 2848 xcb_void_cookie_t xcb_ret; 2849 xcb_input_ungrab_device_key_request_t xcb_out; 2850 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; 2856 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; 2861 2862 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2863 return xcb_ret; 2864 } 2865 2866 2867 /***************************************************************************** 2868 ** 2869 ** xcb_void_cookie_t xcb_input_ungrab_device_key 2870 ** 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 2878 ** 2879 *****************************************************************************/ 2880 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 /**< */) 2888 { 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 2894 }; 2895 2896 struct iovec xcb_parts[4]; 2897 xcb_void_cookie_t xcb_ret; 2898 xcb_input_ungrab_device_key_request_t xcb_out; 2899 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; 2905 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; 2910 2911 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2912 return xcb_ret; 2913 } 2914 2915 int 2916 xcb_input_grab_device_button_sizeof (const void *_buffer /**< */) 2917 { 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; 2924 2925 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; 2940 } 2941 xcb_block_len = 0; 2942 2943 return xcb_buffer_len; 2944 } 2945 2946 2947 /***************************************************************************** 2948 ** 2949 ** xcb_void_cookie_t xcb_input_grab_device_button_checked 2950 ** 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 2963 ** 2964 *****************************************************************************/ 2965 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 /**< */) 2978 { 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 2984 }; 2985 2986 struct iovec xcb_parts[6]; 2987 xcb_void_cookie_t xcb_ret; 2988 xcb_input_grab_device_button_request_t xcb_out; 2989 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); 3000 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; 3010 3011 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3012 return xcb_ret; 3013 } 3014 3015 3016 /***************************************************************************** 3017 ** 3018 ** xcb_void_cookie_t xcb_input_grab_device_button 3019 ** 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 3032 ** 3033 *****************************************************************************/ 3034 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 /**< */) 3047 { 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 3053 }; 3054 3055 struct iovec xcb_parts[6]; 3056 xcb_void_cookie_t xcb_ret; 3057 xcb_input_grab_device_button_request_t xcb_out; 3058 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); 3069 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; 3079 3080 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3081 return xcb_ret; 3082 } 3083 3084 3085 /***************************************************************************** 3086 ** 3087 ** xcb_void_cookie_t xcb_input_ungrab_device_button_checked 3088 ** 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 3096 ** 3097 *****************************************************************************/ 3098 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 /**< */) 3106 { 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 3112 }; 3113 3114 struct iovec xcb_parts[4]; 3115 xcb_void_cookie_t xcb_ret; 3116 xcb_input_ungrab_device_button_request_t xcb_out; 3117 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; 3123 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; 3128 3129 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3130 return xcb_ret; 3131 } 3132 3133 3134 /***************************************************************************** 3135 ** 3136 ** xcb_void_cookie_t xcb_input_ungrab_device_button 3137 ** 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 3145 ** 3146 *****************************************************************************/ 3147 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 /**< */) 3155 { 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 3161 }; 3162 3163 struct iovec xcb_parts[4]; 3164 xcb_void_cookie_t xcb_ret; 3165 xcb_input_ungrab_device_button_request_t xcb_out; 3166 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; 3172 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; 3177 3178 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3179 return xcb_ret; 3180 } 3181 3182 3183 /***************************************************************************** 3184 ** 3185 ** xcb_void_cookie_t xcb_input_allow_device_events_checked 3186 ** 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 3192 ** 3193 *****************************************************************************/ 3194 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 /**< */) 3200 { 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 3206 }; 3207 3208 struct iovec xcb_parts[4]; 3209 xcb_void_cookie_t xcb_ret; 3210 xcb_input_allow_device_events_request_t xcb_out; 3211 3212 xcb_out.time = time; 3213 xcb_out.mode = mode; 3214 xcb_out.device_id = device_id; 3215 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; 3220 3221 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3222 return xcb_ret; 3223 } 3224 3225 3226 /***************************************************************************** 3227 ** 3228 ** xcb_void_cookie_t xcb_input_allow_device_events 3229 ** 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 3235 ** 3236 *****************************************************************************/ 3237 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 /**< */) 3243 { 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 3249 }; 3250 3251 struct iovec xcb_parts[4]; 3252 xcb_void_cookie_t xcb_ret; 3253 xcb_input_allow_device_events_request_t xcb_out; 3254 3255 xcb_out.time = time; 3256 xcb_out.mode = mode; 3257 xcb_out.device_id = device_id; 3258 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; 3263 3264 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3265 return xcb_ret; 3266 } 3267 3268 3269 /***************************************************************************** 3270 ** 3271 ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus 3272 ** 3273 ** @param xcb_connection_t *c 3274 ** @param uint8_t device_id 3275 ** @returns xcb_input_get_device_focus_cookie_t 3276 ** 3277 *****************************************************************************/ 3278 3279 xcb_input_get_device_focus_cookie_t 3280 xcb_input_get_device_focus (xcb_connection_t *c /**< */, 3281 uint8_t device_id /**< */) 3282 { 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 3288 }; 3289 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; 3293 3294 xcb_out.device_id = device_id; 3295 memset(xcb_out.pad0, 0, 3); 3296 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; 3301 3302 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3303 return xcb_ret; 3304 } 3305 3306 3307 /***************************************************************************** 3308 ** 3309 ** xcb_input_get_device_focus_cookie_t xcb_input_get_device_focus_unchecked 3310 ** 3311 ** @param xcb_connection_t *c 3312 ** @param uint8_t device_id 3313 ** @returns xcb_input_get_device_focus_cookie_t 3314 ** 3315 *****************************************************************************/ 3316 3317 xcb_input_get_device_focus_cookie_t 3318 xcb_input_get_device_focus_unchecked (xcb_connection_t *c /**< */, 3319 uint8_t device_id /**< */) 3320 { 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 3326 }; 3327 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; 3331 3332 xcb_out.device_id = device_id; 3333 memset(xcb_out.pad0, 0, 3); 3334 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; 3339 3340 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3341 return xcb_ret; 3342 } 3343 3344 3345 /***************************************************************************** 3346 ** 3347 ** xcb_input_get_device_focus_reply_t * xcb_input_get_device_focus_reply 3348 ** 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 * 3353 ** 3354 *****************************************************************************/ 3355 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 /**< */) 3360 { 3361 return (xcb_input_get_device_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 3362 } 3363 3364 3365 /***************************************************************************** 3366 ** 3367 ** xcb_void_cookie_t xcb_input_set_device_focus_checked 3368 ** 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 3375 ** 3376 *****************************************************************************/ 3377 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 /**< */) 3384 { 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 3390 }; 3391 3392 struct iovec xcb_parts[4]; 3393 xcb_void_cookie_t xcb_ret; 3394 xcb_input_set_device_focus_request_t xcb_out; 3395 3396 xcb_out.focus = focus; 3397 xcb_out.time = time; 3398 xcb_out.revert_to = revert_to; 3399 xcb_out.device_id = device_id; 3400 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; 3405 3406 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3407 return xcb_ret; 3408 } 3409 3410 3411 /***************************************************************************** 3412 ** 3413 ** xcb_void_cookie_t xcb_input_set_device_focus 3414 ** 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 3421 ** 3422 *****************************************************************************/ 3423 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 /**< */) 3430 { 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 3436 }; 3437 3438 struct iovec xcb_parts[4]; 3439 xcb_void_cookie_t xcb_ret; 3440 xcb_input_set_device_focus_request_t xcb_out; 3441 3442 xcb_out.focus = focus; 3443 xcb_out.time = time; 3444 xcb_out.revert_to = revert_to; 3445 xcb_out.device_id = device_id; 3446 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; 3451 3452 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3453 return xcb_ret; 3454 } 3455 3456 3457 /***************************************************************************** 3458 ** 3459 ** void xcb_input_kbd_feedback_state_next 3460 ** 3461 ** @param xcb_input_kbd_feedback_state_iterator_t *i 3462 ** @returns void 3463 ** 3464 *****************************************************************************/ 3465 3466 void 3467 xcb_input_kbd_feedback_state_next (xcb_input_kbd_feedback_state_iterator_t *i /**< */) 3468 { 3469 --i->rem; 3470 ++i->data; 3471 i->index += sizeof(xcb_input_kbd_feedback_state_t); 3472 } 3473 3474 3475 /***************************************************************************** 3476 ** 3477 ** xcb_generic_iterator_t xcb_input_kbd_feedback_state_end 3478 ** 3479 ** @param xcb_input_kbd_feedback_state_iterator_t i 3480 ** @returns xcb_generic_iterator_t 3481 ** 3482 *****************************************************************************/ 3483 3484 xcb_generic_iterator_t 3485 xcb_input_kbd_feedback_state_end (xcb_input_kbd_feedback_state_iterator_t i /**< */) 3486 { 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; 3492 } 3493 3494 3495 /***************************************************************************** 3496 ** 3497 ** void xcb_input_ptr_feedback_state_next 3498 ** 3499 ** @param xcb_input_ptr_feedback_state_iterator_t *i 3500 ** @returns void 3501 ** 3502 *****************************************************************************/ 3503 3504 void 3505 xcb_input_ptr_feedback_state_next (xcb_input_ptr_feedback_state_iterator_t *i /**< */) 3506 { 3507 --i->rem; 3508 ++i->data; 3509 i->index += sizeof(xcb_input_ptr_feedback_state_t); 3510 } 3511 3512 3513 /***************************************************************************** 3514 ** 3515 ** xcb_generic_iterator_t xcb_input_ptr_feedback_state_end 3516 ** 3517 ** @param xcb_input_ptr_feedback_state_iterator_t i 3518 ** @returns xcb_generic_iterator_t 3519 ** 3520 *****************************************************************************/ 3521 3522 xcb_generic_iterator_t 3523 xcb_input_ptr_feedback_state_end (xcb_input_ptr_feedback_state_iterator_t i /**< */) 3524 { 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; 3530 } 3531 3532 3533 /***************************************************************************** 3534 ** 3535 ** void xcb_input_integer_feedback_state_next 3536 ** 3537 ** @param xcb_input_integer_feedback_state_iterator_t *i 3538 ** @returns void 3539 ** 3540 *****************************************************************************/ 3541 3542 void 3543 xcb_input_integer_feedback_state_next (xcb_input_integer_feedback_state_iterator_t *i /**< */) 3544 { 3545 --i->rem; 3546 ++i->data; 3547 i->index += sizeof(xcb_input_integer_feedback_state_t); 3548 } 3549 3550 3551 /***************************************************************************** 3552 ** 3553 ** xcb_generic_iterator_t xcb_input_integer_feedback_state_end 3554 ** 3555 ** @param xcb_input_integer_feedback_state_iterator_t i 3556 ** @returns xcb_generic_iterator_t 3557 ** 3558 *****************************************************************************/ 3559 3560 xcb_generic_iterator_t 3561 xcb_input_integer_feedback_state_end (xcb_input_integer_feedback_state_iterator_t i /**< */) 3562 { 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; 3568 } 3569 3570 int 3571 xcb_input_string_feedback_state_sizeof (const void *_buffer /**< */) 3572 { 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; 3579 3580 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; 3595 } 3596 xcb_block_len = 0; 3597 3598 return xcb_buffer_len; 3599 } 3600 3601 3602 /***************************************************************************** 3603 ** 3604 ** xcb_keysym_t * xcb_input_string_feedback_state_keysyms 3605 ** 3606 ** @param const xcb_input_string_feedback_state_t *R 3607 ** @returns xcb_keysym_t * 3608 ** 3609 *****************************************************************************/ 3610 3611 xcb_keysym_t * 3612 xcb_input_string_feedback_state_keysyms (const xcb_input_string_feedback_state_t *R /**< */) 3613 { 3614 return (xcb_keysym_t *) (R + 1); 3615 } 3616 3617 3618 /***************************************************************************** 3619 ** 3620 ** int xcb_input_string_feedback_state_keysyms_length 3621 ** 3622 ** @param const xcb_input_string_feedback_state_t *R 3623 ** @returns int 3624 ** 3625 *****************************************************************************/ 3626 3627 int 3628 xcb_input_string_feedback_state_keysyms_length (const xcb_input_string_feedback_state_t *R /**< */) 3629 { 3630 return R->num_keysyms; 3631 } 3632 3633 3634 /***************************************************************************** 3635 ** 3636 ** xcb_generic_iterator_t xcb_input_string_feedback_state_keysyms_end 3637 ** 3638 ** @param const xcb_input_string_feedback_state_t *R 3639 ** @returns xcb_generic_iterator_t 3640 ** 3641 *****************************************************************************/ 3642 3643 xcb_generic_iterator_t 3644 xcb_input_string_feedback_state_keysyms_end (const xcb_input_string_feedback_state_t *R /**< */) 3645 { 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; 3651 } 3652 3653 3654 /***************************************************************************** 3655 ** 3656 ** void xcb_input_string_feedback_state_next 3657 ** 3658 ** @param xcb_input_string_feedback_state_iterator_t *i 3659 ** @returns void 3660 ** 3661 *****************************************************************************/ 3662 3663 void 3664 xcb_input_string_feedback_state_next (xcb_input_string_feedback_state_iterator_t *i /**< */) 3665 { 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; 3672 } 3673 3674 3675 /***************************************************************************** 3676 ** 3677 ** xcb_generic_iterator_t xcb_input_string_feedback_state_end 3678 ** 3679 ** @param xcb_input_string_feedback_state_iterator_t i 3680 ** @returns xcb_generic_iterator_t 3681 ** 3682 *****************************************************************************/ 3683 3684 xcb_generic_iterator_t 3685 xcb_input_string_feedback_state_end (xcb_input_string_feedback_state_iterator_t i /**< */) 3686 { 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; 3694 } 3695 3696 3697 /***************************************************************************** 3698 ** 3699 ** void xcb_input_bell_feedback_state_next 3700 ** 3701 ** @param xcb_input_bell_feedback_state_iterator_t *i 3702 ** @returns void 3703 ** 3704 *****************************************************************************/ 3705 3706 void 3707 xcb_input_bell_feedback_state_next (xcb_input_bell_feedback_state_iterator_t *i /**< */) 3708 { 3709 --i->rem; 3710 ++i->data; 3711 i->index += sizeof(xcb_input_bell_feedback_state_t); 3712 } 3713 3714 3715 /***************************************************************************** 3716 ** 3717 ** xcb_generic_iterator_t xcb_input_bell_feedback_state_end 3718 ** 3719 ** @param xcb_input_bell_feedback_state_iterator_t i 3720 ** @returns xcb_generic_iterator_t 3721 ** 3722 *****************************************************************************/ 3723 3724 xcb_generic_iterator_t 3725 xcb_input_bell_feedback_state_end (xcb_input_bell_feedback_state_iterator_t i /**< */) 3726 { 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; 3732 } 3733 3734 3735 /***************************************************************************** 3736 ** 3737 ** void xcb_input_led_feedback_state_next 3738 ** 3739 ** @param xcb_input_led_feedback_state_iterator_t *i 3740 ** @returns void 3741 ** 3742 *****************************************************************************/ 3743 3744 void 3745 xcb_input_led_feedback_state_next (xcb_input_led_feedback_state_iterator_t *i /**< */) 3746 { 3747 --i->rem; 3748 ++i->data; 3749 i->index += sizeof(xcb_input_led_feedback_state_t); 3750 } 3751 3752 3753 /***************************************************************************** 3754 ** 3755 ** xcb_generic_iterator_t xcb_input_led_feedback_state_end 3756 ** 3757 ** @param xcb_input_led_feedback_state_iterator_t i 3758 ** @returns xcb_generic_iterator_t 3759 ** 3760 *****************************************************************************/ 3761 3762 xcb_generic_iterator_t 3763 xcb_input_led_feedback_state_end (xcb_input_led_feedback_state_iterator_t i /**< */) 3764 { 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; 3770 } 3771 3772 int 3773 xcb_input_feedback_state_sizeof (const void *_buffer /**< */) 3774 { 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; 3781 3782 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; 3797 } 3798 xcb_block_len = 0; 3799 3800 return xcb_buffer_len; 3801 } 3802 3803 3804 /***************************************************************************** 3805 ** 3806 ** uint8_t * xcb_input_feedback_state_uninterpreted_data 3807 ** 3808 ** @param const xcb_input_feedback_state_t *R 3809 ** @returns uint8_t * 3810 ** 3811 *****************************************************************************/ 3812 3813 uint8_t * 3814 xcb_input_feedback_state_uninterpreted_data (const xcb_input_feedback_state_t *R /**< */) 3815 { 3816 return (uint8_t *) (R + 1); 3817 } 3818 3819 3820 /***************************************************************************** 3821 ** 3822 ** int xcb_input_feedback_state_uninterpreted_data_length 3823 ** 3824 ** @param const xcb_input_feedback_state_t *R 3825 ** @returns int 3826 ** 3827 *****************************************************************************/ 3828 3829 int 3830 xcb_input_feedback_state_uninterpreted_data_length (const xcb_input_feedback_state_t *R /**< */) 3831 { 3832 return (R->len - 4); 3833 } 3834 3835 3836 /***************************************************************************** 3837 ** 3838 ** xcb_generic_iterator_t xcb_input_feedback_state_uninterpreted_data_end 3839 ** 3840 ** @param const xcb_input_feedback_state_t *R 3841 ** @returns xcb_generic_iterator_t 3842 ** 3843 *****************************************************************************/ 3844 3845 xcb_generic_iterator_t 3846 xcb_input_feedback_state_uninterpreted_data_end (const xcb_input_feedback_state_t *R /**< */) 3847 { 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; 3853 } 3854 3855 3856 /***************************************************************************** 3857 ** 3858 ** void xcb_input_feedback_state_next 3859 ** 3860 ** @param xcb_input_feedback_state_iterator_t *i 3861 ** @returns void 3862 ** 3863 *****************************************************************************/ 3864 3865 void 3866 xcb_input_feedback_state_next (xcb_input_feedback_state_iterator_t *i /**< */) 3867 { 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; 3874 } 3875 3876 3877 /***************************************************************************** 3878 ** 3879 ** xcb_generic_iterator_t xcb_input_feedback_state_end 3880 ** 3881 ** @param xcb_input_feedback_state_iterator_t i 3882 ** @returns xcb_generic_iterator_t 3883 ** 3884 *****************************************************************************/ 3885 3886 xcb_generic_iterator_t 3887 xcb_input_feedback_state_end (xcb_input_feedback_state_iterator_t i /**< */) 3888 { 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; 3896 } 3897 3898 int 3899 xcb_input_get_feedback_control_sizeof (const void *_buffer /**< */) 3900 { 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; 3907 3908 unsigned int i; 3909 unsigned int xcb_tmp_len; 3910 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; 3920 } 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; 3928 } 3929 xcb_block_len = 0; 3930 3931 return xcb_buffer_len; 3932 } 3933 3934 3935 /***************************************************************************** 3936 ** 3937 ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control 3938 ** 3939 ** @param xcb_connection_t *c 3940 ** @param uint8_t device_id 3941 ** @returns xcb_input_get_feedback_control_cookie_t 3942 ** 3943 *****************************************************************************/ 3944 3945 xcb_input_get_feedback_control_cookie_t 3946 xcb_input_get_feedback_control (xcb_connection_t *c /**< */, 3947 uint8_t device_id /**< */) 3948 { 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 3954 }; 3955 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; 3959 3960 xcb_out.device_id = device_id; 3961 memset(xcb_out.pad0, 0, 3); 3962 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; 3967 3968 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3969 return xcb_ret; 3970 } 3971 3972 3973 /***************************************************************************** 3974 ** 3975 ** xcb_input_get_feedback_control_cookie_t xcb_input_get_feedback_control_unchecked 3976 ** 3977 ** @param xcb_connection_t *c 3978 ** @param uint8_t device_id 3979 ** @returns xcb_input_get_feedback_control_cookie_t 3980 ** 3981 *****************************************************************************/ 3982 3983 xcb_input_get_feedback_control_cookie_t 3984 xcb_input_get_feedback_control_unchecked (xcb_connection_t *c /**< */, 3985 uint8_t device_id /**< */) 3986 { 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 3992 }; 3993 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; 3997 3998 xcb_out.device_id = device_id; 3999 memset(xcb_out.pad0, 0, 3); 4000 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; 4005 4006 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4007 return xcb_ret; 4008 } 4009 4010 4011 /***************************************************************************** 4012 ** 4013 ** int xcb_input_get_feedback_control_feedbacks_length 4014 ** 4015 ** @param const xcb_input_get_feedback_control_reply_t *R 4016 ** @returns int 4017 ** 4018 *****************************************************************************/ 4019 4020 int 4021 xcb_input_get_feedback_control_feedbacks_length (const xcb_input_get_feedback_control_reply_t *R /**< */) 4022 { 4023 return R->num_feedbacks; 4024 } 4025 4026 4027 /***************************************************************************** 4028 ** 4029 ** xcb_input_feedback_state_iterator_t xcb_input_get_feedback_control_feedbacks_iterator 4030 ** 4031 ** @param const xcb_input_get_feedback_control_reply_t *R 4032 ** @returns xcb_input_feedback_state_iterator_t 4033 ** 4034 *****************************************************************************/ 4035 4036 xcb_input_feedback_state_iterator_t 4037 xcb_input_get_feedback_control_feedbacks_iterator (const xcb_input_get_feedback_control_reply_t *R /**< */) 4038 { 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; 4044 } 4045 4046 4047 /***************************************************************************** 4048 ** 4049 ** xcb_input_get_feedback_control_reply_t * xcb_input_get_feedback_control_reply 4050 ** 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 * 4055 ** 4056 *****************************************************************************/ 4057 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 /**< */) 4062 { 4063 return (xcb_input_get_feedback_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4064 } 4065 4066 4067 /***************************************************************************** 4068 ** 4069 ** void xcb_input_kbd_feedback_ctl_next 4070 ** 4071 ** @param xcb_input_kbd_feedback_ctl_iterator_t *i 4072 ** @returns void 4073 ** 4074 *****************************************************************************/ 4075 4076 void 4077 xcb_input_kbd_feedback_ctl_next (xcb_input_kbd_feedback_ctl_iterator_t *i /**< */) 4078 { 4079 --i->rem; 4080 ++i->data; 4081 i->index += sizeof(xcb_input_kbd_feedback_ctl_t); 4082 } 4083 4084 4085 /***************************************************************************** 4086 ** 4087 ** xcb_generic_iterator_t xcb_input_kbd_feedback_ctl_end 4088 ** 4089 ** @param xcb_input_kbd_feedback_ctl_iterator_t i 4090 ** @returns xcb_generic_iterator_t 4091 ** 4092 *****************************************************************************/ 4093 4094 xcb_generic_iterator_t 4095 xcb_input_kbd_feedback_ctl_end (xcb_input_kbd_feedback_ctl_iterator_t i /**< */) 4096 { 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; 4102 } 4103 4104 4105 /***************************************************************************** 4106 ** 4107 ** void xcb_input_ptr_feedback_ctl_next 4108 ** 4109 ** @param xcb_input_ptr_feedback_ctl_iterator_t *i 4110 ** @returns void 4111 ** 4112 *****************************************************************************/ 4113 4114 void 4115 xcb_input_ptr_feedback_ctl_next (xcb_input_ptr_feedback_ctl_iterator_t *i /**< */) 4116 { 4117 --i->rem; 4118 ++i->data; 4119 i->index += sizeof(xcb_input_ptr_feedback_ctl_t); 4120 } 4121 4122 4123 /***************************************************************************** 4124 ** 4125 ** xcb_generic_iterator_t xcb_input_ptr_feedback_ctl_end 4126 ** 4127 ** @param xcb_input_ptr_feedback_ctl_iterator_t i 4128 ** @returns xcb_generic_iterator_t 4129 ** 4130 *****************************************************************************/ 4131 4132 xcb_generic_iterator_t 4133 xcb_input_ptr_feedback_ctl_end (xcb_input_ptr_feedback_ctl_iterator_t i /**< */) 4134 { 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; 4140 } 4141 4142 4143 /***************************************************************************** 4144 ** 4145 ** void xcb_input_integer_feedback_ctl_next 4146 ** 4147 ** @param xcb_input_integer_feedback_ctl_iterator_t *i 4148 ** @returns void 4149 ** 4150 *****************************************************************************/ 4151 4152 void 4153 xcb_input_integer_feedback_ctl_next (xcb_input_integer_feedback_ctl_iterator_t *i /**< */) 4154 { 4155 --i->rem; 4156 ++i->data; 4157 i->index += sizeof(xcb_input_integer_feedback_ctl_t); 4158 } 4159 4160 4161 /***************************************************************************** 4162 ** 4163 ** xcb_generic_iterator_t xcb_input_integer_feedback_ctl_end 4164 ** 4165 ** @param xcb_input_integer_feedback_ctl_iterator_t i 4166 ** @returns xcb_generic_iterator_t 4167 ** 4168 *****************************************************************************/ 4169 4170 xcb_generic_iterator_t 4171 xcb_input_integer_feedback_ctl_end (xcb_input_integer_feedback_ctl_iterator_t i /**< */) 4172 { 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; 4178 } 4179 4180 int 4181 xcb_input_string_feedback_ctl_sizeof (const void *_buffer /**< */) 4182 { 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; 4189 4190 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; 4205 } 4206 xcb_block_len = 0; 4207 4208 return xcb_buffer_len; 4209 } 4210 4211 4212 /***************************************************************************** 4213 ** 4214 ** xcb_keysym_t * xcb_input_string_feedback_ctl_keysyms 4215 ** 4216 ** @param const xcb_input_string_feedback_ctl_t *R 4217 ** @returns xcb_keysym_t * 4218 ** 4219 *****************************************************************************/ 4220 4221 xcb_keysym_t * 4222 xcb_input_string_feedback_ctl_keysyms (const xcb_input_string_feedback_ctl_t *R /**< */) 4223 { 4224 return (xcb_keysym_t *) (R + 1); 4225 } 4226 4227 4228 /***************************************************************************** 4229 ** 4230 ** int xcb_input_string_feedback_ctl_keysyms_length 4231 ** 4232 ** @param const xcb_input_string_feedback_ctl_t *R 4233 ** @returns int 4234 ** 4235 *****************************************************************************/ 4236 4237 int 4238 xcb_input_string_feedback_ctl_keysyms_length (const xcb_input_string_feedback_ctl_t *R /**< */) 4239 { 4240 return R->num_keysyms; 4241 } 4242 4243 4244 /***************************************************************************** 4245 ** 4246 ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_keysyms_end 4247 ** 4248 ** @param const xcb_input_string_feedback_ctl_t *R 4249 ** @returns xcb_generic_iterator_t 4250 ** 4251 *****************************************************************************/ 4252 4253 xcb_generic_iterator_t 4254 xcb_input_string_feedback_ctl_keysyms_end (const xcb_input_string_feedback_ctl_t *R /**< */) 4255 { 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; 4261 } 4262 4263 4264 /***************************************************************************** 4265 ** 4266 ** void xcb_input_string_feedback_ctl_next 4267 ** 4268 ** @param xcb_input_string_feedback_ctl_iterator_t *i 4269 ** @returns void 4270 ** 4271 *****************************************************************************/ 4272 4273 void 4274 xcb_input_string_feedback_ctl_next (xcb_input_string_feedback_ctl_iterator_t *i /**< */) 4275 { 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; 4282 } 4283 4284 4285 /***************************************************************************** 4286 ** 4287 ** xcb_generic_iterator_t xcb_input_string_feedback_ctl_end 4288 ** 4289 ** @param xcb_input_string_feedback_ctl_iterator_t i 4290 ** @returns xcb_generic_iterator_t 4291 ** 4292 *****************************************************************************/ 4293 4294 xcb_generic_iterator_t 4295 xcb_input_string_feedback_ctl_end (xcb_input_string_feedback_ctl_iterator_t i /**< */) 4296 { 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; 4304 } 4305 4306 4307 /***************************************************************************** 4308 ** 4309 ** void xcb_input_bell_feedback_ctl_next 4310 ** 4311 ** @param xcb_input_bell_feedback_ctl_iterator_t *i 4312 ** @returns void 4313 ** 4314 *****************************************************************************/ 4315 4316 void 4317 xcb_input_bell_feedback_ctl_next (xcb_input_bell_feedback_ctl_iterator_t *i /**< */) 4318 { 4319 --i->rem; 4320 ++i->data; 4321 i->index += sizeof(xcb_input_bell_feedback_ctl_t); 4322 } 4323 4324 4325 /***************************************************************************** 4326 ** 4327 ** xcb_generic_iterator_t xcb_input_bell_feedback_ctl_end 4328 ** 4329 ** @param xcb_input_bell_feedback_ctl_iterator_t i 4330 ** @returns xcb_generic_iterator_t 4331 ** 4332 *****************************************************************************/ 4333 4334 xcb_generic_iterator_t 4335 xcb_input_bell_feedback_ctl_end (xcb_input_bell_feedback_ctl_iterator_t i /**< */) 4336 { 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; 4342 } 4343 4344 4345 /***************************************************************************** 4346 ** 4347 ** void xcb_input_led_feedback_ctl_next 4348 ** 4349 ** @param xcb_input_led_feedback_ctl_iterator_t *i 4350 ** @returns void 4351 ** 4352 *****************************************************************************/ 4353 4354 void 4355 xcb_input_led_feedback_ctl_next (xcb_input_led_feedback_ctl_iterator_t *i /**< */) 4356 { 4357 --i->rem; 4358 ++i->data; 4359 i->index += sizeof(xcb_input_led_feedback_ctl_t); 4360 } 4361 4362 4363 /***************************************************************************** 4364 ** 4365 ** xcb_generic_iterator_t xcb_input_led_feedback_ctl_end 4366 ** 4367 ** @param xcb_input_led_feedback_ctl_iterator_t i 4368 ** @returns xcb_generic_iterator_t 4369 ** 4370 *****************************************************************************/ 4371 4372 xcb_generic_iterator_t 4373 xcb_input_led_feedback_ctl_end (xcb_input_led_feedback_ctl_iterator_t i /**< */) 4374 { 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; 4380 } 4381 4382 int 4383 xcb_input_feedback_ctl_sizeof (const void *_buffer /**< */) 4384 { 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; 4391 4392 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; 4407 } 4408 xcb_block_len = 0; 4409 4410 return xcb_buffer_len; 4411 } 4412 4413 4414 /***************************************************************************** 4415 ** 4416 ** uint8_t * xcb_input_feedback_ctl_uninterpreted_data 4417 ** 4418 ** @param const xcb_input_feedback_ctl_t *R 4419 ** @returns uint8_t * 4420 ** 4421 *****************************************************************************/ 4422 4423 uint8_t * 4424 xcb_input_feedback_ctl_uninterpreted_data (const xcb_input_feedback_ctl_t *R /**< */) 4425 { 4426 return (uint8_t *) (R + 1); 4427 } 4428 4429 4430 /***************************************************************************** 4431 ** 4432 ** int xcb_input_feedback_ctl_uninterpreted_data_length 4433 ** 4434 ** @param const xcb_input_feedback_ctl_t *R 4435 ** @returns int 4436 ** 4437 *****************************************************************************/ 4438 4439 int 4440 xcb_input_feedback_ctl_uninterpreted_data_length (const xcb_input_feedback_ctl_t *R /**< */) 4441 { 4442 return (R->len - 4); 4443 } 4444 4445 4446 /***************************************************************************** 4447 ** 4448 ** xcb_generic_iterator_t xcb_input_feedback_ctl_uninterpreted_data_end 4449 ** 4450 ** @param const xcb_input_feedback_ctl_t *R 4451 ** @returns xcb_generic_iterator_t 4452 ** 4453 *****************************************************************************/ 4454 4455 xcb_generic_iterator_t 4456 xcb_input_feedback_ctl_uninterpreted_data_end (const xcb_input_feedback_ctl_t *R /**< */) 4457 { 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; 4463 } 4464 4465 4466 /***************************************************************************** 4467 ** 4468 ** void xcb_input_feedback_ctl_next 4469 ** 4470 ** @param xcb_input_feedback_ctl_iterator_t *i 4471 ** @returns void 4472 ** 4473 *****************************************************************************/ 4474 4475 void 4476 xcb_input_feedback_ctl_next (xcb_input_feedback_ctl_iterator_t *i /**< */) 4477 { 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; 4484 } 4485 4486 4487 /***************************************************************************** 4488 ** 4489 ** xcb_generic_iterator_t xcb_input_feedback_ctl_end 4490 ** 4491 ** @param xcb_input_feedback_ctl_iterator_t i 4492 ** @returns xcb_generic_iterator_t 4493 ** 4494 *****************************************************************************/ 4495 4496 xcb_generic_iterator_t 4497 xcb_input_feedback_ctl_end (xcb_input_feedback_ctl_iterator_t i /**< */) 4498 { 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; 4506 } 4507 4508 int 4509 xcb_input_change_feedback_control_sizeof (const void *_buffer /**< */) 4510 { 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; 4516 4517 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; 4532 } 4533 xcb_block_len = 0; 4534 4535 return xcb_buffer_len; 4536 } 4537 4538 4539 /***************************************************************************** 4540 ** 4541 ** xcb_void_cookie_t xcb_input_change_feedback_control_checked 4542 ** 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 4549 ** 4550 *****************************************************************************/ 4551 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 /**< */) 4558 { 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 4564 }; 4565 4566 struct iovec xcb_parts[6]; 4567 xcb_void_cookie_t xcb_ret; 4568 xcb_input_change_feedback_control_request_t xcb_out; 4569 4570 xcb_out.mask = mask; 4571 xcb_out.device_id = device_id; 4572 xcb_out.feedback_id = feedback_id; 4573 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); 4582 4583 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4584 return xcb_ret; 4585 } 4586 4587 4588 /***************************************************************************** 4589 ** 4590 ** xcb_void_cookie_t xcb_input_change_feedback_control 4591 ** 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 4598 ** 4599 *****************************************************************************/ 4600 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 /**< */) 4607 { 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 4613 }; 4614 4615 struct iovec xcb_parts[6]; 4616 xcb_void_cookie_t xcb_ret; 4617 xcb_input_change_feedback_control_request_t xcb_out; 4618 4619 xcb_out.mask = mask; 4620 xcb_out.device_id = device_id; 4621 xcb_out.feedback_id = feedback_id; 4622 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); 4631 4632 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4633 return xcb_ret; 4634 } 4635 4636 int 4637 xcb_input_get_device_key_mapping_sizeof (const void *_buffer /**< */) 4638 { 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; 4645 4646 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; 4661 } 4662 xcb_block_len = 0; 4663 4664 return xcb_buffer_len; 4665 } 4666 4667 4668 /***************************************************************************** 4669 ** 4670 ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping 4671 ** 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 4677 ** 4678 *****************************************************************************/ 4679 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 /**< */) 4685 { 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 4691 }; 4692 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; 4696 4697 xcb_out.device_id = device_id; 4698 xcb_out.first_keycode = first_keycode; 4699 xcb_out.count = count; 4700 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; 4705 4706 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4707 return xcb_ret; 4708 } 4709 4710 4711 /***************************************************************************** 4712 ** 4713 ** xcb_input_get_device_key_mapping_cookie_t xcb_input_get_device_key_mapping_unchecked 4714 ** 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 4720 ** 4721 *****************************************************************************/ 4722 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 /**< */) 4728 { 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 4734 }; 4735 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; 4739 4740 xcb_out.device_id = device_id; 4741 xcb_out.first_keycode = first_keycode; 4742 xcb_out.count = count; 4743 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; 4748 4749 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4750 return xcb_ret; 4751 } 4752 4753 4754 /***************************************************************************** 4755 ** 4756 ** xcb_keysym_t * xcb_input_get_device_key_mapping_keysyms 4757 ** 4758 ** @param const xcb_input_get_device_key_mapping_reply_t *R 4759 ** @returns xcb_keysym_t * 4760 ** 4761 *****************************************************************************/ 4762 4763 xcb_keysym_t * 4764 xcb_input_get_device_key_mapping_keysyms (const xcb_input_get_device_key_mapping_reply_t *R /**< */) 4765 { 4766 return (xcb_keysym_t *) (R + 1); 4767 } 4768 4769 4770 /***************************************************************************** 4771 ** 4772 ** int xcb_input_get_device_key_mapping_keysyms_length 4773 ** 4774 ** @param const xcb_input_get_device_key_mapping_reply_t *R 4775 ** @returns int 4776 ** 4777 *****************************************************************************/ 4778 4779 int 4780 xcb_input_get_device_key_mapping_keysyms_length (const xcb_input_get_device_key_mapping_reply_t *R /**< */) 4781 { 4782 return R->length; 4783 } 4784 4785 4786 /***************************************************************************** 4787 ** 4788 ** xcb_generic_iterator_t xcb_input_get_device_key_mapping_keysyms_end 4789 ** 4790 ** @param const xcb_input_get_device_key_mapping_reply_t *R 4791 ** @returns xcb_generic_iterator_t 4792 ** 4793 *****************************************************************************/ 4794 4795 xcb_generic_iterator_t 4796 xcb_input_get_device_key_mapping_keysyms_end (const xcb_input_get_device_key_mapping_reply_t *R /**< */) 4797 { 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; 4803 } 4804 4805 4806 /***************************************************************************** 4807 ** 4808 ** xcb_input_get_device_key_mapping_reply_t * xcb_input_get_device_key_mapping_reply 4809 ** 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 * 4814 ** 4815 *****************************************************************************/ 4816 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 /**< */) 4821 { 4822 return (xcb_input_get_device_key_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 4823 } 4824 4825 int 4826 xcb_input_change_device_key_mapping_sizeof (const void *_buffer /**< */) 4827 { 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; 4834 4835 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; 4850 } 4851 xcb_block_len = 0; 4852 4853 return xcb_buffer_len; 4854 } 4855 4856 4857 /***************************************************************************** 4858 ** 4859 ** xcb_void_cookie_t xcb_input_change_device_key_mapping_checked 4860 ** 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 4868 ** 4869 *****************************************************************************/ 4870 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 /**< */) 4878 { 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 4884 }; 4885 4886 struct iovec xcb_parts[6]; 4887 xcb_void_cookie_t xcb_ret; 4888 xcb_input_change_device_key_mapping_request_t xcb_out; 4889 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; 4894 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; 4904 4905 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 4906 return xcb_ret; 4907 } 4908 4909 4910 /***************************************************************************** 4911 ** 4912 ** xcb_void_cookie_t xcb_input_change_device_key_mapping 4913 ** 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 4921 ** 4922 *****************************************************************************/ 4923 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 /**< */) 4931 { 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 4937 }; 4938 4939 struct iovec xcb_parts[6]; 4940 xcb_void_cookie_t xcb_ret; 4941 xcb_input_change_device_key_mapping_request_t xcb_out; 4942 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; 4947 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; 4957 4958 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 4959 return xcb_ret; 4960 } 4961 4962 int 4963 xcb_input_get_device_modifier_mapping_sizeof (const void *_buffer /**< */) 4964 { 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; 4971 4972 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; 4987 } 4988 xcb_block_len = 0; 4989 4990 return xcb_buffer_len; 4991 } 4992 4993 4994 /***************************************************************************** 4995 ** 4996 ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping 4997 ** 4998 ** @param xcb_connection_t *c 4999 ** @param uint8_t device_id 5000 ** @returns xcb_input_get_device_modifier_mapping_cookie_t 5001 ** 5002 *****************************************************************************/ 5003 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 /**< */) 5007 { 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 5013 }; 5014 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; 5018 5019 xcb_out.device_id = device_id; 5020 memset(xcb_out.pad0, 0, 3); 5021 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; 5026 5027 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5028 return xcb_ret; 5029 } 5030 5031 5032 /***************************************************************************** 5033 ** 5034 ** xcb_input_get_device_modifier_mapping_cookie_t xcb_input_get_device_modifier_mapping_unchecked 5035 ** 5036 ** @param xcb_connection_t *c 5037 ** @param uint8_t device_id 5038 ** @returns xcb_input_get_device_modifier_mapping_cookie_t 5039 ** 5040 *****************************************************************************/ 5041 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 /**< */) 5045 { 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 5051 }; 5052 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; 5056 5057 xcb_out.device_id = device_id; 5058 memset(xcb_out.pad0, 0, 3); 5059 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; 5064 5065 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5066 return xcb_ret; 5067 } 5068 5069 5070 /***************************************************************************** 5071 ** 5072 ** uint8_t * xcb_input_get_device_modifier_mapping_keymaps 5073 ** 5074 ** @param const xcb_input_get_device_modifier_mapping_reply_t *R 5075 ** @returns uint8_t * 5076 ** 5077 *****************************************************************************/ 5078 5079 uint8_t * 5080 xcb_input_get_device_modifier_mapping_keymaps (const xcb_input_get_device_modifier_mapping_reply_t *R /**< */) 5081 { 5082 return (uint8_t *) (R + 1); 5083 } 5084 5085 5086 /***************************************************************************** 5087 ** 5088 ** int xcb_input_get_device_modifier_mapping_keymaps_length 5089 ** 5090 ** @param const xcb_input_get_device_modifier_mapping_reply_t *R 5091 ** @returns int 5092 ** 5093 *****************************************************************************/ 5094 5095 int 5096 xcb_input_get_device_modifier_mapping_keymaps_length (const xcb_input_get_device_modifier_mapping_reply_t *R /**< */) 5097 { 5098 return (R->keycodes_per_modifier * 8); 5099 } 5100 5101 5102 /***************************************************************************** 5103 ** 5104 ** xcb_generic_iterator_t xcb_input_get_device_modifier_mapping_keymaps_end 5105 ** 5106 ** @param const xcb_input_get_device_modifier_mapping_reply_t *R 5107 ** @returns xcb_generic_iterator_t 5108 ** 5109 *****************************************************************************/ 5110 5111 xcb_generic_iterator_t 5112 xcb_input_get_device_modifier_mapping_keymaps_end (const xcb_input_get_device_modifier_mapping_reply_t *R /**< */) 5113 { 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; 5119 } 5120 5121 5122 /***************************************************************************** 5123 ** 5124 ** xcb_input_get_device_modifier_mapping_reply_t * xcb_input_get_device_modifier_mapping_reply 5125 ** 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 * 5130 ** 5131 *****************************************************************************/ 5132 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 /**< */) 5137 { 5138 return (xcb_input_get_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5139 } 5140 5141 int 5142 xcb_input_set_device_modifier_mapping_sizeof (const void *_buffer /**< */) 5143 { 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; 5150 5151 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; 5166 } 5167 xcb_block_len = 0; 5168 5169 return xcb_buffer_len; 5170 } 5171 5172 5173 /***************************************************************************** 5174 ** 5175 ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping 5176 ** 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 5182 ** 5183 *****************************************************************************/ 5184 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 /**< */) 5190 { 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 5196 }; 5197 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; 5201 5202 xcb_out.device_id = device_id; 5203 xcb_out.keycodes_per_modifier = keycodes_per_modifier; 5204 xcb_out.pad0 = 0; 5205 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; 5215 5216 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5217 return xcb_ret; 5218 } 5219 5220 5221 /***************************************************************************** 5222 ** 5223 ** xcb_input_set_device_modifier_mapping_cookie_t xcb_input_set_device_modifier_mapping_unchecked 5224 ** 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 5230 ** 5231 *****************************************************************************/ 5232 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 /**< */) 5238 { 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 5244 }; 5245 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; 5249 5250 xcb_out.device_id = device_id; 5251 xcb_out.keycodes_per_modifier = keycodes_per_modifier; 5252 xcb_out.pad0 = 0; 5253 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; 5263 5264 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5265 return xcb_ret; 5266 } 5267 5268 5269 /***************************************************************************** 5270 ** 5271 ** xcb_input_set_device_modifier_mapping_reply_t * xcb_input_set_device_modifier_mapping_reply 5272 ** 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 * 5277 ** 5278 *****************************************************************************/ 5279 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 /**< */) 5284 { 5285 return (xcb_input_set_device_modifier_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5286 } 5287 5288 int 5289 xcb_input_get_device_button_mapping_sizeof (const void *_buffer /**< */) 5290 { 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; 5297 5298 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; 5313 } 5314 xcb_block_len = 0; 5315 5316 return xcb_buffer_len; 5317 } 5318 5319 5320 /***************************************************************************** 5321 ** 5322 ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping 5323 ** 5324 ** @param xcb_connection_t *c 5325 ** @param uint8_t device_id 5326 ** @returns xcb_input_get_device_button_mapping_cookie_t 5327 ** 5328 *****************************************************************************/ 5329 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 /**< */) 5333 { 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 5339 }; 5340 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; 5344 5345 xcb_out.device_id = device_id; 5346 memset(xcb_out.pad0, 0, 3); 5347 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; 5352 5353 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5354 return xcb_ret; 5355 } 5356 5357 5358 /***************************************************************************** 5359 ** 5360 ** xcb_input_get_device_button_mapping_cookie_t xcb_input_get_device_button_mapping_unchecked 5361 ** 5362 ** @param xcb_connection_t *c 5363 ** @param uint8_t device_id 5364 ** @returns xcb_input_get_device_button_mapping_cookie_t 5365 ** 5366 *****************************************************************************/ 5367 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 /**< */) 5371 { 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 5377 }; 5378 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; 5382 5383 xcb_out.device_id = device_id; 5384 memset(xcb_out.pad0, 0, 3); 5385 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; 5390 5391 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5392 return xcb_ret; 5393 } 5394 5395 5396 /***************************************************************************** 5397 ** 5398 ** uint8_t * xcb_input_get_device_button_mapping_map 5399 ** 5400 ** @param const xcb_input_get_device_button_mapping_reply_t *R 5401 ** @returns uint8_t * 5402 ** 5403 *****************************************************************************/ 5404 5405 uint8_t * 5406 xcb_input_get_device_button_mapping_map (const xcb_input_get_device_button_mapping_reply_t *R /**< */) 5407 { 5408 return (uint8_t *) (R + 1); 5409 } 5410 5411 5412 /***************************************************************************** 5413 ** 5414 ** int xcb_input_get_device_button_mapping_map_length 5415 ** 5416 ** @param const xcb_input_get_device_button_mapping_reply_t *R 5417 ** @returns int 5418 ** 5419 *****************************************************************************/ 5420 5421 int 5422 xcb_input_get_device_button_mapping_map_length (const xcb_input_get_device_button_mapping_reply_t *R /**< */) 5423 { 5424 return R->map_size; 5425 } 5426 5427 5428 /***************************************************************************** 5429 ** 5430 ** xcb_generic_iterator_t xcb_input_get_device_button_mapping_map_end 5431 ** 5432 ** @param const xcb_input_get_device_button_mapping_reply_t *R 5433 ** @returns xcb_generic_iterator_t 5434 ** 5435 *****************************************************************************/ 5436 5437 xcb_generic_iterator_t 5438 xcb_input_get_device_button_mapping_map_end (const xcb_input_get_device_button_mapping_reply_t *R /**< */) 5439 { 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; 5445 } 5446 5447 5448 /***************************************************************************** 5449 ** 5450 ** xcb_input_get_device_button_mapping_reply_t * xcb_input_get_device_button_mapping_reply 5451 ** 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 * 5456 ** 5457 *****************************************************************************/ 5458 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 /**< */) 5463 { 5464 return (xcb_input_get_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5465 } 5466 5467 int 5468 xcb_input_set_device_button_mapping_sizeof (const void *_buffer /**< */) 5469 { 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; 5476 5477 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; 5492 } 5493 xcb_block_len = 0; 5494 5495 return xcb_buffer_len; 5496 } 5497 5498 5499 /***************************************************************************** 5500 ** 5501 ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping 5502 ** 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 5508 ** 5509 *****************************************************************************/ 5510 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 /**< */) 5516 { 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 5522 }; 5523 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; 5527 5528 xcb_out.device_id = device_id; 5529 xcb_out.map_size = map_size; 5530 memset(xcb_out.pad0, 0, 2); 5531 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; 5541 5542 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 5543 return xcb_ret; 5544 } 5545 5546 5547 /***************************************************************************** 5548 ** 5549 ** xcb_input_set_device_button_mapping_cookie_t xcb_input_set_device_button_mapping_unchecked 5550 ** 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 5556 ** 5557 *****************************************************************************/ 5558 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 /**< */) 5564 { 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 5570 }; 5571 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; 5575 5576 xcb_out.device_id = device_id; 5577 xcb_out.map_size = map_size; 5578 memset(xcb_out.pad0, 0, 2); 5579 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; 5589 5590 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 5591 return xcb_ret; 5592 } 5593 5594 5595 /***************************************************************************** 5596 ** 5597 ** xcb_input_set_device_button_mapping_reply_t * xcb_input_set_device_button_mapping_reply 5598 ** 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 * 5603 ** 5604 *****************************************************************************/ 5605 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 /**< */) 5610 { 5611 return (xcb_input_set_device_button_mapping_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 5612 } 5613 5614 5615 /***************************************************************************** 5616 ** 5617 ** void xcb_input_key_state_next 5618 ** 5619 ** @param xcb_input_key_state_iterator_t *i 5620 ** @returns void 5621 ** 5622 *****************************************************************************/ 5623 5624 void 5625 xcb_input_key_state_next (xcb_input_key_state_iterator_t *i /**< */) 5626 { 5627 --i->rem; 5628 ++i->data; 5629 i->index += sizeof(xcb_input_key_state_t); 5630 } 5631 5632 5633 /***************************************************************************** 5634 ** 5635 ** xcb_generic_iterator_t xcb_input_key_state_end 5636 ** 5637 ** @param xcb_input_key_state_iterator_t i 5638 ** @returns xcb_generic_iterator_t 5639 ** 5640 *****************************************************************************/ 5641 5642 xcb_generic_iterator_t 5643 xcb_input_key_state_end (xcb_input_key_state_iterator_t i /**< */) 5644 { 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; 5650 } 5651 5652 5653 /***************************************************************************** 5654 ** 5655 ** void xcb_input_button_state_next 5656 ** 5657 ** @param xcb_input_button_state_iterator_t *i 5658 ** @returns void 5659 ** 5660 *****************************************************************************/ 5661 5662 void 5663 xcb_input_button_state_next (xcb_input_button_state_iterator_t *i /**< */) 5664 { 5665 --i->rem; 5666 ++i->data; 5667 i->index += sizeof(xcb_input_button_state_t); 5668 } 5669 5670 5671 /***************************************************************************** 5672 ** 5673 ** xcb_generic_iterator_t xcb_input_button_state_end 5674 ** 5675 ** @param xcb_input_button_state_iterator_t i 5676 ** @returns xcb_generic_iterator_t 5677 ** 5678 *****************************************************************************/ 5679 5680 xcb_generic_iterator_t 5681 xcb_input_button_state_end (xcb_input_button_state_iterator_t i /**< */) 5682 { 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; 5688 } 5689 5690 int 5691 xcb_input_valuator_state_sizeof (const void *_buffer /**< */) 5692 { 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; 5699 5700 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; 5715 } 5716 xcb_block_len = 0; 5717 5718 return xcb_buffer_len; 5719 } 5720 5721 5722 /***************************************************************************** 5723 ** 5724 ** uint32_t * xcb_input_valuator_state_valuators 5725 ** 5726 ** @param const xcb_input_valuator_state_t *R 5727 ** @returns uint32_t * 5728 ** 5729 *****************************************************************************/ 5730 5731 uint32_t * 5732 xcb_input_valuator_state_valuators (const xcb_input_valuator_state_t *R /**< */) 5733 { 5734 return (uint32_t *) (R + 1); 5735 } 5736 5737 5738 /***************************************************************************** 5739 ** 5740 ** int xcb_input_valuator_state_valuators_length 5741 ** 5742 ** @param const xcb_input_valuator_state_t *R 5743 ** @returns int 5744 ** 5745 *****************************************************************************/ 5746 5747 int 5748 xcb_input_valuator_state_valuators_length (const xcb_input_valuator_state_t *R /**< */) 5749 { 5750 return R->num_valuators; 5751 } 5752 5753 5754 /***************************************************************************** 5755 ** 5756 ** xcb_generic_iterator_t xcb_input_valuator_state_valuators_end 5757 ** 5758 ** @param const xcb_input_valuator_state_t *R 5759 ** @returns xcb_generic_iterator_t 5760 ** 5761 *****************************************************************************/ 5762 5763 xcb_generic_iterator_t 5764 xcb_input_valuator_state_valuators_end (const xcb_input_valuator_state_t *R /**< */) 5765 { 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; 5771 } 5772 5773 5774 /***************************************************************************** 5775 ** 5776 ** void xcb_input_valuator_state_next 5777 ** 5778 ** @param xcb_input_valuator_state_iterator_t *i 5779 ** @returns void 5780 ** 5781 *****************************************************************************/ 5782 5783 void 5784 xcb_input_valuator_state_next (xcb_input_valuator_state_iterator_t *i /**< */) 5785 { 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; 5792 } 5793 5794 5795 /***************************************************************************** 5796 ** 5797 ** xcb_generic_iterator_t xcb_input_valuator_state_end 5798 ** 5799 ** @param xcb_input_valuator_state_iterator_t i 5800 ** @returns xcb_generic_iterator_t 5801 ** 5802 *****************************************************************************/ 5803 5804 xcb_generic_iterator_t 5805 xcb_input_valuator_state_end (xcb_input_valuator_state_iterator_t i /**< */) 5806 { 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; 5814 } 5815 5816 int 5817 xcb_input_input_state_sizeof (const void *_buffer /**< */) 5818 { 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; 5825 5826 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; 5841 } 5842 xcb_block_len = 0; 5843 5844 return xcb_buffer_len; 5845 } 5846 5847 5848 /***************************************************************************** 5849 ** 5850 ** uint8_t * xcb_input_input_state_uninterpreted_data 5851 ** 5852 ** @param const xcb_input_input_state_t *R 5853 ** @returns uint8_t * 5854 ** 5855 *****************************************************************************/ 5856 5857 uint8_t * 5858 xcb_input_input_state_uninterpreted_data (const xcb_input_input_state_t *R /**< */) 5859 { 5860 return (uint8_t *) (R + 1); 5861 } 5862 5863 5864 /***************************************************************************** 5865 ** 5866 ** int xcb_input_input_state_uninterpreted_data_length 5867 ** 5868 ** @param const xcb_input_input_state_t *R 5869 ** @returns int 5870 ** 5871 *****************************************************************************/ 5872 5873 int 5874 xcb_input_input_state_uninterpreted_data_length (const xcb_input_input_state_t *R /**< */) 5875 { 5876 return (R->len - 4); 5877 } 5878 5879 5880 /***************************************************************************** 5881 ** 5882 ** xcb_generic_iterator_t xcb_input_input_state_uninterpreted_data_end 5883 ** 5884 ** @param const xcb_input_input_state_t *R 5885 ** @returns xcb_generic_iterator_t 5886 ** 5887 *****************************************************************************/ 5888 5889 xcb_generic_iterator_t 5890 xcb_input_input_state_uninterpreted_data_end (const xcb_input_input_state_t *R /**< */) 5891 { 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; 5897 } 5898 5899 5900 /***************************************************************************** 5901 ** 5902 ** void xcb_input_input_state_next 5903 ** 5904 ** @param xcb_input_input_state_iterator_t *i 5905 ** @returns void 5906 ** 5907 *****************************************************************************/ 5908 5909 void 5910 xcb_input_input_state_next (xcb_input_input_state_iterator_t *i /**< */) 5911 { 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; 5918 } 5919 5920 5921 /***************************************************************************** 5922 ** 5923 ** xcb_generic_iterator_t xcb_input_input_state_end 5924 ** 5925 ** @param xcb_input_input_state_iterator_t i 5926 ** @returns xcb_generic_iterator_t 5927 ** 5928 *****************************************************************************/ 5929 5930 xcb_generic_iterator_t 5931 xcb_input_input_state_end (xcb_input_input_state_iterator_t i /**< */) 5932 { 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; 5940 } 5941 5942 int 5943 xcb_input_query_device_state_sizeof (const void *_buffer /**< */) 5944 { 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; 5951 5952 unsigned int i; 5953 unsigned int xcb_tmp_len; 5954 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; 5964 } 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; 5972 } 5973 xcb_block_len = 0; 5974 5975 return xcb_buffer_len; 5976 } 5977 5978 5979 /***************************************************************************** 5980 ** 5981 ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state 5982 ** 5983 ** @param xcb_connection_t *c 5984 ** @param uint8_t device_id 5985 ** @returns xcb_input_query_device_state_cookie_t 5986 ** 5987 *****************************************************************************/ 5988 5989 xcb_input_query_device_state_cookie_t 5990 xcb_input_query_device_state (xcb_connection_t *c /**< */, 5991 uint8_t device_id /**< */) 5992 { 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 5998 }; 5999 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; 6003 6004 xcb_out.device_id = device_id; 6005 memset(xcb_out.pad0, 0, 3); 6006 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; 6011 6012 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6013 return xcb_ret; 6014 } 6015 6016 6017 /***************************************************************************** 6018 ** 6019 ** xcb_input_query_device_state_cookie_t xcb_input_query_device_state_unchecked 6020 ** 6021 ** @param xcb_connection_t *c 6022 ** @param uint8_t device_id 6023 ** @returns xcb_input_query_device_state_cookie_t 6024 ** 6025 *****************************************************************************/ 6026 6027 xcb_input_query_device_state_cookie_t 6028 xcb_input_query_device_state_unchecked (xcb_connection_t *c /**< */, 6029 uint8_t device_id /**< */) 6030 { 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 6036 }; 6037 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; 6041 6042 xcb_out.device_id = device_id; 6043 memset(xcb_out.pad0, 0, 3); 6044 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; 6049 6050 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6051 return xcb_ret; 6052 } 6053 6054 6055 /***************************************************************************** 6056 ** 6057 ** int xcb_input_query_device_state_classes_length 6058 ** 6059 ** @param const xcb_input_query_device_state_reply_t *R 6060 ** @returns int 6061 ** 6062 *****************************************************************************/ 6063 6064 int 6065 xcb_input_query_device_state_classes_length (const xcb_input_query_device_state_reply_t *R /**< */) 6066 { 6067 return R->num_classes; 6068 } 6069 6070 6071 /***************************************************************************** 6072 ** 6073 ** xcb_input_input_state_iterator_t xcb_input_query_device_state_classes_iterator 6074 ** 6075 ** @param const xcb_input_query_device_state_reply_t *R 6076 ** @returns xcb_input_input_state_iterator_t 6077 ** 6078 *****************************************************************************/ 6079 6080 xcb_input_input_state_iterator_t 6081 xcb_input_query_device_state_classes_iterator (const xcb_input_query_device_state_reply_t *R /**< */) 6082 { 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; 6088 } 6089 6090 6091 /***************************************************************************** 6092 ** 6093 ** xcb_input_query_device_state_reply_t * xcb_input_query_device_state_reply 6094 ** 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 * 6099 ** 6100 *****************************************************************************/ 6101 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 /**< */) 6106 { 6107 return (xcb_input_query_device_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6108 } 6109 6110 int 6111 xcb_input_send_extension_event_sizeof (const void *_buffer /**< */) 6112 { 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; 6119 6120 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; 6135 } 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; 6147 } 6148 xcb_block_len = 0; 6149 6150 return xcb_buffer_len; 6151 } 6152 6153 6154 /***************************************************************************** 6155 ** 6156 ** xcb_void_cookie_t xcb_input_send_extension_event_checked 6157 ** 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 6167 ** 6168 *****************************************************************************/ 6169 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 /**< */) 6179 { 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 6185 }; 6186 6187 struct iovec xcb_parts[8]; 6188 xcb_void_cookie_t xcb_ret; 6189 xcb_input_send_extension_event_request_t xcb_out; 6190 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); 6197 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; 6212 6213 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6214 return xcb_ret; 6215 } 6216 6217 6218 /***************************************************************************** 6219 ** 6220 ** xcb_void_cookie_t xcb_input_send_extension_event 6221 ** 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 6231 ** 6232 *****************************************************************************/ 6233 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 /**< */) 6243 { 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 6249 }; 6250 6251 struct iovec xcb_parts[8]; 6252 xcb_void_cookie_t xcb_ret; 6253 xcb_input_send_extension_event_request_t xcb_out; 6254 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); 6261 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; 6276 6277 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6278 return xcb_ret; 6279 } 6280 6281 6282 /***************************************************************************** 6283 ** 6284 ** xcb_void_cookie_t xcb_input_device_bell_checked 6285 ** 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 6292 ** 6293 *****************************************************************************/ 6294 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 /**< */) 6301 { 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 6307 }; 6308 6309 struct iovec xcb_parts[4]; 6310 xcb_void_cookie_t xcb_ret; 6311 xcb_input_device_bell_request_t xcb_out; 6312 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; 6317 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; 6322 6323 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6324 return xcb_ret; 6325 } 6326 6327 6328 /***************************************************************************** 6329 ** 6330 ** xcb_void_cookie_t xcb_input_device_bell 6331 ** 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 6338 ** 6339 *****************************************************************************/ 6340 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 /**< */) 6347 { 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 6353 }; 6354 6355 struct iovec xcb_parts[4]; 6356 xcb_void_cookie_t xcb_ret; 6357 xcb_input_device_bell_request_t xcb_out; 6358 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; 6363 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; 6368 6369 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6370 return xcb_ret; 6371 } 6372 6373 int 6374 xcb_input_set_device_valuators_sizeof (const void *_buffer /**< */) 6375 { 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; 6382 6383 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; 6398 } 6399 xcb_block_len = 0; 6400 6401 return xcb_buffer_len; 6402 } 6403 6404 6405 /***************************************************************************** 6406 ** 6407 ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators 6408 ** 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 6415 ** 6416 *****************************************************************************/ 6417 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 /**< */) 6424 { 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 6430 }; 6431 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; 6435 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; 6440 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; 6450 6451 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 6452 return xcb_ret; 6453 } 6454 6455 6456 /***************************************************************************** 6457 ** 6458 ** xcb_input_set_device_valuators_cookie_t xcb_input_set_device_valuators_unchecked 6459 ** 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 6466 ** 6467 *****************************************************************************/ 6468 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 /**< */) 6475 { 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 6481 }; 6482 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; 6486 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; 6491 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; 6501 6502 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 6503 return xcb_ret; 6504 } 6505 6506 6507 /***************************************************************************** 6508 ** 6509 ** xcb_input_set_device_valuators_reply_t * xcb_input_set_device_valuators_reply 6510 ** 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 * 6515 ** 6516 *****************************************************************************/ 6517 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 /**< */) 6522 { 6523 return (xcb_input_set_device_valuators_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 6524 } 6525 6526 int 6527 xcb_input_device_resolution_state_sizeof (const void *_buffer /**< */) 6528 { 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; 6535 6536 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; 6551 } 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; 6563 } 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; 6575 } 6576 xcb_block_len = 0; 6577 6578 return xcb_buffer_len; 6579 } 6580 6581 6582 /***************************************************************************** 6583 ** 6584 ** uint32_t * xcb_input_device_resolution_state_resolution_values 6585 ** 6586 ** @param const xcb_input_device_resolution_state_t *R 6587 ** @returns uint32_t * 6588 ** 6589 *****************************************************************************/ 6590 6591 uint32_t * 6592 xcb_input_device_resolution_state_resolution_values (const xcb_input_device_resolution_state_t *R /**< */) 6593 { 6594 return (uint32_t *) (R + 1); 6595 } 6596 6597 6598 /***************************************************************************** 6599 ** 6600 ** int xcb_input_device_resolution_state_resolution_values_length 6601 ** 6602 ** @param const xcb_input_device_resolution_state_t *R 6603 ** @returns int 6604 ** 6605 *****************************************************************************/ 6606 6607 int 6608 xcb_input_device_resolution_state_resolution_values_length (const xcb_input_device_resolution_state_t *R /**< */) 6609 { 6610 return R->num_valuators; 6611 } 6612 6613 6614 /***************************************************************************** 6615 ** 6616 ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_values_end 6617 ** 6618 ** @param const xcb_input_device_resolution_state_t *R 6619 ** @returns xcb_generic_iterator_t 6620 ** 6621 *****************************************************************************/ 6622 6623 xcb_generic_iterator_t 6624 xcb_input_device_resolution_state_resolution_values_end (const xcb_input_device_resolution_state_t *R /**< */) 6625 { 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; 6631 } 6632 6633 6634 /***************************************************************************** 6635 ** 6636 ** uint32_t * xcb_input_device_resolution_state_resolution_min 6637 ** 6638 ** @param const xcb_input_device_resolution_state_t *R 6639 ** @returns uint32_t * 6640 ** 6641 *****************************************************************************/ 6642 6643 uint32_t * 6644 xcb_input_device_resolution_state_resolution_min (const xcb_input_device_resolution_state_t *R /**< */) 6645 { 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); 6648 } 6649 6650 6651 /***************************************************************************** 6652 ** 6653 ** int xcb_input_device_resolution_state_resolution_min_length 6654 ** 6655 ** @param const xcb_input_device_resolution_state_t *R 6656 ** @returns int 6657 ** 6658 *****************************************************************************/ 6659 6660 int 6661 xcb_input_device_resolution_state_resolution_min_length (const xcb_input_device_resolution_state_t *R /**< */) 6662 { 6663 return R->num_valuators; 6664 } 6665 6666 6667 /***************************************************************************** 6668 ** 6669 ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_min_end 6670 ** 6671 ** @param const xcb_input_device_resolution_state_t *R 6672 ** @returns xcb_generic_iterator_t 6673 ** 6674 *****************************************************************************/ 6675 6676 xcb_generic_iterator_t 6677 xcb_input_device_resolution_state_resolution_min_end (const xcb_input_device_resolution_state_t *R /**< */) 6678 { 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; 6685 } 6686 6687 6688 /***************************************************************************** 6689 ** 6690 ** uint32_t * xcb_input_device_resolution_state_resolution_max 6691 ** 6692 ** @param const xcb_input_device_resolution_state_t *R 6693 ** @returns uint32_t * 6694 ** 6695 *****************************************************************************/ 6696 6697 uint32_t * 6698 xcb_input_device_resolution_state_resolution_max (const xcb_input_device_resolution_state_t *R /**< */) 6699 { 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); 6702 } 6703 6704 6705 /***************************************************************************** 6706 ** 6707 ** int xcb_input_device_resolution_state_resolution_max_length 6708 ** 6709 ** @param const xcb_input_device_resolution_state_t *R 6710 ** @returns int 6711 ** 6712 *****************************************************************************/ 6713 6714 int 6715 xcb_input_device_resolution_state_resolution_max_length (const xcb_input_device_resolution_state_t *R /**< */) 6716 { 6717 return R->num_valuators; 6718 } 6719 6720 6721 /***************************************************************************** 6722 ** 6723 ** xcb_generic_iterator_t xcb_input_device_resolution_state_resolution_max_end 6724 ** 6725 ** @param const xcb_input_device_resolution_state_t *R 6726 ** @returns xcb_generic_iterator_t 6727 ** 6728 *****************************************************************************/ 6729 6730 xcb_generic_iterator_t 6731 xcb_input_device_resolution_state_resolution_max_end (const xcb_input_device_resolution_state_t *R /**< */) 6732 { 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; 6739 } 6740 6741 6742 /***************************************************************************** 6743 ** 6744 ** void xcb_input_device_resolution_state_next 6745 ** 6746 ** @param xcb_input_device_resolution_state_iterator_t *i 6747 ** @returns void 6748 ** 6749 *****************************************************************************/ 6750 6751 void 6752 xcb_input_device_resolution_state_next (xcb_input_device_resolution_state_iterator_t *i /**< */) 6753 { 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; 6760 } 6761 6762 6763 /***************************************************************************** 6764 ** 6765 ** xcb_generic_iterator_t xcb_input_device_resolution_state_end 6766 ** 6767 ** @param xcb_input_device_resolution_state_iterator_t i 6768 ** @returns xcb_generic_iterator_t 6769 ** 6770 *****************************************************************************/ 6771 6772 xcb_generic_iterator_t 6773 xcb_input_device_resolution_state_end (xcb_input_device_resolution_state_iterator_t i /**< */) 6774 { 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; 6782 } 6783 6784 6785 /***************************************************************************** 6786 ** 6787 ** void xcb_input_device_abs_calib_state_next 6788 ** 6789 ** @param xcb_input_device_abs_calib_state_iterator_t *i 6790 ** @returns void 6791 ** 6792 *****************************************************************************/ 6793 6794 void 6795 xcb_input_device_abs_calib_state_next (xcb_input_device_abs_calib_state_iterator_t *i /**< */) 6796 { 6797 --i->rem; 6798 ++i->data; 6799 i->index += sizeof(xcb_input_device_abs_calib_state_t); 6800 } 6801 6802 6803 /***************************************************************************** 6804 ** 6805 ** xcb_generic_iterator_t xcb_input_device_abs_calib_state_end 6806 ** 6807 ** @param xcb_input_device_abs_calib_state_iterator_t i 6808 ** @returns xcb_generic_iterator_t 6809 ** 6810 *****************************************************************************/ 6811 6812 xcb_generic_iterator_t 6813 xcb_input_device_abs_calib_state_end (xcb_input_device_abs_calib_state_iterator_t i /**< */) 6814 { 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; 6820 } 6821 6822 6823 /***************************************************************************** 6824 ** 6825 ** void xcb_input_device_abs_area_state_next 6826 ** 6827 ** @param xcb_input_device_abs_area_state_iterator_t *i 6828 ** @returns void 6829 ** 6830 *****************************************************************************/ 6831 6832 void 6833 xcb_input_device_abs_area_state_next (xcb_input_device_abs_area_state_iterator_t *i /**< */) 6834 { 6835 --i->rem; 6836 ++i->data; 6837 i->index += sizeof(xcb_input_device_abs_area_state_t); 6838 } 6839 6840 6841 /***************************************************************************** 6842 ** 6843 ** xcb_generic_iterator_t xcb_input_device_abs_area_state_end 6844 ** 6845 ** @param xcb_input_device_abs_area_state_iterator_t i 6846 ** @returns xcb_generic_iterator_t 6847 ** 6848 *****************************************************************************/ 6849 6850 xcb_generic_iterator_t 6851 xcb_input_device_abs_area_state_end (xcb_input_device_abs_area_state_iterator_t i /**< */) 6852 { 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; 6858 } 6859 6860 6861 /***************************************************************************** 6862 ** 6863 ** void xcb_input_device_core_state_next 6864 ** 6865 ** @param xcb_input_device_core_state_iterator_t *i 6866 ** @returns void 6867 ** 6868 *****************************************************************************/ 6869 6870 void 6871 xcb_input_device_core_state_next (xcb_input_device_core_state_iterator_t *i /**< */) 6872 { 6873 --i->rem; 6874 ++i->data; 6875 i->index += sizeof(xcb_input_device_core_state_t); 6876 } 6877 6878 6879 /***************************************************************************** 6880 ** 6881 ** xcb_generic_iterator_t xcb_input_device_core_state_end 6882 ** 6883 ** @param xcb_input_device_core_state_iterator_t i 6884 ** @returns xcb_generic_iterator_t 6885 ** 6886 *****************************************************************************/ 6887 6888 xcb_generic_iterator_t 6889 xcb_input_device_core_state_end (xcb_input_device_core_state_iterator_t i /**< */) 6890 { 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; 6896 } 6897 6898 6899 /***************************************************************************** 6900 ** 6901 ** void xcb_input_device_enable_state_next 6902 ** 6903 ** @param xcb_input_device_enable_state_iterator_t *i 6904 ** @returns void 6905 ** 6906 *****************************************************************************/ 6907 6908 void 6909 xcb_input_device_enable_state_next (xcb_input_device_enable_state_iterator_t *i /**< */) 6910 { 6911 --i->rem; 6912 ++i->data; 6913 i->index += sizeof(xcb_input_device_enable_state_t); 6914 } 6915 6916 6917 /***************************************************************************** 6918 ** 6919 ** xcb_generic_iterator_t xcb_input_device_enable_state_end 6920 ** 6921 ** @param xcb_input_device_enable_state_iterator_t i 6922 ** @returns xcb_generic_iterator_t 6923 ** 6924 *****************************************************************************/ 6925 6926 xcb_generic_iterator_t 6927 xcb_input_device_enable_state_end (xcb_input_device_enable_state_iterator_t i /**< */) 6928 { 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; 6934 } 6935 6936 int 6937 xcb_input_device_state_sizeof (const void *_buffer /**< */) 6938 { 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; 6945 6946 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; 6961 } 6962 xcb_block_len = 0; 6963 6964 return xcb_buffer_len; 6965 } 6966 6967 6968 /***************************************************************************** 6969 ** 6970 ** uint8_t * xcb_input_device_state_uninterpreted_data 6971 ** 6972 ** @param const xcb_input_device_state_t *R 6973 ** @returns uint8_t * 6974 ** 6975 *****************************************************************************/ 6976 6977 uint8_t * 6978 xcb_input_device_state_uninterpreted_data (const xcb_input_device_state_t *R /**< */) 6979 { 6980 return (uint8_t *) (R + 1); 6981 } 6982 6983 6984 /***************************************************************************** 6985 ** 6986 ** int xcb_input_device_state_uninterpreted_data_length 6987 ** 6988 ** @param const xcb_input_device_state_t *R 6989 ** @returns int 6990 ** 6991 *****************************************************************************/ 6992 6993 int 6994 xcb_input_device_state_uninterpreted_data_length (const xcb_input_device_state_t *R /**< */) 6995 { 6996 return (R->len - 4); 6997 } 6998 6999 7000 /***************************************************************************** 7001 ** 7002 ** xcb_generic_iterator_t xcb_input_device_state_uninterpreted_data_end 7003 ** 7004 ** @param const xcb_input_device_state_t *R 7005 ** @returns xcb_generic_iterator_t 7006 ** 7007 *****************************************************************************/ 7008 7009 xcb_generic_iterator_t 7010 xcb_input_device_state_uninterpreted_data_end (const xcb_input_device_state_t *R /**< */) 7011 { 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; 7017 } 7018 7019 7020 /***************************************************************************** 7021 ** 7022 ** void xcb_input_device_state_next 7023 ** 7024 ** @param xcb_input_device_state_iterator_t *i 7025 ** @returns void 7026 ** 7027 *****************************************************************************/ 7028 7029 void 7030 xcb_input_device_state_next (xcb_input_device_state_iterator_t *i /**< */) 7031 { 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; 7038 } 7039 7040 7041 /***************************************************************************** 7042 ** 7043 ** xcb_generic_iterator_t xcb_input_device_state_end 7044 ** 7045 ** @param xcb_input_device_state_iterator_t i 7046 ** @returns xcb_generic_iterator_t 7047 ** 7048 *****************************************************************************/ 7049 7050 xcb_generic_iterator_t 7051 xcb_input_device_state_end (xcb_input_device_state_iterator_t i /**< */) 7052 { 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; 7060 } 7061 7062 int 7063 xcb_input_get_device_control_sizeof (const void *_buffer /**< */) 7064 { 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; 7070 7071 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; 7086 } 7087 xcb_block_len = 0; 7088 7089 return xcb_buffer_len; 7090 } 7091 7092 7093 /***************************************************************************** 7094 ** 7095 ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control 7096 ** 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 7101 ** 7102 *****************************************************************************/ 7103 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 /**< */) 7108 { 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 7114 }; 7115 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; 7119 7120 xcb_out.control_id = control_id; 7121 xcb_out.device_id = device_id; 7122 xcb_out.pad0 = 0; 7123 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; 7128 7129 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7130 return xcb_ret; 7131 } 7132 7133 7134 /***************************************************************************** 7135 ** 7136 ** xcb_input_get_device_control_cookie_t xcb_input_get_device_control_unchecked 7137 ** 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 7142 ** 7143 *****************************************************************************/ 7144 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 /**< */) 7149 { 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 7155 }; 7156 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; 7160 7161 xcb_out.control_id = control_id; 7162 xcb_out.device_id = device_id; 7163 xcb_out.pad0 = 0; 7164 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; 7169 7170 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7171 return xcb_ret; 7172 } 7173 7174 7175 /***************************************************************************** 7176 ** 7177 ** xcb_input_device_state_t * xcb_input_get_device_control_control 7178 ** 7179 ** @param const xcb_input_get_device_control_reply_t *R 7180 ** @returns xcb_input_device_state_t * 7181 ** 7182 *****************************************************************************/ 7183 7184 xcb_input_device_state_t * 7185 xcb_input_get_device_control_control (const xcb_input_get_device_control_reply_t *R /**< */) 7186 { 7187 return (xcb_input_device_state_t *) (R + 1); 7188 } 7189 7190 7191 /***************************************************************************** 7192 ** 7193 ** xcb_input_get_device_control_reply_t * xcb_input_get_device_control_reply 7194 ** 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 * 7199 ** 7200 *****************************************************************************/ 7201 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 /**< */) 7206 { 7207 return (xcb_input_get_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7208 } 7209 7210 int 7211 xcb_input_device_resolution_ctl_sizeof (const void *_buffer /**< */) 7212 { 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; 7219 7220 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; 7235 } 7236 xcb_block_len = 0; 7237 7238 return xcb_buffer_len; 7239 } 7240 7241 7242 /***************************************************************************** 7243 ** 7244 ** uint32_t * xcb_input_device_resolution_ctl_resolution_values 7245 ** 7246 ** @param const xcb_input_device_resolution_ctl_t *R 7247 ** @returns uint32_t * 7248 ** 7249 *****************************************************************************/ 7250 7251 uint32_t * 7252 xcb_input_device_resolution_ctl_resolution_values (const xcb_input_device_resolution_ctl_t *R /**< */) 7253 { 7254 return (uint32_t *) (R + 1); 7255 } 7256 7257 7258 /***************************************************************************** 7259 ** 7260 ** int xcb_input_device_resolution_ctl_resolution_values_length 7261 ** 7262 ** @param const xcb_input_device_resolution_ctl_t *R 7263 ** @returns int 7264 ** 7265 *****************************************************************************/ 7266 7267 int 7268 xcb_input_device_resolution_ctl_resolution_values_length (const xcb_input_device_resolution_ctl_t *R /**< */) 7269 { 7270 return R->num_valuators; 7271 } 7272 7273 7274 /***************************************************************************** 7275 ** 7276 ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_resolution_values_end 7277 ** 7278 ** @param const xcb_input_device_resolution_ctl_t *R 7279 ** @returns xcb_generic_iterator_t 7280 ** 7281 *****************************************************************************/ 7282 7283 xcb_generic_iterator_t 7284 xcb_input_device_resolution_ctl_resolution_values_end (const xcb_input_device_resolution_ctl_t *R /**< */) 7285 { 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; 7291 } 7292 7293 7294 /***************************************************************************** 7295 ** 7296 ** void xcb_input_device_resolution_ctl_next 7297 ** 7298 ** @param xcb_input_device_resolution_ctl_iterator_t *i 7299 ** @returns void 7300 ** 7301 *****************************************************************************/ 7302 7303 void 7304 xcb_input_device_resolution_ctl_next (xcb_input_device_resolution_ctl_iterator_t *i /**< */) 7305 { 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; 7312 } 7313 7314 7315 /***************************************************************************** 7316 ** 7317 ** xcb_generic_iterator_t xcb_input_device_resolution_ctl_end 7318 ** 7319 ** @param xcb_input_device_resolution_ctl_iterator_t i 7320 ** @returns xcb_generic_iterator_t 7321 ** 7322 *****************************************************************************/ 7323 7324 xcb_generic_iterator_t 7325 xcb_input_device_resolution_ctl_end (xcb_input_device_resolution_ctl_iterator_t i /**< */) 7326 { 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; 7334 } 7335 7336 7337 /***************************************************************************** 7338 ** 7339 ** void xcb_input_device_abs_calib_ctl_next 7340 ** 7341 ** @param xcb_input_device_abs_calib_ctl_iterator_t *i 7342 ** @returns void 7343 ** 7344 *****************************************************************************/ 7345 7346 void 7347 xcb_input_device_abs_calib_ctl_next (xcb_input_device_abs_calib_ctl_iterator_t *i /**< */) 7348 { 7349 --i->rem; 7350 ++i->data; 7351 i->index += sizeof(xcb_input_device_abs_calib_ctl_t); 7352 } 7353 7354 7355 /***************************************************************************** 7356 ** 7357 ** xcb_generic_iterator_t xcb_input_device_abs_calib_ctl_end 7358 ** 7359 ** @param xcb_input_device_abs_calib_ctl_iterator_t i 7360 ** @returns xcb_generic_iterator_t 7361 ** 7362 *****************************************************************************/ 7363 7364 xcb_generic_iterator_t 7365 xcb_input_device_abs_calib_ctl_end (xcb_input_device_abs_calib_ctl_iterator_t i /**< */) 7366 { 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; 7372 } 7373 7374 7375 /***************************************************************************** 7376 ** 7377 ** void xcb_input_device_abs_area_ctrl_next 7378 ** 7379 ** @param xcb_input_device_abs_area_ctrl_iterator_t *i 7380 ** @returns void 7381 ** 7382 *****************************************************************************/ 7383 7384 void 7385 xcb_input_device_abs_area_ctrl_next (xcb_input_device_abs_area_ctrl_iterator_t *i /**< */) 7386 { 7387 --i->rem; 7388 ++i->data; 7389 i->index += sizeof(xcb_input_device_abs_area_ctrl_t); 7390 } 7391 7392 7393 /***************************************************************************** 7394 ** 7395 ** xcb_generic_iterator_t xcb_input_device_abs_area_ctrl_end 7396 ** 7397 ** @param xcb_input_device_abs_area_ctrl_iterator_t i 7398 ** @returns xcb_generic_iterator_t 7399 ** 7400 *****************************************************************************/ 7401 7402 xcb_generic_iterator_t 7403 xcb_input_device_abs_area_ctrl_end (xcb_input_device_abs_area_ctrl_iterator_t i /**< */) 7404 { 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; 7410 } 7411 7412 7413 /***************************************************************************** 7414 ** 7415 ** void xcb_input_device_core_ctrl_next 7416 ** 7417 ** @param xcb_input_device_core_ctrl_iterator_t *i 7418 ** @returns void 7419 ** 7420 *****************************************************************************/ 7421 7422 void 7423 xcb_input_device_core_ctrl_next (xcb_input_device_core_ctrl_iterator_t *i /**< */) 7424 { 7425 --i->rem; 7426 ++i->data; 7427 i->index += sizeof(xcb_input_device_core_ctrl_t); 7428 } 7429 7430 7431 /***************************************************************************** 7432 ** 7433 ** xcb_generic_iterator_t xcb_input_device_core_ctrl_end 7434 ** 7435 ** @param xcb_input_device_core_ctrl_iterator_t i 7436 ** @returns xcb_generic_iterator_t 7437 ** 7438 *****************************************************************************/ 7439 7440 xcb_generic_iterator_t 7441 xcb_input_device_core_ctrl_end (xcb_input_device_core_ctrl_iterator_t i /**< */) 7442 { 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; 7448 } 7449 7450 7451 /***************************************************************************** 7452 ** 7453 ** void xcb_input_device_enable_ctrl_next 7454 ** 7455 ** @param xcb_input_device_enable_ctrl_iterator_t *i 7456 ** @returns void 7457 ** 7458 *****************************************************************************/ 7459 7460 void 7461 xcb_input_device_enable_ctrl_next (xcb_input_device_enable_ctrl_iterator_t *i /**< */) 7462 { 7463 --i->rem; 7464 ++i->data; 7465 i->index += sizeof(xcb_input_device_enable_ctrl_t); 7466 } 7467 7468 7469 /***************************************************************************** 7470 ** 7471 ** xcb_generic_iterator_t xcb_input_device_enable_ctrl_end 7472 ** 7473 ** @param xcb_input_device_enable_ctrl_iterator_t i 7474 ** @returns xcb_generic_iterator_t 7475 ** 7476 *****************************************************************************/ 7477 7478 xcb_generic_iterator_t 7479 xcb_input_device_enable_ctrl_end (xcb_input_device_enable_ctrl_iterator_t i /**< */) 7480 { 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; 7486 } 7487 7488 int 7489 xcb_input_device_ctl_sizeof (const void *_buffer /**< */) 7490 { 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; 7497 7498 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; 7513 } 7514 xcb_block_len = 0; 7515 7516 return xcb_buffer_len; 7517 } 7518 7519 7520 /***************************************************************************** 7521 ** 7522 ** uint8_t * xcb_input_device_ctl_uninterpreted_data 7523 ** 7524 ** @param const xcb_input_device_ctl_t *R 7525 ** @returns uint8_t * 7526 ** 7527 *****************************************************************************/ 7528 7529 uint8_t * 7530 xcb_input_device_ctl_uninterpreted_data (const xcb_input_device_ctl_t *R /**< */) 7531 { 7532 return (uint8_t *) (R + 1); 7533 } 7534 7535 7536 /***************************************************************************** 7537 ** 7538 ** int xcb_input_device_ctl_uninterpreted_data_length 7539 ** 7540 ** @param const xcb_input_device_ctl_t *R 7541 ** @returns int 7542 ** 7543 *****************************************************************************/ 7544 7545 int 7546 xcb_input_device_ctl_uninterpreted_data_length (const xcb_input_device_ctl_t *R /**< */) 7547 { 7548 return (R->len - 4); 7549 } 7550 7551 7552 /***************************************************************************** 7553 ** 7554 ** xcb_generic_iterator_t xcb_input_device_ctl_uninterpreted_data_end 7555 ** 7556 ** @param const xcb_input_device_ctl_t *R 7557 ** @returns xcb_generic_iterator_t 7558 ** 7559 *****************************************************************************/ 7560 7561 xcb_generic_iterator_t 7562 xcb_input_device_ctl_uninterpreted_data_end (const xcb_input_device_ctl_t *R /**< */) 7563 { 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; 7569 } 7570 7571 7572 /***************************************************************************** 7573 ** 7574 ** void xcb_input_device_ctl_next 7575 ** 7576 ** @param xcb_input_device_ctl_iterator_t *i 7577 ** @returns void 7578 ** 7579 *****************************************************************************/ 7580 7581 void 7582 xcb_input_device_ctl_next (xcb_input_device_ctl_iterator_t *i /**< */) 7583 { 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; 7590 } 7591 7592 7593 /***************************************************************************** 7594 ** 7595 ** xcb_generic_iterator_t xcb_input_device_ctl_end 7596 ** 7597 ** @param xcb_input_device_ctl_iterator_t i 7598 ** @returns xcb_generic_iterator_t 7599 ** 7600 *****************************************************************************/ 7601 7602 xcb_generic_iterator_t 7603 xcb_input_device_ctl_end (xcb_input_device_ctl_iterator_t i /**< */) 7604 { 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; 7612 } 7613 7614 int 7615 xcb_input_change_device_control_sizeof (const void *_buffer /**< */) 7616 { 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; 7622 7623 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; 7638 } 7639 xcb_block_len = 0; 7640 7641 return xcb_buffer_len; 7642 } 7643 7644 7645 /***************************************************************************** 7646 ** 7647 ** xcb_input_change_device_control_cookie_t xcb_input_change_device_control 7648 ** 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 7654 ** 7655 *****************************************************************************/ 7656 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 /**< */) 7662 { 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 7668 }; 7669 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; 7673 7674 xcb_out.control_id = control_id; 7675 xcb_out.device_id = device_id; 7676 xcb_out.pad0 = 0; 7677 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); 7686 7687 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7688 return xcb_ret; 7689 } 7690 7691 7692 /***************************************************************************** 7693 ** 7694 ** xcb_input_change_device_control_cookie_t xcb_input_change_device_control_unchecked 7695 ** 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 7701 ** 7702 *****************************************************************************/ 7703 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 /**< */) 7709 { 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 7715 }; 7716 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; 7720 7721 xcb_out.control_id = control_id; 7722 xcb_out.device_id = device_id; 7723 xcb_out.pad0 = 0; 7724 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); 7733 7734 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7735 return xcb_ret; 7736 } 7737 7738 7739 /***************************************************************************** 7740 ** 7741 ** xcb_input_change_device_control_reply_t * xcb_input_change_device_control_reply 7742 ** 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 * 7747 ** 7748 *****************************************************************************/ 7749 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 /**< */) 7754 { 7755 return (xcb_input_change_device_control_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7756 } 7757 7758 int 7759 xcb_input_list_device_properties_sizeof (const void *_buffer /**< */) 7760 { 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; 7767 7768 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; 7783 } 7784 xcb_block_len = 0; 7785 7786 return xcb_buffer_len; 7787 } 7788 7789 7790 /***************************************************************************** 7791 ** 7792 ** xcb_input_list_device_properties_cookie_t xcb_input_list_device_properties 7793 ** 7794 ** @param xcb_connection_t *c 7795 ** @param uint8_t device_id 7796 ** @returns xcb_input_list_device_properties_cookie_t 7797 ** 7798 *****************************************************************************/ 7799 7800 xcb_input_list_device_properties_cookie_t 7801 xcb_input_list_device_properties (xcb_connection_t *c /**< */, 7802 uint8_t device_id /**< */) 7803 { 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 7809 }; 7810 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; 7814 7815 xcb_out.device_id = device_id; 7816 memset(xcb_out.pad0, 0, 3); 7817 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; 7822 7823 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 7824 return xcb_ret; 7825 } 7826 7827 7828 /***************************************************************************** 7829 ** 7830 ** xcb_input_list_device_properties_cookie_t xcb_input_list_device_properties_unchecked 7831 ** 7832 ** @param xcb_connection_t *c 7833 ** @param uint8_t device_id 7834 ** @returns xcb_input_list_device_properties_cookie_t 7835 ** 7836 *****************************************************************************/ 7837 7838 xcb_input_list_device_properties_cookie_t 7839 xcb_input_list_device_properties_unchecked (xcb_connection_t *c /**< */, 7840 uint8_t device_id /**< */) 7841 { 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 7847 }; 7848 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; 7852 7853 xcb_out.device_id = device_id; 7854 memset(xcb_out.pad0, 0, 3); 7855 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; 7860 7861 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 7862 return xcb_ret; 7863 } 7864 7865 7866 /***************************************************************************** 7867 ** 7868 ** xcb_atom_t * xcb_input_list_device_properties_atoms 7869 ** 7870 ** @param const xcb_input_list_device_properties_reply_t *R 7871 ** @returns xcb_atom_t * 7872 ** 7873 *****************************************************************************/ 7874 7875 xcb_atom_t * 7876 xcb_input_list_device_properties_atoms (const xcb_input_list_device_properties_reply_t *R /**< */) 7877 { 7878 return (xcb_atom_t *) (R + 1); 7879 } 7880 7881 7882 /***************************************************************************** 7883 ** 7884 ** int xcb_input_list_device_properties_atoms_length 7885 ** 7886 ** @param const xcb_input_list_device_properties_reply_t *R 7887 ** @returns int 7888 ** 7889 *****************************************************************************/ 7890 7891 int 7892 xcb_input_list_device_properties_atoms_length (const xcb_input_list_device_properties_reply_t *R /**< */) 7893 { 7894 return R->num_atoms; 7895 } 7896 7897 7898 /***************************************************************************** 7899 ** 7900 ** xcb_generic_iterator_t xcb_input_list_device_properties_atoms_end 7901 ** 7902 ** @param const xcb_input_list_device_properties_reply_t *R 7903 ** @returns xcb_generic_iterator_t 7904 ** 7905 *****************************************************************************/ 7906 7907 xcb_generic_iterator_t 7908 xcb_input_list_device_properties_atoms_end (const xcb_input_list_device_properties_reply_t *R /**< */) 7909 { 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; 7915 } 7916 7917 7918 /***************************************************************************** 7919 ** 7920 ** xcb_input_list_device_properties_reply_t * xcb_input_list_device_properties_reply 7921 ** 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 * 7926 ** 7927 *****************************************************************************/ 7928 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 /**< */) 7933 { 7934 return (xcb_input_list_device_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 7935 } 7936 7937 7938 /***************************************************************************** 7939 ** 7940 ** uint8_t * xcb_input_change_device_property_items_data_8 7941 ** 7942 ** @param const xcb_input_change_device_property_items_t *S 7943 ** @returns uint8_t * 7944 ** 7945 *****************************************************************************/ 7946 7947 uint8_t * 7948 xcb_input_change_device_property_items_data_8 (const xcb_input_change_device_property_items_t *S /**< */) 7949 { 7950 return /* items */ S->data8; 7951 } 7952 7953 7954 /***************************************************************************** 7955 ** 7956 ** int xcb_input_change_device_property_items_data_8_length 7957 ** 7958 ** @param const xcb_input_change_device_property_items_t *R 7959 ** @returns int 7960 ** 7961 *****************************************************************************/ 7962 7963 int 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 /**< */) 7966 { 7967 return R->num_items; 7968 } 7969 7970 7971 /***************************************************************************** 7972 ** 7973 ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_8_end 7974 ** 7975 ** @param const xcb_input_change_device_property_items_t *R 7976 ** @returns xcb_generic_iterator_t 7977 ** 7978 *****************************************************************************/ 7979 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 /**< */) 7983 { 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; 7989 } 7990 7991 7992 /***************************************************************************** 7993 ** 7994 ** uint16_t * xcb_input_change_device_property_items_data_16 7995 ** 7996 ** @param const xcb_input_change_device_property_items_t *S 7997 ** @returns uint16_t * 7998 ** 7999 *****************************************************************************/ 8000 8001 uint16_t * 8002 xcb_input_change_device_property_items_data_16 (const xcb_input_change_device_property_items_t *S /**< */) 8003 { 8004 return /* items */ S->data16; 8005 } 8006 8007 8008 /***************************************************************************** 8009 ** 8010 ** int xcb_input_change_device_property_items_data_16_length 8011 ** 8012 ** @param const xcb_input_change_device_property_items_t *R 8013 ** @returns int 8014 ** 8015 *****************************************************************************/ 8016 8017 int 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 /**< */) 8020 { 8021 return R->num_items; 8022 } 8023 8024 8025 /***************************************************************************** 8026 ** 8027 ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_16_end 8028 ** 8029 ** @param const xcb_input_change_device_property_items_t *R 8030 ** @returns xcb_generic_iterator_t 8031 ** 8032 *****************************************************************************/ 8033 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 /**< */) 8037 { 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; 8043 } 8044 8045 8046 /***************************************************************************** 8047 ** 8048 ** uint32_t * xcb_input_change_device_property_items_data_32 8049 ** 8050 ** @param const xcb_input_change_device_property_items_t *S 8051 ** @returns uint32_t * 8052 ** 8053 *****************************************************************************/ 8054 8055 uint32_t * 8056 xcb_input_change_device_property_items_data_32 (const xcb_input_change_device_property_items_t *S /**< */) 8057 { 8058 return /* items */ S->data32; 8059 } 8060 8061 8062 /***************************************************************************** 8063 ** 8064 ** int xcb_input_change_device_property_items_data_32_length 8065 ** 8066 ** @param const xcb_input_change_device_property_items_t *R 8067 ** @returns int 8068 ** 8069 *****************************************************************************/ 8070 8071 int 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 /**< */) 8074 { 8075 return R->num_items; 8076 } 8077 8078 8079 /***************************************************************************** 8080 ** 8081 ** xcb_generic_iterator_t xcb_input_change_device_property_items_data_32_end 8082 ** 8083 ** @param const xcb_input_change_device_property_items_t *R 8084 ** @returns xcb_generic_iterator_t 8085 ** 8086 *****************************************************************************/ 8087 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 /**< */) 8091 { 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; 8097 } 8098 8099 int 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 /**< */) 8104 { 8105 char *xcb_out = *_buffer; 8106 unsigned int xcb_buffer_len = 0; 8107 unsigned int xcb_align_to = 0; 8108 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; 8116 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; 8126 } 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); 8134 } 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; 8144 } 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); 8152 } 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; 8162 } 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); 8170 } 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; 8179 } 8180 xcb_block_len = 0; 8181 8182 if (NULL == xcb_out) { 8183 /* allocate memory */ 8184 xcb_out = malloc(xcb_buffer_len); 8185 *_buffer = xcb_out; 8186 } 8187 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; 8194 } 8195 8196 return xcb_buffer_len; 8197 } 8198 8199 int 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 /**< */) 8204 { 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; 8210 8211 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; 8219 } 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); 8226 } 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; 8234 } 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); 8241 } 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; 8249 } 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); 8256 } 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; 8263 } 8264 xcb_block_len = 0; 8265 8266 return xcb_buffer_len; 8267 } 8268 8269 int 8270 xcb_input_change_device_property_items_sizeof (const void *_buffer /**< */, 8271 uint32_t num_items /**< */, 8272 uint8_t format /**< */) 8273 { 8274 xcb_input_change_device_property_items_t _aux; 8275 return xcb_input_change_device_property_items_unpack(_buffer, num_items, format, &_aux); 8276 } 8277 8278 8279 /***************************************************************************** 8280 ** 8281 ** xcb_void_cookie_t xcb_input_change_device_property_checked 8282 ** 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 8292 ** 8293 *****************************************************************************/ 8294 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 /**< */) 8304 { 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 8310 }; 8311 8312 struct iovec xcb_parts[5]; 8313 xcb_void_cookie_t xcb_ret; 8314 xcb_input_change_device_property_request_t xcb_out; 8315 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; 8323 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); 8332 8333 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8334 return xcb_ret; 8335 } 8336 8337 8338 /***************************************************************************** 8339 ** 8340 ** xcb_void_cookie_t xcb_input_change_device_property 8341 ** 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 8351 ** 8352 *****************************************************************************/ 8353 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 /**< */) 8363 { 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 8369 }; 8370 8371 struct iovec xcb_parts[5]; 8372 xcb_void_cookie_t xcb_ret; 8373 xcb_input_change_device_property_request_t xcb_out; 8374 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; 8382 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); 8391 8392 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8393 return xcb_ret; 8394 } 8395 8396 8397 /***************************************************************************** 8398 ** 8399 ** xcb_void_cookie_t xcb_input_change_device_property_aux_checked 8400 ** 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 8410 ** 8411 *****************************************************************************/ 8412 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 /**< */) 8422 { 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 8428 }; 8429 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; 8434 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; 8442 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; 8451 8452 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8453 free(xcb_aux0); 8454 return xcb_ret; 8455 } 8456 8457 8458 /***************************************************************************** 8459 ** 8460 ** xcb_void_cookie_t xcb_input_change_device_property_aux 8461 ** 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 8471 ** 8472 *****************************************************************************/ 8473 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 /**< */) 8483 { 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 8489 }; 8490 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; 8495 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; 8503 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; 8512 8513 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8514 free(xcb_aux0); 8515 return xcb_ret; 8516 } 8517 8518 8519 /***************************************************************************** 8520 ** 8521 ** xcb_void_cookie_t xcb_input_delete_device_property_checked 8522 ** 8523 ** @param xcb_connection_t *c 8524 ** @param xcb_atom_t property 8525 ** @param uint8_t device_id 8526 ** @returns xcb_void_cookie_t 8527 ** 8528 *****************************************************************************/ 8529 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 /**< */) 8534 { 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 8540 }; 8541 8542 struct iovec xcb_parts[4]; 8543 xcb_void_cookie_t xcb_ret; 8544 xcb_input_delete_device_property_request_t xcb_out; 8545 8546 xcb_out.property = property; 8547 xcb_out.device_id = device_id; 8548 memset(xcb_out.pad0, 0, 3); 8549 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; 8554 8555 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8556 return xcb_ret; 8557 } 8558 8559 8560 /***************************************************************************** 8561 ** 8562 ** xcb_void_cookie_t xcb_input_delete_device_property 8563 ** 8564 ** @param xcb_connection_t *c 8565 ** @param xcb_atom_t property 8566 ** @param uint8_t device_id 8567 ** @returns xcb_void_cookie_t 8568 ** 8569 *****************************************************************************/ 8570 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 /**< */) 8575 { 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 8581 }; 8582 8583 struct iovec xcb_parts[4]; 8584 xcb_void_cookie_t xcb_ret; 8585 xcb_input_delete_device_property_request_t xcb_out; 8586 8587 xcb_out.property = property; 8588 xcb_out.device_id = device_id; 8589 memset(xcb_out.pad0, 0, 3); 8590 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; 8595 8596 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 8597 return xcb_ret; 8598 } 8599 8600 8601 /***************************************************************************** 8602 ** 8603 ** uint8_t * xcb_input_get_device_property_items_data_8 8604 ** 8605 ** @param const xcb_input_get_device_property_items_t *S 8606 ** @returns uint8_t * 8607 ** 8608 *****************************************************************************/ 8609 8610 uint8_t * 8611 xcb_input_get_device_property_items_data_8 (const xcb_input_get_device_property_items_t *S /**< */) 8612 { 8613 return /* items */ S->data8; 8614 } 8615 8616 8617 /***************************************************************************** 8618 ** 8619 ** int xcb_input_get_device_property_items_data_8_length 8620 ** 8621 ** @param const xcb_input_get_device_property_items_t *R 8622 ** @returns int 8623 ** 8624 *****************************************************************************/ 8625 8626 int 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 /**< */) 8629 { 8630 return R->num_items; 8631 } 8632 8633 8634 /***************************************************************************** 8635 ** 8636 ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_8_end 8637 ** 8638 ** @param const xcb_input_get_device_property_items_t *R 8639 ** @returns xcb_generic_iterator_t 8640 ** 8641 *****************************************************************************/ 8642 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 /**< */) 8646 { 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; 8652 } 8653 8654 8655 /***************************************************************************** 8656 ** 8657 ** uint16_t * xcb_input_get_device_property_items_data_16 8658 ** 8659 ** @param const xcb_input_get_device_property_items_t *S 8660 ** @returns uint16_t * 8661 ** 8662 *****************************************************************************/ 8663 8664 uint16_t * 8665 xcb_input_get_device_property_items_data_16 (const xcb_input_get_device_property_items_t *S /**< */) 8666 { 8667 return /* items */ S->data16; 8668 } 8669 8670 8671 /***************************************************************************** 8672 ** 8673 ** int xcb_input_get_device_property_items_data_16_length 8674 ** 8675 ** @param const xcb_input_get_device_property_items_t *R 8676 ** @returns int 8677 ** 8678 *****************************************************************************/ 8679 8680 int 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 /**< */) 8683 { 8684 return R->num_items; 8685 } 8686 8687 8688 /***************************************************************************** 8689 ** 8690 ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_16_end 8691 ** 8692 ** @param const xcb_input_get_device_property_items_t *R 8693 ** @returns xcb_generic_iterator_t 8694 ** 8695 *****************************************************************************/ 8696 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 /**< */) 8700 { 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; 8706 } 8707 8708 8709 /***************************************************************************** 8710 ** 8711 ** uint32_t * xcb_input_get_device_property_items_data_32 8712 ** 8713 ** @param const xcb_input_get_device_property_items_t *S 8714 ** @returns uint32_t * 8715 ** 8716 *****************************************************************************/ 8717 8718 uint32_t * 8719 xcb_input_get_device_property_items_data_32 (const xcb_input_get_device_property_items_t *S /**< */) 8720 { 8721 return /* items */ S->data32; 8722 } 8723 8724 8725 /***************************************************************************** 8726 ** 8727 ** int xcb_input_get_device_property_items_data_32_length 8728 ** 8729 ** @param const xcb_input_get_device_property_items_t *R 8730 ** @returns int 8731 ** 8732 *****************************************************************************/ 8733 8734 int 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 /**< */) 8737 { 8738 return R->num_items; 8739 } 8740 8741 8742 /***************************************************************************** 8743 ** 8744 ** xcb_generic_iterator_t xcb_input_get_device_property_items_data_32_end 8745 ** 8746 ** @param const xcb_input_get_device_property_items_t *R 8747 ** @returns xcb_generic_iterator_t 8748 ** 8749 *****************************************************************************/ 8750 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 /**< */) 8754 { 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; 8760 } 8761 8762 int 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 /**< */) 8767 { 8768 char *xcb_out = *_buffer; 8769 unsigned int xcb_buffer_len = 0; 8770 unsigned int xcb_align_to = 0; 8771 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; 8779 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; 8789 } 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); 8797 } 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; 8807 } 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); 8815 } 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; 8825 } 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); 8833 } 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; 8842 } 8843 xcb_block_len = 0; 8844 8845 if (NULL == xcb_out) { 8846 /* allocate memory */ 8847 xcb_out = malloc(xcb_buffer_len); 8848 *_buffer = xcb_out; 8849 } 8850 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; 8857 } 8858 8859 return xcb_buffer_len; 8860 } 8861 8862 int 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 /**< */) 8867 { 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; 8873 8874 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; 8882 } 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); 8889 } 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; 8897 } 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); 8904 } 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; 8912 } 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); 8919 } 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; 8926 } 8927 xcb_block_len = 0; 8928 8929 return xcb_buffer_len; 8930 } 8931 8932 int 8933 xcb_input_get_device_property_items_sizeof (const void *_buffer /**< */, 8934 uint32_t num_items /**< */, 8935 uint8_t format /**< */) 8936 { 8937 xcb_input_get_device_property_items_t _aux; 8938 return xcb_input_get_device_property_items_unpack(_buffer, num_items, format, &_aux); 8939 } 8940 8941 8942 /***************************************************************************** 8943 ** 8944 ** xcb_input_get_device_property_cookie_t xcb_input_get_device_property 8945 ** 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 8954 ** 8955 *****************************************************************************/ 8956 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 /**< */) 8965 { 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 8971 }; 8972 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; 8976 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); 8984 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; 8989 8990 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 8991 return xcb_ret; 8992 } 8993 8994 8995 /***************************************************************************** 8996 ** 8997 ** xcb_input_get_device_property_cookie_t xcb_input_get_device_property_unchecked 8998 ** 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 9007 ** 9008 *****************************************************************************/ 9009 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 /**< */) 9018 { 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 9024 }; 9025 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; 9029 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); 9037 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; 9042 9043 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9044 return xcb_ret; 9045 } 9046 9047 9048 /***************************************************************************** 9049 ** 9050 ** xcb_input_get_device_property_items_t * xcb_input_get_device_property_items 9051 ** 9052 ** @param const xcb_input_get_device_property_reply_t *R 9053 ** @returns xcb_input_get_device_property_items_t * 9054 ** 9055 *****************************************************************************/ 9056 9057 void * 9058 xcb_input_get_device_property_items (const xcb_input_get_device_property_reply_t *R /**< */) 9059 { 9060 return (void *) (R + 1); 9061 } 9062 9063 9064 /***************************************************************************** 9065 ** 9066 ** xcb_input_get_device_property_reply_t * xcb_input_get_device_property_reply 9067 ** 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 * 9072 ** 9073 *****************************************************************************/ 9074 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 /**< */) 9079 { 9080 return (xcb_input_get_device_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9081 } 9082 9083 9084 /***************************************************************************** 9085 ** 9086 ** void xcb_input_group_info_next 9087 ** 9088 ** @param xcb_input_group_info_iterator_t *i 9089 ** @returns void 9090 ** 9091 *****************************************************************************/ 9092 9093 void 9094 xcb_input_group_info_next (xcb_input_group_info_iterator_t *i /**< */) 9095 { 9096 --i->rem; 9097 ++i->data; 9098 i->index += sizeof(xcb_input_group_info_t); 9099 } 9100 9101 9102 /***************************************************************************** 9103 ** 9104 ** xcb_generic_iterator_t xcb_input_group_info_end 9105 ** 9106 ** @param xcb_input_group_info_iterator_t i 9107 ** @returns xcb_generic_iterator_t 9108 ** 9109 *****************************************************************************/ 9110 9111 xcb_generic_iterator_t 9112 xcb_input_group_info_end (xcb_input_group_info_iterator_t i /**< */) 9113 { 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; 9119 } 9120 9121 9122 /***************************************************************************** 9123 ** 9124 ** void xcb_input_modifier_info_next 9125 ** 9126 ** @param xcb_input_modifier_info_iterator_t *i 9127 ** @returns void 9128 ** 9129 *****************************************************************************/ 9130 9131 void 9132 xcb_input_modifier_info_next (xcb_input_modifier_info_iterator_t *i /**< */) 9133 { 9134 --i->rem; 9135 ++i->data; 9136 i->index += sizeof(xcb_input_modifier_info_t); 9137 } 9138 9139 9140 /***************************************************************************** 9141 ** 9142 ** xcb_generic_iterator_t xcb_input_modifier_info_end 9143 ** 9144 ** @param xcb_input_modifier_info_iterator_t i 9145 ** @returns xcb_generic_iterator_t 9146 ** 9147 *****************************************************************************/ 9148 9149 xcb_generic_iterator_t 9150 xcb_input_modifier_info_end (xcb_input_modifier_info_iterator_t i /**< */) 9151 { 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; 9157 } 9158 9159 int 9160 xcb_input_xi_query_pointer_sizeof (const void *_buffer /**< */) 9161 { 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; 9168 9169 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; 9184 } 9185 xcb_block_len = 0; 9186 9187 return xcb_buffer_len; 9188 } 9189 9190 9191 /***************************************************************************** 9192 ** 9193 ** xcb_input_xi_query_pointer_cookie_t xcb_input_xi_query_pointer 9194 ** 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 9199 ** 9200 *****************************************************************************/ 9201 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 /**< */) 9206 { 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 9212 }; 9213 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; 9217 9218 xcb_out.window = window; 9219 xcb_out.deviceid = deviceid; 9220 memset(xcb_out.pad0, 0, 2); 9221 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; 9226 9227 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9228 return xcb_ret; 9229 } 9230 9231 9232 /***************************************************************************** 9233 ** 9234 ** xcb_input_xi_query_pointer_cookie_t xcb_input_xi_query_pointer_unchecked 9235 ** 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 9240 ** 9241 *****************************************************************************/ 9242 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 /**< */) 9247 { 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 9253 }; 9254 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; 9258 9259 xcb_out.window = window; 9260 xcb_out.deviceid = deviceid; 9261 memset(xcb_out.pad0, 0, 2); 9262 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; 9267 9268 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9269 return xcb_ret; 9270 } 9271 9272 9273 /***************************************************************************** 9274 ** 9275 ** uint32_t * xcb_input_xi_query_pointer_buttons 9276 ** 9277 ** @param const xcb_input_xi_query_pointer_reply_t *R 9278 ** @returns uint32_t * 9279 ** 9280 *****************************************************************************/ 9281 9282 uint32_t * 9283 xcb_input_xi_query_pointer_buttons (const xcb_input_xi_query_pointer_reply_t *R /**< */) 9284 { 9285 return (uint32_t *) (R + 1); 9286 } 9287 9288 9289 /***************************************************************************** 9290 ** 9291 ** int xcb_input_xi_query_pointer_buttons_length 9292 ** 9293 ** @param const xcb_input_xi_query_pointer_reply_t *R 9294 ** @returns int 9295 ** 9296 *****************************************************************************/ 9297 9298 int 9299 xcb_input_xi_query_pointer_buttons_length (const xcb_input_xi_query_pointer_reply_t *R /**< */) 9300 { 9301 return R->buttons_len; 9302 } 9303 9304 9305 /***************************************************************************** 9306 ** 9307 ** xcb_generic_iterator_t xcb_input_xi_query_pointer_buttons_end 9308 ** 9309 ** @param const xcb_input_xi_query_pointer_reply_t *R 9310 ** @returns xcb_generic_iterator_t 9311 ** 9312 *****************************************************************************/ 9313 9314 xcb_generic_iterator_t 9315 xcb_input_xi_query_pointer_buttons_end (const xcb_input_xi_query_pointer_reply_t *R /**< */) 9316 { 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; 9322 } 9323 9324 9325 /***************************************************************************** 9326 ** 9327 ** xcb_input_xi_query_pointer_reply_t * xcb_input_xi_query_pointer_reply 9328 ** 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 * 9333 ** 9334 *****************************************************************************/ 9335 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 /**< */) 9340 { 9341 return (xcb_input_xi_query_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 9342 } 9343 9344 9345 /***************************************************************************** 9346 ** 9347 ** xcb_void_cookie_t xcb_input_xi_warp_pointer_checked 9348 ** 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 9360 ** 9361 *****************************************************************************/ 9362 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 /**< */) 9374 { 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 9380 }; 9381 9382 struct iovec xcb_parts[4]; 9383 xcb_void_cookie_t xcb_ret; 9384 xcb_input_xi_warp_pointer_request_t xcb_out; 9385 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); 9396 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; 9401 9402 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9403 return xcb_ret; 9404 } 9405 9406 9407 /***************************************************************************** 9408 ** 9409 ** xcb_void_cookie_t xcb_input_xi_warp_pointer 9410 ** 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 9422 ** 9423 *****************************************************************************/ 9424 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 /**< */) 9436 { 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 9442 }; 9443 9444 struct iovec xcb_parts[4]; 9445 xcb_void_cookie_t xcb_ret; 9446 xcb_input_xi_warp_pointer_request_t xcb_out; 9447 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); 9458 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; 9463 9464 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9465 return xcb_ret; 9466 } 9467 9468 9469 /***************************************************************************** 9470 ** 9471 ** xcb_void_cookie_t xcb_input_xi_change_cursor_checked 9472 ** 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 9478 ** 9479 *****************************************************************************/ 9480 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 /**< */) 9486 { 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 9492 }; 9493 9494 struct iovec xcb_parts[4]; 9495 xcb_void_cookie_t xcb_ret; 9496 xcb_input_xi_change_cursor_request_t xcb_out; 9497 9498 xcb_out.window = window; 9499 xcb_out.cursor = cursor; 9500 xcb_out.deviceid = deviceid; 9501 memset(xcb_out.pad0, 0, 2); 9502 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; 9507 9508 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 9509 return xcb_ret; 9510 } 9511 9512 9513 /***************************************************************************** 9514 ** 9515 ** xcb_void_cookie_t xcb_input_xi_change_cursor 9516 ** 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 9522 ** 9523 *****************************************************************************/ 9524 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 /**< */) 9530 { 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 9536 }; 9537 9538 struct iovec xcb_parts[4]; 9539 xcb_void_cookie_t xcb_ret; 9540 xcb_input_xi_change_cursor_request_t xcb_out; 9541 9542 xcb_out.window = window; 9543 xcb_out.cursor = cursor; 9544 xcb_out.deviceid = deviceid; 9545 memset(xcb_out.pad0, 0, 2); 9546 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; 9551 9552 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 9553 return xcb_ret; 9554 } 9555 9556 int 9557 xcb_input_add_master_sizeof (const void *_buffer /**< */) 9558 { 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; 9565 9566 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; 9581 } 9582 xcb_block_len = 0; 9583 9584 return xcb_buffer_len; 9585 } 9586 9587 9588 /***************************************************************************** 9589 ** 9590 ** char * xcb_input_add_master_name 9591 ** 9592 ** @param const xcb_input_add_master_t *R 9593 ** @returns char * 9594 ** 9595 *****************************************************************************/ 9596 9597 char * 9598 xcb_input_add_master_name (const xcb_input_add_master_t *R /**< */) 9599 { 9600 return (char *) (R + 1); 9601 } 9602 9603 9604 /***************************************************************************** 9605 ** 9606 ** int xcb_input_add_master_name_length 9607 ** 9608 ** @param const xcb_input_add_master_t *R 9609 ** @returns int 9610 ** 9611 *****************************************************************************/ 9612 9613 int 9614 xcb_input_add_master_name_length (const xcb_input_add_master_t *R /**< */) 9615 { 9616 return R->name_len; 9617 } 9618 9619 9620 /***************************************************************************** 9621 ** 9622 ** xcb_generic_iterator_t xcb_input_add_master_name_end 9623 ** 9624 ** @param const xcb_input_add_master_t *R 9625 ** @returns xcb_generic_iterator_t 9626 ** 9627 *****************************************************************************/ 9628 9629 xcb_generic_iterator_t 9630 xcb_input_add_master_name_end (const xcb_input_add_master_t *R /**< */) 9631 { 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; 9637 } 9638 9639 9640 /***************************************************************************** 9641 ** 9642 ** void xcb_input_add_master_next 9643 ** 9644 ** @param xcb_input_add_master_iterator_t *i 9645 ** @returns void 9646 ** 9647 *****************************************************************************/ 9648 9649 void 9650 xcb_input_add_master_next (xcb_input_add_master_iterator_t *i /**< */) 9651 { 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; 9658 } 9659 9660 9661 /***************************************************************************** 9662 ** 9663 ** xcb_generic_iterator_t xcb_input_add_master_end 9664 ** 9665 ** @param xcb_input_add_master_iterator_t i 9666 ** @returns xcb_generic_iterator_t 9667 ** 9668 *****************************************************************************/ 9669 9670 xcb_generic_iterator_t 9671 xcb_input_add_master_end (xcb_input_add_master_iterator_t i /**< */) 9672 { 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; 9680 } 9681 9682 9683 /***************************************************************************** 9684 ** 9685 ** void xcb_input_remove_master_next 9686 ** 9687 ** @param xcb_input_remove_master_iterator_t *i 9688 ** @returns void 9689 ** 9690 *****************************************************************************/ 9691 9692 void 9693 xcb_input_remove_master_next (xcb_input_remove_master_iterator_t *i /**< */) 9694 { 9695 --i->rem; 9696 ++i->data; 9697 i->index += sizeof(xcb_input_remove_master_t); 9698 } 9699 9700 9701 /***************************************************************************** 9702 ** 9703 ** xcb_generic_iterator_t xcb_input_remove_master_end 9704 ** 9705 ** @param xcb_input_remove_master_iterator_t i 9706 ** @returns xcb_generic_iterator_t 9707 ** 9708 *****************************************************************************/ 9709 9710 xcb_generic_iterator_t 9711 xcb_input_remove_master_end (xcb_input_remove_master_iterator_t i /**< */) 9712 { 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; 9718 } 9719 9720 9721 /***************************************************************************** 9722 ** 9723 ** void xcb_input_attach_slave_next 9724 ** 9725 ** @param xcb_input_attach_slave_iterator_t *i 9726 ** @returns void 9727 ** 9728 *****************************************************************************/ 9729 9730 void 9731 xcb_input_attach_slave_next (xcb_input_attach_slave_iterator_t *i /**< */) 9732 { 9733 --i->rem; 9734 ++i->data; 9735 i->index += sizeof(xcb_input_attach_slave_t); 9736 } 9737 9738 9739 /***************************************************************************** 9740 ** 9741 ** xcb_generic_iterator_t xcb_input_attach_slave_end 9742 ** 9743 ** @param xcb_input_attach_slave_iterator_t i 9744 ** @returns xcb_generic_iterator_t 9745 ** 9746 *****************************************************************************/ 9747 9748 xcb_generic_iterator_t 9749 xcb_input_attach_slave_end (xcb_input_attach_slave_iterator_t i /**< */) 9750 { 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; 9756 } 9757 9758 9759 /***************************************************************************** 9760 ** 9761 ** void xcb_input_detach_slave_next 9762 ** 9763 ** @param xcb_input_detach_slave_iterator_t *i 9764 ** @returns void 9765 ** 9766 *****************************************************************************/ 9767 9768 void 9769 xcb_input_detach_slave_next (xcb_input_detach_slave_iterator_t *i /**< */) 9770 { 9771 --i->rem; 9772 ++i->data; 9773 i->index += sizeof(xcb_input_detach_slave_t); 9774 } 9775 9776 9777 /***************************************************************************** 9778 ** 9779 ** xcb_generic_iterator_t xcb_input_detach_slave_end 9780 ** 9781 ** @param xcb_input_detach_slave_iterator_t i 9782 ** @returns xcb_generic_iterator_t 9783 ** 9784 *****************************************************************************/ 9785 9786 xcb_generic_iterator_t 9787 xcb_input_detach_slave_end (xcb_input_detach_slave_iterator_t i /**< */) 9788 { 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; 9794 } 9795 9796 int 9797 xcb_input_hierarchy_change_sizeof (const void *_buffer /**< */) 9798 { 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; 9805 9806 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; 9821 } 9822 xcb_block_len = 0; 9823 9824 return xcb_buffer_len; 9825 } 9826 9827 9828 /***************************************************************************** 9829 ** 9830 ** uint8_t * xcb_input_hierarchy_change_uninterpreted_data 9831 ** 9832 ** @param const xcb_input_hierarchy_change_t *R 9833 ** @returns uint8_t * 9834 ** 9835 *****************************************************************************/ 9836 9837 uint8_t * 9838 xcb_input_hierarchy_change_uninterpreted_data (const xcb_input_hierarchy_change_t *R /**< */) 9839 { 9840 return (uint8_t *) (R + 1); 9841 } 9842 9843 9844 /***************************************************************************** 9845 ** 9846 ** int xcb_input_hierarchy_change_uninterpreted_data_length 9847 ** 9848 ** @param const xcb_input_hierarchy_change_t *R 9849 ** @returns int 9850 ** 9851 *****************************************************************************/ 9852 9853 int 9854 xcb_input_hierarchy_change_uninterpreted_data_length (const xcb_input_hierarchy_change_t *R /**< */) 9855 { 9856 return ((R->len * 4) - 4); 9857 } 9858 9859 9860 /***************************************************************************** 9861 ** 9862 ** xcb_generic_iterator_t xcb_input_hierarchy_change_uninterpreted_data_end 9863 ** 9864 ** @param const xcb_input_hierarchy_change_t *R 9865 ** @returns xcb_generic_iterator_t 9866 ** 9867 *****************************************************************************/ 9868 9869 xcb_generic_iterator_t 9870 xcb_input_hierarchy_change_uninterpreted_data_end (const xcb_input_hierarchy_change_t *R /**< */) 9871 { 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; 9877 } 9878 9879 9880 /***************************************************************************** 9881 ** 9882 ** void xcb_input_hierarchy_change_next 9883 ** 9884 ** @param xcb_input_hierarchy_change_iterator_t *i 9885 ** @returns void 9886 ** 9887 *****************************************************************************/ 9888 9889 void 9890 xcb_input_hierarchy_change_next (xcb_input_hierarchy_change_iterator_t *i /**< */) 9891 { 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; 9898 } 9899 9900 9901 /***************************************************************************** 9902 ** 9903 ** xcb_generic_iterator_t xcb_input_hierarchy_change_end 9904 ** 9905 ** @param xcb_input_hierarchy_change_iterator_t i 9906 ** @returns xcb_generic_iterator_t 9907 ** 9908 *****************************************************************************/ 9909 9910 xcb_generic_iterator_t 9911 xcb_input_hierarchy_change_end (xcb_input_hierarchy_change_iterator_t i /**< */) 9912 { 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; 9920 } 9921 9922 int 9923 xcb_input_xi_change_hierarchy_sizeof (const void *_buffer /**< */) 9924 { 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; 9931 9932 unsigned int i; 9933 unsigned int xcb_tmp_len; 9934 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; 9944 } 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; 9952 } 9953 xcb_block_len = 0; 9954 9955 return xcb_buffer_len; 9956 } 9957 9958 9959 /***************************************************************************** 9960 ** 9961 ** xcb_void_cookie_t xcb_input_xi_change_hierarchy_checked 9962 ** 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 9967 ** 9968 *****************************************************************************/ 9969 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 /**< */) 9974 { 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 9980 }; 9981 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; 9988 9989 xcb_out.num_changes = num_changes; 9990 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; 10003 } 10004 xcb_parts[5].iov_base = 0; 10005 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10006 10007 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10008 return xcb_ret; 10009 } 10010 10011 10012 /***************************************************************************** 10013 ** 10014 ** xcb_void_cookie_t xcb_input_xi_change_hierarchy 10015 ** 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 10020 ** 10021 *****************************************************************************/ 10022 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 /**< */) 10027 { 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 10033 }; 10034 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; 10041 10042 xcb_out.num_changes = num_changes; 10043 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; 10056 } 10057 xcb_parts[5].iov_base = 0; 10058 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10059 10060 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10061 return xcb_ret; 10062 } 10063 10064 10065 /***************************************************************************** 10066 ** 10067 ** xcb_void_cookie_t xcb_input_xi_set_client_pointer_checked 10068 ** 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 10073 ** 10074 *****************************************************************************/ 10075 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 /**< */) 10080 { 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 10086 }; 10087 10088 struct iovec xcb_parts[4]; 10089 xcb_void_cookie_t xcb_ret; 10090 xcb_input_xi_set_client_pointer_request_t xcb_out; 10091 10092 xcb_out.window = window; 10093 xcb_out.deviceid = deviceid; 10094 memset(xcb_out.pad0, 0, 2); 10095 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; 10100 10101 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10102 return xcb_ret; 10103 } 10104 10105 10106 /***************************************************************************** 10107 ** 10108 ** xcb_void_cookie_t xcb_input_xi_set_client_pointer 10109 ** 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 10114 ** 10115 *****************************************************************************/ 10116 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 /**< */) 10121 { 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 10127 }; 10128 10129 struct iovec xcb_parts[4]; 10130 xcb_void_cookie_t xcb_ret; 10131 xcb_input_xi_set_client_pointer_request_t xcb_out; 10132 10133 xcb_out.window = window; 10134 xcb_out.deviceid = deviceid; 10135 memset(xcb_out.pad0, 0, 2); 10136 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; 10141 10142 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10143 return xcb_ret; 10144 } 10145 10146 10147 /***************************************************************************** 10148 ** 10149 ** xcb_input_xi_get_client_pointer_cookie_t xcb_input_xi_get_client_pointer 10150 ** 10151 ** @param xcb_connection_t *c 10152 ** @param xcb_window_t window 10153 ** @returns xcb_input_xi_get_client_pointer_cookie_t 10154 ** 10155 *****************************************************************************/ 10156 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 /**< */) 10160 { 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 10166 }; 10167 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; 10171 10172 xcb_out.window = window; 10173 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; 10178 10179 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10180 return xcb_ret; 10181 } 10182 10183 10184 /***************************************************************************** 10185 ** 10186 ** xcb_input_xi_get_client_pointer_cookie_t xcb_input_xi_get_client_pointer_unchecked 10187 ** 10188 ** @param xcb_connection_t *c 10189 ** @param xcb_window_t window 10190 ** @returns xcb_input_xi_get_client_pointer_cookie_t 10191 ** 10192 *****************************************************************************/ 10193 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 /**< */) 10197 { 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 10203 }; 10204 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; 10208 10209 xcb_out.window = window; 10210 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; 10215 10216 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10217 return xcb_ret; 10218 } 10219 10220 10221 /***************************************************************************** 10222 ** 10223 ** xcb_input_xi_get_client_pointer_reply_t * xcb_input_xi_get_client_pointer_reply 10224 ** 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 * 10229 ** 10230 *****************************************************************************/ 10231 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 /**< */) 10236 { 10237 return (xcb_input_xi_get_client_pointer_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10238 } 10239 10240 int 10241 xcb_input_event_mask_sizeof (const void *_buffer /**< */) 10242 { 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; 10249 10250 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; 10265 } 10266 xcb_block_len = 0; 10267 10268 return xcb_buffer_len; 10269 } 10270 10271 10272 /***************************************************************************** 10273 ** 10274 ** uint32_t * xcb_input_event_mask_mask 10275 ** 10276 ** @param const xcb_input_event_mask_t *R 10277 ** @returns uint32_t * 10278 ** 10279 *****************************************************************************/ 10280 10281 uint32_t * 10282 xcb_input_event_mask_mask (const xcb_input_event_mask_t *R /**< */) 10283 { 10284 return (uint32_t *) (R + 1); 10285 } 10286 10287 10288 /***************************************************************************** 10289 ** 10290 ** int xcb_input_event_mask_mask_length 10291 ** 10292 ** @param const xcb_input_event_mask_t *R 10293 ** @returns int 10294 ** 10295 *****************************************************************************/ 10296 10297 int 10298 xcb_input_event_mask_mask_length (const xcb_input_event_mask_t *R /**< */) 10299 { 10300 return R->mask_len; 10301 } 10302 10303 10304 /***************************************************************************** 10305 ** 10306 ** xcb_generic_iterator_t xcb_input_event_mask_mask_end 10307 ** 10308 ** @param const xcb_input_event_mask_t *R 10309 ** @returns xcb_generic_iterator_t 10310 ** 10311 *****************************************************************************/ 10312 10313 xcb_generic_iterator_t 10314 xcb_input_event_mask_mask_end (const xcb_input_event_mask_t *R /**< */) 10315 { 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; 10321 } 10322 10323 10324 /***************************************************************************** 10325 ** 10326 ** void xcb_input_event_mask_next 10327 ** 10328 ** @param xcb_input_event_mask_iterator_t *i 10329 ** @returns void 10330 ** 10331 *****************************************************************************/ 10332 10333 void 10334 xcb_input_event_mask_next (xcb_input_event_mask_iterator_t *i /**< */) 10335 { 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; 10342 } 10343 10344 10345 /***************************************************************************** 10346 ** 10347 ** xcb_generic_iterator_t xcb_input_event_mask_end 10348 ** 10349 ** @param xcb_input_event_mask_iterator_t i 10350 ** @returns xcb_generic_iterator_t 10351 ** 10352 *****************************************************************************/ 10353 10354 xcb_generic_iterator_t 10355 xcb_input_event_mask_end (xcb_input_event_mask_iterator_t i /**< */) 10356 { 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; 10364 } 10365 10366 int 10367 xcb_input_xi_select_events_sizeof (const void *_buffer /**< */) 10368 { 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; 10375 10376 unsigned int i; 10377 unsigned int xcb_tmp_len; 10378 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; 10388 } 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; 10396 } 10397 xcb_block_len = 0; 10398 10399 return xcb_buffer_len; 10400 } 10401 10402 10403 /***************************************************************************** 10404 ** 10405 ** xcb_void_cookie_t xcb_input_xi_select_events_checked 10406 ** 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 10412 ** 10413 *****************************************************************************/ 10414 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 /**< */) 10420 { 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 10426 }; 10427 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; 10434 10435 xcb_out.window = window; 10436 xcb_out.num_mask = num_mask; 10437 memset(xcb_out.pad0, 0, 2); 10438 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; 10451 } 10452 xcb_parts[5].iov_base = 0; 10453 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10454 10455 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10456 return xcb_ret; 10457 } 10458 10459 10460 /***************************************************************************** 10461 ** 10462 ** xcb_void_cookie_t xcb_input_xi_select_events 10463 ** 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 10469 ** 10470 *****************************************************************************/ 10471 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 /**< */) 10477 { 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 10483 }; 10484 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; 10491 10492 xcb_out.window = window; 10493 xcb_out.num_mask = num_mask; 10494 memset(xcb_out.pad0, 0, 2); 10495 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; 10508 } 10509 xcb_parts[5].iov_base = 0; 10510 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 10511 10512 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10513 return xcb_ret; 10514 } 10515 10516 10517 /***************************************************************************** 10518 ** 10519 ** xcb_input_xi_query_version_cookie_t xcb_input_xi_query_version 10520 ** 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 10525 ** 10526 *****************************************************************************/ 10527 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 /**< */) 10532 { 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 10538 }; 10539 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; 10543 10544 xcb_out.major_version = major_version; 10545 xcb_out.minor_version = minor_version; 10546 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; 10551 10552 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 10553 return xcb_ret; 10554 } 10555 10556 10557 /***************************************************************************** 10558 ** 10559 ** xcb_input_xi_query_version_cookie_t xcb_input_xi_query_version_unchecked 10560 ** 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 10565 ** 10566 *****************************************************************************/ 10567 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 /**< */) 10572 { 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 10578 }; 10579 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; 10583 10584 xcb_out.major_version = major_version; 10585 xcb_out.minor_version = minor_version; 10586 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; 10591 10592 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 10593 return xcb_ret; 10594 } 10595 10596 10597 /***************************************************************************** 10598 ** 10599 ** xcb_input_xi_query_version_reply_t * xcb_input_xi_query_version_reply 10600 ** 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 * 10605 ** 10606 *****************************************************************************/ 10607 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 /**< */) 10612 { 10613 return (xcb_input_xi_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 10614 } 10615 10616 int 10617 xcb_input_button_class_sizeof (const void *_buffer /**< */) 10618 { 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; 10625 10626 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; 10641 } 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; 10653 } 10654 xcb_block_len = 0; 10655 10656 return xcb_buffer_len; 10657 } 10658 10659 10660 /***************************************************************************** 10661 ** 10662 ** uint32_t * xcb_input_button_class_state 10663 ** 10664 ** @param const xcb_input_button_class_t *R 10665 ** @returns uint32_t * 10666 ** 10667 *****************************************************************************/ 10668 10669 uint32_t * 10670 xcb_input_button_class_state (const xcb_input_button_class_t *R /**< */) 10671 { 10672 return (uint32_t *) (R + 1); 10673 } 10674 10675 10676 /***************************************************************************** 10677 ** 10678 ** int xcb_input_button_class_state_length 10679 ** 10680 ** @param const xcb_input_button_class_t *R 10681 ** @returns int 10682 ** 10683 *****************************************************************************/ 10684 10685 int 10686 xcb_input_button_class_state_length (const xcb_input_button_class_t *R /**< */) 10687 { 10688 return ((R->num_buttons + 31) / 32); 10689 } 10690 10691 10692 /***************************************************************************** 10693 ** 10694 ** xcb_generic_iterator_t xcb_input_button_class_state_end 10695 ** 10696 ** @param const xcb_input_button_class_t *R 10697 ** @returns xcb_generic_iterator_t 10698 ** 10699 *****************************************************************************/ 10700 10701 xcb_generic_iterator_t 10702 xcb_input_button_class_state_end (const xcb_input_button_class_t *R /**< */) 10703 { 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; 10709 } 10710 10711 10712 /***************************************************************************** 10713 ** 10714 ** xcb_atom_t * xcb_input_button_class_labels 10715 ** 10716 ** @param const xcb_input_button_class_t *R 10717 ** @returns xcb_atom_t * 10718 ** 10719 *****************************************************************************/ 10720 10721 xcb_atom_t * 10722 xcb_input_button_class_labels (const xcb_input_button_class_t *R /**< */) 10723 { 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); 10726 } 10727 10728 10729 /***************************************************************************** 10730 ** 10731 ** int xcb_input_button_class_labels_length 10732 ** 10733 ** @param const xcb_input_button_class_t *R 10734 ** @returns int 10735 ** 10736 *****************************************************************************/ 10737 10738 int 10739 xcb_input_button_class_labels_length (const xcb_input_button_class_t *R /**< */) 10740 { 10741 return R->num_buttons; 10742 } 10743 10744 10745 /***************************************************************************** 10746 ** 10747 ** xcb_generic_iterator_t xcb_input_button_class_labels_end 10748 ** 10749 ** @param const xcb_input_button_class_t *R 10750 ** @returns xcb_generic_iterator_t 10751 ** 10752 *****************************************************************************/ 10753 10754 xcb_generic_iterator_t 10755 xcb_input_button_class_labels_end (const xcb_input_button_class_t *R /**< */) 10756 { 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; 10763 } 10764 10765 10766 /***************************************************************************** 10767 ** 10768 ** void xcb_input_button_class_next 10769 ** 10770 ** @param xcb_input_button_class_iterator_t *i 10771 ** @returns void 10772 ** 10773 *****************************************************************************/ 10774 10775 void 10776 xcb_input_button_class_next (xcb_input_button_class_iterator_t *i /**< */) 10777 { 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; 10784 } 10785 10786 10787 /***************************************************************************** 10788 ** 10789 ** xcb_generic_iterator_t xcb_input_button_class_end 10790 ** 10791 ** @param xcb_input_button_class_iterator_t i 10792 ** @returns xcb_generic_iterator_t 10793 ** 10794 *****************************************************************************/ 10795 10796 xcb_generic_iterator_t 10797 xcb_input_button_class_end (xcb_input_button_class_iterator_t i /**< */) 10798 { 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; 10806 } 10807 10808 int 10809 xcb_input_key_class_sizeof (const void *_buffer /**< */) 10810 { 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; 10817 10818 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; 10833 } 10834 xcb_block_len = 0; 10835 10836 return xcb_buffer_len; 10837 } 10838 10839 10840 /***************************************************************************** 10841 ** 10842 ** uint32_t * xcb_input_key_class_keys 10843 ** 10844 ** @param const xcb_input_key_class_t *R 10845 ** @returns uint32_t * 10846 ** 10847 *****************************************************************************/ 10848 10849 uint32_t * 10850 xcb_input_key_class_keys (const xcb_input_key_class_t *R /**< */) 10851 { 10852 return (uint32_t *) (R + 1); 10853 } 10854 10855 10856 /***************************************************************************** 10857 ** 10858 ** int xcb_input_key_class_keys_length 10859 ** 10860 ** @param const xcb_input_key_class_t *R 10861 ** @returns int 10862 ** 10863 *****************************************************************************/ 10864 10865 int 10866 xcb_input_key_class_keys_length (const xcb_input_key_class_t *R /**< */) 10867 { 10868 return R->num_keys; 10869 } 10870 10871 10872 /***************************************************************************** 10873 ** 10874 ** xcb_generic_iterator_t xcb_input_key_class_keys_end 10875 ** 10876 ** @param const xcb_input_key_class_t *R 10877 ** @returns xcb_generic_iterator_t 10878 ** 10879 *****************************************************************************/ 10880 10881 xcb_generic_iterator_t 10882 xcb_input_key_class_keys_end (const xcb_input_key_class_t *R /**< */) 10883 { 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; 10889 } 10890 10891 10892 /***************************************************************************** 10893 ** 10894 ** void xcb_input_key_class_next 10895 ** 10896 ** @param xcb_input_key_class_iterator_t *i 10897 ** @returns void 10898 ** 10899 *****************************************************************************/ 10900 10901 void 10902 xcb_input_key_class_next (xcb_input_key_class_iterator_t *i /**< */) 10903 { 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; 10910 } 10911 10912 10913 /***************************************************************************** 10914 ** 10915 ** xcb_generic_iterator_t xcb_input_key_class_end 10916 ** 10917 ** @param xcb_input_key_class_iterator_t i 10918 ** @returns xcb_generic_iterator_t 10919 ** 10920 *****************************************************************************/ 10921 10922 xcb_generic_iterator_t 10923 xcb_input_key_class_end (xcb_input_key_class_iterator_t i /**< */) 10924 { 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; 10932 } 10933 10934 10935 /***************************************************************************** 10936 ** 10937 ** void xcb_input_scroll_class_next 10938 ** 10939 ** @param xcb_input_scroll_class_iterator_t *i 10940 ** @returns void 10941 ** 10942 *****************************************************************************/ 10943 10944 void 10945 xcb_input_scroll_class_next (xcb_input_scroll_class_iterator_t *i /**< */) 10946 { 10947 --i->rem; 10948 ++i->data; 10949 i->index += sizeof(xcb_input_scroll_class_t); 10950 } 10951 10952 10953 /***************************************************************************** 10954 ** 10955 ** xcb_generic_iterator_t xcb_input_scroll_class_end 10956 ** 10957 ** @param xcb_input_scroll_class_iterator_t i 10958 ** @returns xcb_generic_iterator_t 10959 ** 10960 *****************************************************************************/ 10961 10962 xcb_generic_iterator_t 10963 xcb_input_scroll_class_end (xcb_input_scroll_class_iterator_t i /**< */) 10964 { 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; 10970 } 10971 10972 10973 /***************************************************************************** 10974 ** 10975 ** void xcb_input_touch_class_next 10976 ** 10977 ** @param xcb_input_touch_class_iterator_t *i 10978 ** @returns void 10979 ** 10980 *****************************************************************************/ 10981 10982 void 10983 xcb_input_touch_class_next (xcb_input_touch_class_iterator_t *i /**< */) 10984 { 10985 --i->rem; 10986 ++i->data; 10987 i->index += sizeof(xcb_input_touch_class_t); 10988 } 10989 10990 10991 /***************************************************************************** 10992 ** 10993 ** xcb_generic_iterator_t xcb_input_touch_class_end 10994 ** 10995 ** @param xcb_input_touch_class_iterator_t i 10996 ** @returns xcb_generic_iterator_t 10997 ** 10998 *****************************************************************************/ 10999 11000 xcb_generic_iterator_t 11001 xcb_input_touch_class_end (xcb_input_touch_class_iterator_t i /**< */) 11002 { 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; 11008 } 11009 11010 11011 /***************************************************************************** 11012 ** 11013 ** void xcb_input_valuator_class_next 11014 ** 11015 ** @param xcb_input_valuator_class_iterator_t *i 11016 ** @returns void 11017 ** 11018 *****************************************************************************/ 11019 11020 void 11021 xcb_input_valuator_class_next (xcb_input_valuator_class_iterator_t *i /**< */) 11022 { 11023 --i->rem; 11024 ++i->data; 11025 i->index += sizeof(xcb_input_valuator_class_t); 11026 } 11027 11028 11029 /***************************************************************************** 11030 ** 11031 ** xcb_generic_iterator_t xcb_input_valuator_class_end 11032 ** 11033 ** @param xcb_input_valuator_class_iterator_t i 11034 ** @returns xcb_generic_iterator_t 11035 ** 11036 *****************************************************************************/ 11037 11038 xcb_generic_iterator_t 11039 xcb_input_valuator_class_end (xcb_input_valuator_class_iterator_t i /**< */) 11040 { 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; 11046 } 11047 11048 int 11049 xcb_input_device_class_sizeof (const void *_buffer /**< */) 11050 { 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; 11057 11058 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; 11073 } 11074 xcb_block_len = 0; 11075 11076 return xcb_buffer_len; 11077 } 11078 11079 11080 /***************************************************************************** 11081 ** 11082 ** uint8_t * xcb_input_device_class_uninterpreted_data 11083 ** 11084 ** @param const xcb_input_device_class_t *R 11085 ** @returns uint8_t * 11086 ** 11087 *****************************************************************************/ 11088 11089 uint8_t * 11090 xcb_input_device_class_uninterpreted_data (const xcb_input_device_class_t *R /**< */) 11091 { 11092 return (uint8_t *) (R + 1); 11093 } 11094 11095 11096 /***************************************************************************** 11097 ** 11098 ** int xcb_input_device_class_uninterpreted_data_length 11099 ** 11100 ** @param const xcb_input_device_class_t *R 11101 ** @returns int 11102 ** 11103 *****************************************************************************/ 11104 11105 int 11106 xcb_input_device_class_uninterpreted_data_length (const xcb_input_device_class_t *R /**< */) 11107 { 11108 return ((R->len * 4) - 8); 11109 } 11110 11111 11112 /***************************************************************************** 11113 ** 11114 ** xcb_generic_iterator_t xcb_input_device_class_uninterpreted_data_end 11115 ** 11116 ** @param const xcb_input_device_class_t *R 11117 ** @returns xcb_generic_iterator_t 11118 ** 11119 *****************************************************************************/ 11120 11121 xcb_generic_iterator_t 11122 xcb_input_device_class_uninterpreted_data_end (const xcb_input_device_class_t *R /**< */) 11123 { 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; 11129 } 11130 11131 11132 /***************************************************************************** 11133 ** 11134 ** void xcb_input_device_class_next 11135 ** 11136 ** @param xcb_input_device_class_iterator_t *i 11137 ** @returns void 11138 ** 11139 *****************************************************************************/ 11140 11141 void 11142 xcb_input_device_class_next (xcb_input_device_class_iterator_t *i /**< */) 11143 { 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; 11150 } 11151 11152 11153 /***************************************************************************** 11154 ** 11155 ** xcb_generic_iterator_t xcb_input_device_class_end 11156 ** 11157 ** @param xcb_input_device_class_iterator_t i 11158 ** @returns xcb_generic_iterator_t 11159 ** 11160 *****************************************************************************/ 11161 11162 xcb_generic_iterator_t 11163 xcb_input_device_class_end (xcb_input_device_class_iterator_t i /**< */) 11164 { 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; 11172 } 11173 11174 int 11175 xcb_input_xi_device_info_sizeof (const void *_buffer /**< */) 11176 { 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; 11183 11184 unsigned int i; 11185 unsigned int xcb_tmp_len; 11186 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; 11201 } 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; 11208 } 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; 11216 } 11217 xcb_block_len = 0; 11218 11219 return xcb_buffer_len; 11220 } 11221 11222 11223 /***************************************************************************** 11224 ** 11225 ** char * xcb_input_xi_device_info_name 11226 ** 11227 ** @param const xcb_input_xi_device_info_t *R 11228 ** @returns char * 11229 ** 11230 *****************************************************************************/ 11231 11232 char * 11233 xcb_input_xi_device_info_name (const xcb_input_xi_device_info_t *R /**< */) 11234 { 11235 return (char *) (R + 1); 11236 } 11237 11238 11239 /***************************************************************************** 11240 ** 11241 ** int xcb_input_xi_device_info_name_length 11242 ** 11243 ** @param const xcb_input_xi_device_info_t *R 11244 ** @returns int 11245 ** 11246 *****************************************************************************/ 11247 11248 int 11249 xcb_input_xi_device_info_name_length (const xcb_input_xi_device_info_t *R /**< */) 11250 { 11251 return (((R->name_len + 3) / 4) * 4); 11252 } 11253 11254 11255 /***************************************************************************** 11256 ** 11257 ** xcb_generic_iterator_t xcb_input_xi_device_info_name_end 11258 ** 11259 ** @param const xcb_input_xi_device_info_t *R 11260 ** @returns xcb_generic_iterator_t 11261 ** 11262 *****************************************************************************/ 11263 11264 xcb_generic_iterator_t 11265 xcb_input_xi_device_info_name_end (const xcb_input_xi_device_info_t *R /**< */) 11266 { 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; 11272 } 11273 11274 11275 /***************************************************************************** 11276 ** 11277 ** int xcb_input_xi_device_info_classes_length 11278 ** 11279 ** @param const xcb_input_xi_device_info_t *R 11280 ** @returns int 11281 ** 11282 *****************************************************************************/ 11283 11284 int 11285 xcb_input_xi_device_info_classes_length (const xcb_input_xi_device_info_t *R /**< */) 11286 { 11287 return R->num_classes; 11288 } 11289 11290 11291 /***************************************************************************** 11292 ** 11293 ** xcb_input_device_class_iterator_t xcb_input_xi_device_info_classes_iterator 11294 ** 11295 ** @param const xcb_input_xi_device_info_t *R 11296 ** @returns xcb_input_device_class_iterator_t 11297 ** 11298 *****************************************************************************/ 11299 11300 xcb_input_device_class_iterator_t 11301 xcb_input_xi_device_info_classes_iterator (const xcb_input_xi_device_info_t *R /**< */) 11302 { 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; 11309 } 11310 11311 11312 /***************************************************************************** 11313 ** 11314 ** void xcb_input_xi_device_info_next 11315 ** 11316 ** @param xcb_input_xi_device_info_iterator_t *i 11317 ** @returns void 11318 ** 11319 *****************************************************************************/ 11320 11321 void 11322 xcb_input_xi_device_info_next (xcb_input_xi_device_info_iterator_t *i /**< */) 11323 { 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; 11330 } 11331 11332 11333 /***************************************************************************** 11334 ** 11335 ** xcb_generic_iterator_t xcb_input_xi_device_info_end 11336 ** 11337 ** @param xcb_input_xi_device_info_iterator_t i 11338 ** @returns xcb_generic_iterator_t 11339 ** 11340 *****************************************************************************/ 11341 11342 xcb_generic_iterator_t 11343 xcb_input_xi_device_info_end (xcb_input_xi_device_info_iterator_t i /**< */) 11344 { 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; 11352 } 11353 11354 int 11355 xcb_input_xi_query_device_sizeof (const void *_buffer /**< */) 11356 { 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; 11363 11364 unsigned int i; 11365 unsigned int xcb_tmp_len; 11366 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; 11376 } 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; 11384 } 11385 xcb_block_len = 0; 11386 11387 return xcb_buffer_len; 11388 } 11389 11390 11391 /***************************************************************************** 11392 ** 11393 ** xcb_input_xi_query_device_cookie_t xcb_input_xi_query_device 11394 ** 11395 ** @param xcb_connection_t *c 11396 ** @param xcb_input_device_id_t deviceid 11397 ** @returns xcb_input_xi_query_device_cookie_t 11398 ** 11399 *****************************************************************************/ 11400 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 /**< */) 11404 { 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 11410 }; 11411 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; 11415 11416 xcb_out.deviceid = deviceid; 11417 memset(xcb_out.pad0, 0, 2); 11418 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; 11423 11424 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11425 return xcb_ret; 11426 } 11427 11428 11429 /***************************************************************************** 11430 ** 11431 ** xcb_input_xi_query_device_cookie_t xcb_input_xi_query_device_unchecked 11432 ** 11433 ** @param xcb_connection_t *c 11434 ** @param xcb_input_device_id_t deviceid 11435 ** @returns xcb_input_xi_query_device_cookie_t 11436 ** 11437 *****************************************************************************/ 11438 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 /**< */) 11442 { 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 11448 }; 11449 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; 11453 11454 xcb_out.deviceid = deviceid; 11455 memset(xcb_out.pad0, 0, 2); 11456 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; 11461 11462 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11463 return xcb_ret; 11464 } 11465 11466 11467 /***************************************************************************** 11468 ** 11469 ** int xcb_input_xi_query_device_infos_length 11470 ** 11471 ** @param const xcb_input_xi_query_device_reply_t *R 11472 ** @returns int 11473 ** 11474 *****************************************************************************/ 11475 11476 int 11477 xcb_input_xi_query_device_infos_length (const xcb_input_xi_query_device_reply_t *R /**< */) 11478 { 11479 return R->num_infos; 11480 } 11481 11482 11483 /***************************************************************************** 11484 ** 11485 ** xcb_input_xi_device_info_iterator_t xcb_input_xi_query_device_infos_iterator 11486 ** 11487 ** @param const xcb_input_xi_query_device_reply_t *R 11488 ** @returns xcb_input_xi_device_info_iterator_t 11489 ** 11490 *****************************************************************************/ 11491 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 /**< */) 11494 { 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; 11500 } 11501 11502 11503 /***************************************************************************** 11504 ** 11505 ** xcb_input_xi_query_device_reply_t * xcb_input_xi_query_device_reply 11506 ** 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 * 11511 ** 11512 *****************************************************************************/ 11513 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 /**< */) 11518 { 11519 return (xcb_input_xi_query_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11520 } 11521 11522 11523 /***************************************************************************** 11524 ** 11525 ** xcb_void_cookie_t xcb_input_xi_set_focus_checked 11526 ** 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 11532 ** 11533 *****************************************************************************/ 11534 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 /**< */) 11540 { 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 11546 }; 11547 11548 struct iovec xcb_parts[4]; 11549 xcb_void_cookie_t xcb_ret; 11550 xcb_input_xi_set_focus_request_t xcb_out; 11551 11552 xcb_out.window = window; 11553 xcb_out.time = time; 11554 xcb_out.deviceid = deviceid; 11555 memset(xcb_out.pad0, 0, 2); 11556 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; 11561 11562 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11563 return xcb_ret; 11564 } 11565 11566 11567 /***************************************************************************** 11568 ** 11569 ** xcb_void_cookie_t xcb_input_xi_set_focus 11570 ** 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 11576 ** 11577 *****************************************************************************/ 11578 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 /**< */) 11584 { 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 11590 }; 11591 11592 struct iovec xcb_parts[4]; 11593 xcb_void_cookie_t xcb_ret; 11594 xcb_input_xi_set_focus_request_t xcb_out; 11595 11596 xcb_out.window = window; 11597 xcb_out.time = time; 11598 xcb_out.deviceid = deviceid; 11599 memset(xcb_out.pad0, 0, 2); 11600 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; 11605 11606 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11607 return xcb_ret; 11608 } 11609 11610 11611 /***************************************************************************** 11612 ** 11613 ** xcb_input_xi_get_focus_cookie_t xcb_input_xi_get_focus 11614 ** 11615 ** @param xcb_connection_t *c 11616 ** @param xcb_input_device_id_t deviceid 11617 ** @returns xcb_input_xi_get_focus_cookie_t 11618 ** 11619 *****************************************************************************/ 11620 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 /**< */) 11624 { 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 11630 }; 11631 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; 11635 11636 xcb_out.deviceid = deviceid; 11637 memset(xcb_out.pad0, 0, 2); 11638 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; 11643 11644 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11645 return xcb_ret; 11646 } 11647 11648 11649 /***************************************************************************** 11650 ** 11651 ** xcb_input_xi_get_focus_cookie_t xcb_input_xi_get_focus_unchecked 11652 ** 11653 ** @param xcb_connection_t *c 11654 ** @param xcb_input_device_id_t deviceid 11655 ** @returns xcb_input_xi_get_focus_cookie_t 11656 ** 11657 *****************************************************************************/ 11658 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 /**< */) 11662 { 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 11668 }; 11669 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; 11673 11674 xcb_out.deviceid = deviceid; 11675 memset(xcb_out.pad0, 0, 2); 11676 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; 11681 11682 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11683 return xcb_ret; 11684 } 11685 11686 11687 /***************************************************************************** 11688 ** 11689 ** xcb_input_xi_get_focus_reply_t * xcb_input_xi_get_focus_reply 11690 ** 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 * 11695 ** 11696 *****************************************************************************/ 11697 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 /**< */) 11702 { 11703 return (xcb_input_xi_get_focus_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11704 } 11705 11706 int 11707 xcb_input_xi_grab_device_sizeof (const void *_buffer /**< */) 11708 { 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; 11715 11716 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; 11731 } 11732 xcb_block_len = 0; 11733 11734 return xcb_buffer_len; 11735 } 11736 11737 11738 /***************************************************************************** 11739 ** 11740 ** xcb_input_xi_grab_device_cookie_t xcb_input_xi_grab_device 11741 ** 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 11753 ** 11754 *****************************************************************************/ 11755 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 /**< */) 11767 { 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 11773 }; 11774 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; 11778 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; 11788 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; 11798 11799 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11800 return xcb_ret; 11801 } 11802 11803 11804 /***************************************************************************** 11805 ** 11806 ** xcb_input_xi_grab_device_cookie_t xcb_input_xi_grab_device_unchecked 11807 ** 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 11819 ** 11820 *****************************************************************************/ 11821 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 /**< */) 11833 { 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 11839 }; 11840 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; 11844 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; 11854 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; 11864 11865 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11866 return xcb_ret; 11867 } 11868 11869 11870 /***************************************************************************** 11871 ** 11872 ** xcb_input_xi_grab_device_reply_t * xcb_input_xi_grab_device_reply 11873 ** 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 * 11878 ** 11879 *****************************************************************************/ 11880 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 /**< */) 11885 { 11886 return (xcb_input_xi_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 11887 } 11888 11889 11890 /***************************************************************************** 11891 ** 11892 ** xcb_void_cookie_t xcb_input_xi_ungrab_device_checked 11893 ** 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 11898 ** 11899 *****************************************************************************/ 11900 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 /**< */) 11905 { 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 11911 }; 11912 11913 struct iovec xcb_parts[4]; 11914 xcb_void_cookie_t xcb_ret; 11915 xcb_input_xi_ungrab_device_request_t xcb_out; 11916 11917 xcb_out.time = time; 11918 xcb_out.deviceid = deviceid; 11919 memset(xcb_out.pad0, 0, 2); 11920 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; 11925 11926 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 11927 return xcb_ret; 11928 } 11929 11930 11931 /***************************************************************************** 11932 ** 11933 ** xcb_void_cookie_t xcb_input_xi_ungrab_device 11934 ** 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 11939 ** 11940 *****************************************************************************/ 11941 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 /**< */) 11946 { 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 11952 }; 11953 11954 struct iovec xcb_parts[4]; 11955 xcb_void_cookie_t xcb_ret; 11956 xcb_input_xi_ungrab_device_request_t xcb_out; 11957 11958 xcb_out.time = time; 11959 xcb_out.deviceid = deviceid; 11960 memset(xcb_out.pad0, 0, 2); 11961 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; 11966 11967 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 11968 return xcb_ret; 11969 } 11970 11971 11972 /***************************************************************************** 11973 ** 11974 ** xcb_void_cookie_t xcb_input_xi_allow_events_checked 11975 ** 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 11983 ** 11984 *****************************************************************************/ 11985 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 /**< */) 11993 { 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 11999 }; 12000 12001 struct iovec xcb_parts[4]; 12002 xcb_void_cookie_t xcb_ret; 12003 xcb_input_xi_allow_events_request_t xcb_out; 12004 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; 12011 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; 12016 12017 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12018 return xcb_ret; 12019 } 12020 12021 12022 /***************************************************************************** 12023 ** 12024 ** xcb_void_cookie_t xcb_input_xi_allow_events 12025 ** 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 12033 ** 12034 *****************************************************************************/ 12035 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 /**< */) 12043 { 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 12049 }; 12050 12051 struct iovec xcb_parts[4]; 12052 xcb_void_cookie_t xcb_ret; 12053 xcb_input_xi_allow_events_request_t xcb_out; 12054 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; 12061 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; 12066 12067 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12068 return xcb_ret; 12069 } 12070 12071 12072 /***************************************************************************** 12073 ** 12074 ** void xcb_input_grab_modifier_info_next 12075 ** 12076 ** @param xcb_input_grab_modifier_info_iterator_t *i 12077 ** @returns void 12078 ** 12079 *****************************************************************************/ 12080 12081 void 12082 xcb_input_grab_modifier_info_next (xcb_input_grab_modifier_info_iterator_t *i /**< */) 12083 { 12084 --i->rem; 12085 ++i->data; 12086 i->index += sizeof(xcb_input_grab_modifier_info_t); 12087 } 12088 12089 12090 /***************************************************************************** 12091 ** 12092 ** xcb_generic_iterator_t xcb_input_grab_modifier_info_end 12093 ** 12094 ** @param xcb_input_grab_modifier_info_iterator_t i 12095 ** @returns xcb_generic_iterator_t 12096 ** 12097 *****************************************************************************/ 12098 12099 xcb_generic_iterator_t 12100 xcb_input_grab_modifier_info_end (xcb_input_grab_modifier_info_iterator_t i /**< */) 12101 { 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; 12107 } 12108 12109 int 12110 xcb_input_xi_passive_grab_device_sizeof (const void *_buffer /**< */) 12111 { 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; 12118 12119 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; 12134 } 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; 12146 } 12147 xcb_block_len = 0; 12148 12149 return xcb_buffer_len; 12150 } 12151 12152 12153 /***************************************************************************** 12154 ** 12155 ** xcb_input_xi_passive_grab_device_cookie_t xcb_input_xi_passive_grab_device 12156 ** 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 12172 ** 12173 *****************************************************************************/ 12174 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 /**< */) 12190 { 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 12196 }; 12197 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; 12201 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); 12214 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; 12229 12230 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12231 return xcb_ret; 12232 } 12233 12234 12235 /***************************************************************************** 12236 ** 12237 ** xcb_input_xi_passive_grab_device_cookie_t xcb_input_xi_passive_grab_device_unchecked 12238 ** 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 12254 ** 12255 *****************************************************************************/ 12256 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 /**< */) 12272 { 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 12278 }; 12279 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; 12283 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); 12296 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; 12311 12312 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12313 return xcb_ret; 12314 } 12315 12316 12317 /***************************************************************************** 12318 ** 12319 ** xcb_input_grab_modifier_info_t * xcb_input_xi_passive_grab_device_modifiers 12320 ** 12321 ** @param const xcb_input_xi_passive_grab_device_reply_t *R 12322 ** @returns xcb_input_grab_modifier_info_t * 12323 ** 12324 *****************************************************************************/ 12325 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 /**< */) 12328 { 12329 return (xcb_input_grab_modifier_info_t *) (R + 1); 12330 } 12331 12332 12333 /***************************************************************************** 12334 ** 12335 ** int xcb_input_xi_passive_grab_device_modifiers_length 12336 ** 12337 ** @param const xcb_input_xi_passive_grab_device_reply_t *R 12338 ** @returns int 12339 ** 12340 *****************************************************************************/ 12341 12342 int 12343 xcb_input_xi_passive_grab_device_modifiers_length (const xcb_input_xi_passive_grab_device_reply_t *R /**< */) 12344 { 12345 return R->num_modifiers; 12346 } 12347 12348 12349 /***************************************************************************** 12350 ** 12351 ** xcb_input_grab_modifier_info_iterator_t xcb_input_xi_passive_grab_device_modifiers_iterator 12352 ** 12353 ** @param const xcb_input_xi_passive_grab_device_reply_t *R 12354 ** @returns xcb_input_grab_modifier_info_iterator_t 12355 ** 12356 *****************************************************************************/ 12357 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 /**< */) 12360 { 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; 12366 } 12367 12368 12369 /***************************************************************************** 12370 ** 12371 ** xcb_input_xi_passive_grab_device_reply_t * xcb_input_xi_passive_grab_device_reply 12372 ** 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 * 12377 ** 12378 *****************************************************************************/ 12379 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 /**< */) 12384 { 12385 return (xcb_input_xi_passive_grab_device_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12386 } 12387 12388 int 12389 xcb_input_xi_passive_ungrab_device_sizeof (const void *_buffer /**< */) 12390 { 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; 12397 12398 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; 12413 } 12414 xcb_block_len = 0; 12415 12416 return xcb_buffer_len; 12417 } 12418 12419 12420 /***************************************************************************** 12421 ** 12422 ** xcb_void_cookie_t xcb_input_xi_passive_ungrab_device_checked 12423 ** 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 12432 ** 12433 *****************************************************************************/ 12434 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 /**< */) 12443 { 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 12449 }; 12450 12451 struct iovec xcb_parts[6]; 12452 xcb_void_cookie_t xcb_ret; 12453 xcb_input_xi_passive_ungrab_device_request_t xcb_out; 12454 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); 12461 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; 12471 12472 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12473 return xcb_ret; 12474 } 12475 12476 12477 /***************************************************************************** 12478 ** 12479 ** xcb_void_cookie_t xcb_input_xi_passive_ungrab_device 12480 ** 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 12489 ** 12490 *****************************************************************************/ 12491 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 /**< */) 12500 { 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 12506 }; 12507 12508 struct iovec xcb_parts[6]; 12509 xcb_void_cookie_t xcb_ret; 12510 xcb_input_xi_passive_ungrab_device_request_t xcb_out; 12511 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); 12518 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; 12528 12529 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12530 return xcb_ret; 12531 } 12532 12533 int 12534 xcb_input_xi_list_properties_sizeof (const void *_buffer /**< */) 12535 { 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; 12542 12543 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; 12558 } 12559 xcb_block_len = 0; 12560 12561 return xcb_buffer_len; 12562 } 12563 12564 12565 /***************************************************************************** 12566 ** 12567 ** xcb_input_xi_list_properties_cookie_t xcb_input_xi_list_properties 12568 ** 12569 ** @param xcb_connection_t *c 12570 ** @param xcb_input_device_id_t deviceid 12571 ** @returns xcb_input_xi_list_properties_cookie_t 12572 ** 12573 *****************************************************************************/ 12574 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 /**< */) 12578 { 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 12584 }; 12585 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; 12589 12590 xcb_out.deviceid = deviceid; 12591 memset(xcb_out.pad0, 0, 2); 12592 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; 12597 12598 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 12599 return xcb_ret; 12600 } 12601 12602 12603 /***************************************************************************** 12604 ** 12605 ** xcb_input_xi_list_properties_cookie_t xcb_input_xi_list_properties_unchecked 12606 ** 12607 ** @param xcb_connection_t *c 12608 ** @param xcb_input_device_id_t deviceid 12609 ** @returns xcb_input_xi_list_properties_cookie_t 12610 ** 12611 *****************************************************************************/ 12612 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 /**< */) 12616 { 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 12622 }; 12623 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; 12627 12628 xcb_out.deviceid = deviceid; 12629 memset(xcb_out.pad0, 0, 2); 12630 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; 12635 12636 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 12637 return xcb_ret; 12638 } 12639 12640 12641 /***************************************************************************** 12642 ** 12643 ** xcb_atom_t * xcb_input_xi_list_properties_properties 12644 ** 12645 ** @param const xcb_input_xi_list_properties_reply_t *R 12646 ** @returns xcb_atom_t * 12647 ** 12648 *****************************************************************************/ 12649 12650 xcb_atom_t * 12651 xcb_input_xi_list_properties_properties (const xcb_input_xi_list_properties_reply_t *R /**< */) 12652 { 12653 return (xcb_atom_t *) (R + 1); 12654 } 12655 12656 12657 /***************************************************************************** 12658 ** 12659 ** int xcb_input_xi_list_properties_properties_length 12660 ** 12661 ** @param const xcb_input_xi_list_properties_reply_t *R 12662 ** @returns int 12663 ** 12664 *****************************************************************************/ 12665 12666 int 12667 xcb_input_xi_list_properties_properties_length (const xcb_input_xi_list_properties_reply_t *R /**< */) 12668 { 12669 return R->num_properties; 12670 } 12671 12672 12673 /***************************************************************************** 12674 ** 12675 ** xcb_generic_iterator_t xcb_input_xi_list_properties_properties_end 12676 ** 12677 ** @param const xcb_input_xi_list_properties_reply_t *R 12678 ** @returns xcb_generic_iterator_t 12679 ** 12680 *****************************************************************************/ 12681 12682 xcb_generic_iterator_t 12683 xcb_input_xi_list_properties_properties_end (const xcb_input_xi_list_properties_reply_t *R /**< */) 12684 { 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; 12690 } 12691 12692 12693 /***************************************************************************** 12694 ** 12695 ** xcb_input_xi_list_properties_reply_t * xcb_input_xi_list_properties_reply 12696 ** 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 * 12701 ** 12702 *****************************************************************************/ 12703 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 /**< */) 12708 { 12709 return (xcb_input_xi_list_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 12710 } 12711 12712 12713 /***************************************************************************** 12714 ** 12715 ** uint8_t * xcb_input_xi_change_property_items_data_8 12716 ** 12717 ** @param const xcb_input_xi_change_property_items_t *S 12718 ** @returns uint8_t * 12719 ** 12720 *****************************************************************************/ 12721 12722 uint8_t * 12723 xcb_input_xi_change_property_items_data_8 (const xcb_input_xi_change_property_items_t *S /**< */) 12724 { 12725 return /* items */ S->data8; 12726 } 12727 12728 12729 /***************************************************************************** 12730 ** 12731 ** int xcb_input_xi_change_property_items_data_8_length 12732 ** 12733 ** @param const xcb_input_xi_change_property_items_t *R 12734 ** @returns int 12735 ** 12736 *****************************************************************************/ 12737 12738 int 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 /**< */) 12741 { 12742 return R->num_items; 12743 } 12744 12745 12746 /***************************************************************************** 12747 ** 12748 ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_8_end 12749 ** 12750 ** @param const xcb_input_xi_change_property_items_t *R 12751 ** @returns xcb_generic_iterator_t 12752 ** 12753 *****************************************************************************/ 12754 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 /**< */) 12758 { 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; 12764 } 12765 12766 12767 /***************************************************************************** 12768 ** 12769 ** uint16_t * xcb_input_xi_change_property_items_data_16 12770 ** 12771 ** @param const xcb_input_xi_change_property_items_t *S 12772 ** @returns uint16_t * 12773 ** 12774 *****************************************************************************/ 12775 12776 uint16_t * 12777 xcb_input_xi_change_property_items_data_16 (const xcb_input_xi_change_property_items_t *S /**< */) 12778 { 12779 return /* items */ S->data16; 12780 } 12781 12782 12783 /***************************************************************************** 12784 ** 12785 ** int xcb_input_xi_change_property_items_data_16_length 12786 ** 12787 ** @param const xcb_input_xi_change_property_items_t *R 12788 ** @returns int 12789 ** 12790 *****************************************************************************/ 12791 12792 int 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 /**< */) 12795 { 12796 return R->num_items; 12797 } 12798 12799 12800 /***************************************************************************** 12801 ** 12802 ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_16_end 12803 ** 12804 ** @param const xcb_input_xi_change_property_items_t *R 12805 ** @returns xcb_generic_iterator_t 12806 ** 12807 *****************************************************************************/ 12808 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 /**< */) 12812 { 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; 12818 } 12819 12820 12821 /***************************************************************************** 12822 ** 12823 ** uint32_t * xcb_input_xi_change_property_items_data_32 12824 ** 12825 ** @param const xcb_input_xi_change_property_items_t *S 12826 ** @returns uint32_t * 12827 ** 12828 *****************************************************************************/ 12829 12830 uint32_t * 12831 xcb_input_xi_change_property_items_data_32 (const xcb_input_xi_change_property_items_t *S /**< */) 12832 { 12833 return /* items */ S->data32; 12834 } 12835 12836 12837 /***************************************************************************** 12838 ** 12839 ** int xcb_input_xi_change_property_items_data_32_length 12840 ** 12841 ** @param const xcb_input_xi_change_property_items_t *R 12842 ** @returns int 12843 ** 12844 *****************************************************************************/ 12845 12846 int 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 /**< */) 12849 { 12850 return R->num_items; 12851 } 12852 12853 12854 /***************************************************************************** 12855 ** 12856 ** xcb_generic_iterator_t xcb_input_xi_change_property_items_data_32_end 12857 ** 12858 ** @param const xcb_input_xi_change_property_items_t *R 12859 ** @returns xcb_generic_iterator_t 12860 ** 12861 *****************************************************************************/ 12862 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 /**< */) 12866 { 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; 12872 } 12873 12874 int 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 /**< */) 12879 { 12880 char *xcb_out = *_buffer; 12881 unsigned int xcb_buffer_len = 0; 12882 unsigned int xcb_align_to = 0; 12883 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; 12891 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; 12901 } 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); 12909 } 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; 12919 } 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); 12927 } 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; 12937 } 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); 12945 } 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; 12954 } 12955 xcb_block_len = 0; 12956 12957 if (NULL == xcb_out) { 12958 /* allocate memory */ 12959 xcb_out = malloc(xcb_buffer_len); 12960 *_buffer = xcb_out; 12961 } 12962 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; 12969 } 12970 12971 return xcb_buffer_len; 12972 } 12973 12974 int 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 /**< */) 12979 { 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; 12985 12986 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; 12994 } 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); 13001 } 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; 13009 } 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); 13016 } 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; 13024 } 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); 13031 } 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; 13038 } 13039 xcb_block_len = 0; 13040 13041 return xcb_buffer_len; 13042 } 13043 13044 int 13045 xcb_input_xi_change_property_items_sizeof (const void *_buffer /**< */, 13046 uint32_t num_items /**< */, 13047 uint8_t format /**< */) 13048 { 13049 xcb_input_xi_change_property_items_t _aux; 13050 return xcb_input_xi_change_property_items_unpack(_buffer, num_items, format, &_aux); 13051 } 13052 13053 13054 /***************************************************************************** 13055 ** 13056 ** xcb_void_cookie_t xcb_input_xi_change_property_checked 13057 ** 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 13067 ** 13068 *****************************************************************************/ 13069 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 /**< */) 13079 { 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 13085 }; 13086 13087 struct iovec xcb_parts[5]; 13088 xcb_void_cookie_t xcb_ret; 13089 xcb_input_xi_change_property_request_t xcb_out; 13090 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; 13097 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); 13106 13107 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13108 return xcb_ret; 13109 } 13110 13111 13112 /***************************************************************************** 13113 ** 13114 ** xcb_void_cookie_t xcb_input_xi_change_property 13115 ** 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 13125 ** 13126 *****************************************************************************/ 13127 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 /**< */) 13137 { 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 13143 }; 13144 13145 struct iovec xcb_parts[5]; 13146 xcb_void_cookie_t xcb_ret; 13147 xcb_input_xi_change_property_request_t xcb_out; 13148 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; 13155 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); 13164 13165 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13166 return xcb_ret; 13167 } 13168 13169 13170 /***************************************************************************** 13171 ** 13172 ** xcb_void_cookie_t xcb_input_xi_change_property_aux_checked 13173 ** 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 13183 ** 13184 *****************************************************************************/ 13185 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 /**< */) 13195 { 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 13201 }; 13202 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; 13207 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; 13214 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; 13223 13224 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13225 free(xcb_aux0); 13226 return xcb_ret; 13227 } 13228 13229 13230 /***************************************************************************** 13231 ** 13232 ** xcb_void_cookie_t xcb_input_xi_change_property_aux 13233 ** 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 13243 ** 13244 *****************************************************************************/ 13245 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 /**< */) 13255 { 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 13261 }; 13262 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; 13267 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; 13274 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; 13283 13284 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13285 free(xcb_aux0); 13286 return xcb_ret; 13287 } 13288 13289 13290 /***************************************************************************** 13291 ** 13292 ** xcb_void_cookie_t xcb_input_xi_delete_property_checked 13293 ** 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 13298 ** 13299 *****************************************************************************/ 13300 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 /**< */) 13305 { 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 13311 }; 13312 13313 struct iovec xcb_parts[4]; 13314 xcb_void_cookie_t xcb_ret; 13315 xcb_input_xi_delete_property_request_t xcb_out; 13316 13317 xcb_out.deviceid = deviceid; 13318 memset(xcb_out.pad0, 0, 2); 13319 xcb_out.property = property; 13320 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; 13325 13326 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13327 return xcb_ret; 13328 } 13329 13330 13331 /***************************************************************************** 13332 ** 13333 ** xcb_void_cookie_t xcb_input_xi_delete_property 13334 ** 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 13339 ** 13340 *****************************************************************************/ 13341 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 /**< */) 13346 { 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 13352 }; 13353 13354 struct iovec xcb_parts[4]; 13355 xcb_void_cookie_t xcb_ret; 13356 xcb_input_xi_delete_property_request_t xcb_out; 13357 13358 xcb_out.deviceid = deviceid; 13359 memset(xcb_out.pad0, 0, 2); 13360 xcb_out.property = property; 13361 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; 13366 13367 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13368 return xcb_ret; 13369 } 13370 13371 13372 /***************************************************************************** 13373 ** 13374 ** uint8_t * xcb_input_xi_get_property_items_data_8 13375 ** 13376 ** @param const xcb_input_xi_get_property_items_t *S 13377 ** @returns uint8_t * 13378 ** 13379 *****************************************************************************/ 13380 13381 uint8_t * 13382 xcb_input_xi_get_property_items_data_8 (const xcb_input_xi_get_property_items_t *S /**< */) 13383 { 13384 return /* items */ S->data8; 13385 } 13386 13387 13388 /***************************************************************************** 13389 ** 13390 ** int xcb_input_xi_get_property_items_data_8_length 13391 ** 13392 ** @param const xcb_input_xi_get_property_items_t *R 13393 ** @returns int 13394 ** 13395 *****************************************************************************/ 13396 13397 int 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 /**< */) 13400 { 13401 return R->num_items; 13402 } 13403 13404 13405 /***************************************************************************** 13406 ** 13407 ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_8_end 13408 ** 13409 ** @param const xcb_input_xi_get_property_items_t *R 13410 ** @returns xcb_generic_iterator_t 13411 ** 13412 *****************************************************************************/ 13413 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 /**< */) 13417 { 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; 13423 } 13424 13425 13426 /***************************************************************************** 13427 ** 13428 ** uint16_t * xcb_input_xi_get_property_items_data_16 13429 ** 13430 ** @param const xcb_input_xi_get_property_items_t *S 13431 ** @returns uint16_t * 13432 ** 13433 *****************************************************************************/ 13434 13435 uint16_t * 13436 xcb_input_xi_get_property_items_data_16 (const xcb_input_xi_get_property_items_t *S /**< */) 13437 { 13438 return /* items */ S->data16; 13439 } 13440 13441 13442 /***************************************************************************** 13443 ** 13444 ** int xcb_input_xi_get_property_items_data_16_length 13445 ** 13446 ** @param const xcb_input_xi_get_property_items_t *R 13447 ** @returns int 13448 ** 13449 *****************************************************************************/ 13450 13451 int 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 /**< */) 13454 { 13455 return R->num_items; 13456 } 13457 13458 13459 /***************************************************************************** 13460 ** 13461 ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_16_end 13462 ** 13463 ** @param const xcb_input_xi_get_property_items_t *R 13464 ** @returns xcb_generic_iterator_t 13465 ** 13466 *****************************************************************************/ 13467 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 /**< */) 13471 { 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; 13477 } 13478 13479 13480 /***************************************************************************** 13481 ** 13482 ** uint32_t * xcb_input_xi_get_property_items_data_32 13483 ** 13484 ** @param const xcb_input_xi_get_property_items_t *S 13485 ** @returns uint32_t * 13486 ** 13487 *****************************************************************************/ 13488 13489 uint32_t * 13490 xcb_input_xi_get_property_items_data_32 (const xcb_input_xi_get_property_items_t *S /**< */) 13491 { 13492 return /* items */ S->data32; 13493 } 13494 13495 13496 /***************************************************************************** 13497 ** 13498 ** int xcb_input_xi_get_property_items_data_32_length 13499 ** 13500 ** @param const xcb_input_xi_get_property_items_t *R 13501 ** @returns int 13502 ** 13503 *****************************************************************************/ 13504 13505 int 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 /**< */) 13508 { 13509 return R->num_items; 13510 } 13511 13512 13513 /***************************************************************************** 13514 ** 13515 ** xcb_generic_iterator_t xcb_input_xi_get_property_items_data_32_end 13516 ** 13517 ** @param const xcb_input_xi_get_property_items_t *R 13518 ** @returns xcb_generic_iterator_t 13519 ** 13520 *****************************************************************************/ 13521 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 /**< */) 13525 { 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; 13531 } 13532 13533 int 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 /**< */) 13538 { 13539 char *xcb_out = *_buffer; 13540 unsigned int xcb_buffer_len = 0; 13541 unsigned int xcb_align_to = 0; 13542 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; 13550 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; 13560 } 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); 13568 } 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; 13578 } 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); 13586 } 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; 13596 } 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); 13604 } 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; 13613 } 13614 xcb_block_len = 0; 13615 13616 if (NULL == xcb_out) { 13617 /* allocate memory */ 13618 xcb_out = malloc(xcb_buffer_len); 13619 *_buffer = xcb_out; 13620 } 13621 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; 13628 } 13629 13630 return xcb_buffer_len; 13631 } 13632 13633 int 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 /**< */) 13638 { 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; 13644 13645 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; 13653 } 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); 13660 } 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; 13668 } 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); 13675 } 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; 13683 } 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); 13690 } 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; 13697 } 13698 xcb_block_len = 0; 13699 13700 return xcb_buffer_len; 13701 } 13702 13703 int 13704 xcb_input_xi_get_property_items_sizeof (const void *_buffer /**< */, 13705 uint32_t num_items /**< */, 13706 uint8_t format /**< */) 13707 { 13708 xcb_input_xi_get_property_items_t _aux; 13709 return xcb_input_xi_get_property_items_unpack(_buffer, num_items, format, &_aux); 13710 } 13711 13712 13713 /***************************************************************************** 13714 ** 13715 ** xcb_input_xi_get_property_cookie_t xcb_input_xi_get_property 13716 ** 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 13725 ** 13726 *****************************************************************************/ 13727 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 /**< */) 13736 { 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 13742 }; 13743 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; 13747 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; 13755 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; 13760 13761 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13762 return xcb_ret; 13763 } 13764 13765 13766 /***************************************************************************** 13767 ** 13768 ** xcb_input_xi_get_property_cookie_t xcb_input_xi_get_property_unchecked 13769 ** 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 13778 ** 13779 *****************************************************************************/ 13780 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 /**< */) 13789 { 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 13795 }; 13796 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; 13800 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; 13808 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; 13813 13814 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13815 return xcb_ret; 13816 } 13817 13818 13819 /***************************************************************************** 13820 ** 13821 ** xcb_input_xi_get_property_items_t * xcb_input_xi_get_property_items 13822 ** 13823 ** @param const xcb_input_xi_get_property_reply_t *R 13824 ** @returns xcb_input_xi_get_property_items_t * 13825 ** 13826 *****************************************************************************/ 13827 13828 void * 13829 xcb_input_xi_get_property_items (const xcb_input_xi_get_property_reply_t *R /**< */) 13830 { 13831 return (void *) (R + 1); 13832 } 13833 13834 13835 /***************************************************************************** 13836 ** 13837 ** xcb_input_xi_get_property_reply_t * xcb_input_xi_get_property_reply 13838 ** 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 * 13843 ** 13844 *****************************************************************************/ 13845 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 /**< */) 13850 { 13851 return (xcb_input_xi_get_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 13852 } 13853 13854 int 13855 xcb_input_xi_get_selected_events_sizeof (const void *_buffer /**< */) 13856 { 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; 13863 13864 unsigned int i; 13865 unsigned int xcb_tmp_len; 13866 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; 13876 } 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; 13884 } 13885 xcb_block_len = 0; 13886 13887 return xcb_buffer_len; 13888 } 13889 13890 13891 /***************************************************************************** 13892 ** 13893 ** xcb_input_xi_get_selected_events_cookie_t xcb_input_xi_get_selected_events 13894 ** 13895 ** @param xcb_connection_t *c 13896 ** @param xcb_window_t window 13897 ** @returns xcb_input_xi_get_selected_events_cookie_t 13898 ** 13899 *****************************************************************************/ 13900 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 /**< */) 13904 { 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 13910 }; 13911 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; 13915 13916 xcb_out.window = window; 13917 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; 13922 13923 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 13924 return xcb_ret; 13925 } 13926 13927 13928 /***************************************************************************** 13929 ** 13930 ** xcb_input_xi_get_selected_events_cookie_t xcb_input_xi_get_selected_events_unchecked 13931 ** 13932 ** @param xcb_connection_t *c 13933 ** @param xcb_window_t window 13934 ** @returns xcb_input_xi_get_selected_events_cookie_t 13935 ** 13936 *****************************************************************************/ 13937 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 /**< */) 13941 { 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 13947 }; 13948 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; 13952 13953 xcb_out.window = window; 13954 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; 13959 13960 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 13961 return xcb_ret; 13962 } 13963 13964 13965 /***************************************************************************** 13966 ** 13967 ** int xcb_input_xi_get_selected_events_masks_length 13968 ** 13969 ** @param const xcb_input_xi_get_selected_events_reply_t *R 13970 ** @returns int 13971 ** 13972 *****************************************************************************/ 13973 13974 int 13975 xcb_input_xi_get_selected_events_masks_length (const xcb_input_xi_get_selected_events_reply_t *R /**< */) 13976 { 13977 return R->num_masks; 13978 } 13979 13980 13981 /***************************************************************************** 13982 ** 13983 ** xcb_input_event_mask_iterator_t xcb_input_xi_get_selected_events_masks_iterator 13984 ** 13985 ** @param const xcb_input_xi_get_selected_events_reply_t *R 13986 ** @returns xcb_input_event_mask_iterator_t 13987 ** 13988 *****************************************************************************/ 13989 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 /**< */) 13992 { 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; 13998 } 13999 14000 14001 /***************************************************************************** 14002 ** 14003 ** xcb_input_xi_get_selected_events_reply_t * xcb_input_xi_get_selected_events_reply 14004 ** 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 * 14009 ** 14010 *****************************************************************************/ 14011 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 /**< */) 14016 { 14017 return (xcb_input_xi_get_selected_events_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 14018 } 14019 14020 14021 /***************************************************************************** 14022 ** 14023 ** void xcb_input_barrier_release_pointer_info_next 14024 ** 14025 ** @param xcb_input_barrier_release_pointer_info_iterator_t *i 14026 ** @returns void 14027 ** 14028 *****************************************************************************/ 14029 14030 void 14031 xcb_input_barrier_release_pointer_info_next (xcb_input_barrier_release_pointer_info_iterator_t *i /**< */) 14032 { 14033 --i->rem; 14034 ++i->data; 14035 i->index += sizeof(xcb_input_barrier_release_pointer_info_t); 14036 } 14037 14038 14039 /***************************************************************************** 14040 ** 14041 ** xcb_generic_iterator_t xcb_input_barrier_release_pointer_info_end 14042 ** 14043 ** @param xcb_input_barrier_release_pointer_info_iterator_t i 14044 ** @returns xcb_generic_iterator_t 14045 ** 14046 *****************************************************************************/ 14047 14048 xcb_generic_iterator_t 14049 xcb_input_barrier_release_pointer_info_end (xcb_input_barrier_release_pointer_info_iterator_t i /**< */) 14050 { 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; 14056 } 14057 14058 int 14059 xcb_input_xi_barrier_release_pointer_sizeof (const void *_buffer /**< */) 14060 { 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; 14067 14068 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; 14083 } 14084 xcb_block_len = 0; 14085 14086 return xcb_buffer_len; 14087 } 14088 14089 14090 /***************************************************************************** 14091 ** 14092 ** xcb_void_cookie_t xcb_input_xi_barrier_release_pointer_checked 14093 ** 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 14098 ** 14099 *****************************************************************************/ 14100 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 /**< */) 14105 { 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 14111 }; 14112 14113 struct iovec xcb_parts[6]; 14114 xcb_void_cookie_t xcb_ret; 14115 xcb_input_xi_barrier_release_pointer_request_t xcb_out; 14116 14117 xcb_out.num_barriers = num_barriers; 14118 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; 14128 14129 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 14130 return xcb_ret; 14131 } 14132 14133 14134 /***************************************************************************** 14135 ** 14136 ** xcb_void_cookie_t xcb_input_xi_barrier_release_pointer 14137 ** 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 14142 ** 14143 *****************************************************************************/ 14144 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 /**< */) 14149 { 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 14155 }; 14156 14157 struct iovec xcb_parts[6]; 14158 xcb_void_cookie_t xcb_ret; 14159 xcb_input_xi_barrier_release_pointer_request_t xcb_out; 14160 14161 xcb_out.num_barriers = num_barriers; 14162 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; 14172 14173 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 14174 return xcb_ret; 14175 } 14176 14177 int 14178 xcb_input_device_changed_sizeof (const void *_buffer /**< */) 14179 { 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; 14186 14187 unsigned int i; 14188 unsigned int xcb_tmp_len; 14189 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; 14199 } 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; 14207 } 14208 xcb_block_len = 0; 14209 14210 return xcb_buffer_len; 14211 } 14212 14213 int 14214 xcb_input_key_press_sizeof (const void *_buffer /**< */) 14215 { 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; 14222 14223 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; 14238 } 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; 14250 } 14251 xcb_block_len = 0; 14252 14253 return xcb_buffer_len; 14254 } 14255 14256 int 14257 xcb_input_key_release_sizeof (const void *_buffer /**< */) 14258 { 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; 14265 14266 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; 14281 } 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; 14293 } 14294 xcb_block_len = 0; 14295 14296 return xcb_buffer_len; 14297 } 14298 14299 int 14300 xcb_input_button_press_sizeof (const void *_buffer /**< */) 14301 { 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; 14308 14309 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; 14324 } 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; 14336 } 14337 xcb_block_len = 0; 14338 14339 return xcb_buffer_len; 14340 } 14341 14342 int 14343 xcb_input_button_release_sizeof (const void *_buffer /**< */) 14344 { 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; 14351 14352 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; 14367 } 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; 14379 } 14380 xcb_block_len = 0; 14381 14382 return xcb_buffer_len; 14383 } 14384 14385 int 14386 xcb_input_motion_sizeof (const void *_buffer /**< */) 14387 { 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; 14394 14395 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; 14410 } 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; 14422 } 14423 xcb_block_len = 0; 14424 14425 return xcb_buffer_len; 14426 } 14427 14428 int 14429 xcb_input_enter_sizeof (const void *_buffer /**< */) 14430 { 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; 14437 14438 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; 14453 } 14454 xcb_block_len = 0; 14455 14456 return xcb_buffer_len; 14457 } 14458 14459 int 14460 xcb_input_leave_sizeof (const void *_buffer /**< */) 14461 { 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; 14468 14469 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; 14484 } 14485 xcb_block_len = 0; 14486 14487 return xcb_buffer_len; 14488 } 14489 14490 int 14491 xcb_input_focus_in_sizeof (const void *_buffer /**< */) 14492 { 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; 14499 14500 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; 14515 } 14516 xcb_block_len = 0; 14517 14518 return xcb_buffer_len; 14519 } 14520 14521 int 14522 xcb_input_focus_out_sizeof (const void *_buffer /**< */) 14523 { 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; 14530 14531 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; 14546 } 14547 xcb_block_len = 0; 14548 14549 return xcb_buffer_len; 14550 } 14551 14552 14553 /***************************************************************************** 14554 ** 14555 ** void xcb_input_hierarchy_info_next 14556 ** 14557 ** @param xcb_input_hierarchy_info_iterator_t *i 14558 ** @returns void 14559 ** 14560 *****************************************************************************/ 14561 14562 void 14563 xcb_input_hierarchy_info_next (xcb_input_hierarchy_info_iterator_t *i /**< */) 14564 { 14565 --i->rem; 14566 ++i->data; 14567 i->index += sizeof(xcb_input_hierarchy_info_t); 14568 } 14569 14570 14571 /***************************************************************************** 14572 ** 14573 ** xcb_generic_iterator_t xcb_input_hierarchy_info_end 14574 ** 14575 ** @param xcb_input_hierarchy_info_iterator_t i 14576 ** @returns xcb_generic_iterator_t 14577 ** 14578 *****************************************************************************/ 14579 14580 xcb_generic_iterator_t 14581 xcb_input_hierarchy_info_end (xcb_input_hierarchy_info_iterator_t i /**< */) 14582 { 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; 14588 } 14589 14590 int 14591 xcb_input_hierarchy_sizeof (const void *_buffer /**< */) 14592 { 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; 14599 14600 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; 14615 } 14616 xcb_block_len = 0; 14617 14618 return xcb_buffer_len; 14619 } 14620 14621 int 14622 xcb_input_raw_key_press_sizeof (const void *_buffer /**< */) 14623 { 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; 14630 14631 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; 14646 } 14647 xcb_block_len = 0; 14648 14649 return xcb_buffer_len; 14650 } 14651 14652 int 14653 xcb_input_raw_key_release_sizeof (const void *_buffer /**< */) 14654 { 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; 14661 14662 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; 14677 } 14678 xcb_block_len = 0; 14679 14680 return xcb_buffer_len; 14681 } 14682 14683 int 14684 xcb_input_raw_button_press_sizeof (const void *_buffer /**< */) 14685 { 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; 14692 14693 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; 14708 } 14709 xcb_block_len = 0; 14710 14711 return xcb_buffer_len; 14712 } 14713 14714 int 14715 xcb_input_raw_button_release_sizeof (const void *_buffer /**< */) 14716 { 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; 14723 14724 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; 14739 } 14740 xcb_block_len = 0; 14741 14742 return xcb_buffer_len; 14743 } 14744 14745 int 14746 xcb_input_raw_motion_sizeof (const void *_buffer /**< */) 14747 { 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; 14754 14755 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; 14770 } 14771 xcb_block_len = 0; 14772 14773 return xcb_buffer_len; 14774 } 14775 14776 int 14777 xcb_input_touch_begin_sizeof (const void *_buffer /**< */) 14778 { 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; 14785 14786 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; 14801 } 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; 14813 } 14814 xcb_block_len = 0; 14815 14816 return xcb_buffer_len; 14817 } 14818 14819 int 14820 xcb_input_touch_update_sizeof (const void *_buffer /**< */) 14821 { 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; 14828 14829 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; 14844 } 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; 14856 } 14857 xcb_block_len = 0; 14858 14859 return xcb_buffer_len; 14860 } 14861 14862 int 14863 xcb_input_touch_end_sizeof (const void *_buffer /**< */) 14864 { 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; 14871 14872 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; 14887 } 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; 14899 } 14900 xcb_block_len = 0; 14901 14902 return xcb_buffer_len; 14903 } 14904 14905 int 14906 xcb_input_raw_touch_begin_sizeof (const void *_buffer /**< */) 14907 { 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; 14914 14915 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; 14930 } 14931 xcb_block_len = 0; 14932 14933 return xcb_buffer_len; 14934 } 14935 14936 int 14937 xcb_input_raw_touch_update_sizeof (const void *_buffer /**< */) 14938 { 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; 14945 14946 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; 14961 } 14962 xcb_block_len = 0; 14963 14964 return xcb_buffer_len; 14965 } 14966 14967 int 14968 xcb_input_raw_touch_end_sizeof (const void *_buffer /**< */) 14969 { 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; 14976 14977 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; 14992 } 14993 xcb_block_len = 0; 14994 14995 return xcb_buffer_len; 14996 } 14997 14998