1 /* 2 * This file generated automatically from xv.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 #include <string.h> 7 #include <assert.h> 8 #include "xcbext.h" 9 #include "xv.h" 10 #include "xproto.h" 11 #include "shm.h" 12 13 xcb_extension_t xcb_xv_id = { "XVideo", 0 }; 14 15 16 /***************************************************************************** 17 ** 18 ** void xcb_xv_port_next 19 ** 20 ** @param xcb_xv_port_iterator_t *i 21 ** @returns void 22 ** 23 *****************************************************************************/ 24 25 void 26 xcb_xv_port_next (xcb_xv_port_iterator_t *i /**< */) 27 { 28 --i->rem; 29 ++i->data; 30 i->index += sizeof(xcb_xv_port_t); 31 } 32 33 34 /***************************************************************************** 35 ** 36 ** xcb_generic_iterator_t xcb_xv_port_end 37 ** 38 ** @param xcb_xv_port_iterator_t i 39 ** @returns xcb_generic_iterator_t 40 ** 41 *****************************************************************************/ 42 43 xcb_generic_iterator_t 44 xcb_xv_port_end (xcb_xv_port_iterator_t i /**< */) 45 { 46 xcb_generic_iterator_t ret; 47 ret.data = i.data + i.rem; 48 ret.index = i.index + ((char *) ret.data - (char *) i.data); 49 ret.rem = 0; 50 return ret; 51 } 52 53 54 /***************************************************************************** 55 ** 56 ** void xcb_xv_encoding_next 57 ** 58 ** @param xcb_xv_encoding_iterator_t *i 59 ** @returns void 60 ** 61 *****************************************************************************/ 62 63 void 64 xcb_xv_encoding_next (xcb_xv_encoding_iterator_t *i /**< */) 65 { 66 --i->rem; 67 ++i->data; 68 i->index += sizeof(xcb_xv_encoding_t); 69 } 70 71 72 /***************************************************************************** 73 ** 74 ** xcb_generic_iterator_t xcb_xv_encoding_end 75 ** 76 ** @param xcb_xv_encoding_iterator_t i 77 ** @returns xcb_generic_iterator_t 78 ** 79 *****************************************************************************/ 80 81 xcb_generic_iterator_t 82 xcb_xv_encoding_end (xcb_xv_encoding_iterator_t i /**< */) 83 { 84 xcb_generic_iterator_t ret; 85 ret.data = i.data + i.rem; 86 ret.index = i.index + ((char *) ret.data - (char *) i.data); 87 ret.rem = 0; 88 return ret; 89 } 90 91 92 /***************************************************************************** 93 ** 94 ** void xcb_xv_rational_next 95 ** 96 ** @param xcb_xv_rational_iterator_t *i 97 ** @returns void 98 ** 99 *****************************************************************************/ 100 101 void 102 xcb_xv_rational_next (xcb_xv_rational_iterator_t *i /**< */) 103 { 104 --i->rem; 105 ++i->data; 106 i->index += sizeof(xcb_xv_rational_t); 107 } 108 109 110 /***************************************************************************** 111 ** 112 ** xcb_generic_iterator_t xcb_xv_rational_end 113 ** 114 ** @param xcb_xv_rational_iterator_t i 115 ** @returns xcb_generic_iterator_t 116 ** 117 *****************************************************************************/ 118 119 xcb_generic_iterator_t 120 xcb_xv_rational_end (xcb_xv_rational_iterator_t i /**< */) 121 { 122 xcb_generic_iterator_t ret; 123 ret.data = i.data + i.rem; 124 ret.index = i.index + ((char *) ret.data - (char *) i.data); 125 ret.rem = 0; 126 return ret; 127 } 128 129 130 /***************************************************************************** 131 ** 132 ** void xcb_xv_format_next 133 ** 134 ** @param xcb_xv_format_iterator_t *i 135 ** @returns void 136 ** 137 *****************************************************************************/ 138 139 void 140 xcb_xv_format_next (xcb_xv_format_iterator_t *i /**< */) 141 { 142 --i->rem; 143 ++i->data; 144 i->index += sizeof(xcb_xv_format_t); 145 } 146 147 148 /***************************************************************************** 149 ** 150 ** xcb_generic_iterator_t xcb_xv_format_end 151 ** 152 ** @param xcb_xv_format_iterator_t i 153 ** @returns xcb_generic_iterator_t 154 ** 155 *****************************************************************************/ 156 157 xcb_generic_iterator_t 158 xcb_xv_format_end (xcb_xv_format_iterator_t i /**< */) 159 { 160 xcb_generic_iterator_t ret; 161 ret.data = i.data + i.rem; 162 ret.index = i.index + ((char *) ret.data - (char *) i.data); 163 ret.rem = 0; 164 return ret; 165 } 166 167 168 /***************************************************************************** 169 ** 170 ** char * xcb_xv_adaptor_info_name 171 ** 172 ** @param const xcb_xv_adaptor_info_t *R 173 ** @returns char * 174 ** 175 *****************************************************************************/ 176 177 char * 178 xcb_xv_adaptor_info_name (const xcb_xv_adaptor_info_t *R /**< */) 179 { 180 return (char *) (R + 1); 181 } 182 183 184 /***************************************************************************** 185 ** 186 ** int xcb_xv_adaptor_info_name_length 187 ** 188 ** @param const xcb_xv_adaptor_info_t *R 189 ** @returns int 190 ** 191 *****************************************************************************/ 192 193 int 194 xcb_xv_adaptor_info_name_length (const xcb_xv_adaptor_info_t *R /**< */) 195 { 196 return R->name_size; 197 } 198 199 200 /***************************************************************************** 201 ** 202 ** xcb_generic_iterator_t xcb_xv_adaptor_info_name_end 203 ** 204 ** @param const xcb_xv_adaptor_info_t *R 205 ** @returns xcb_generic_iterator_t 206 ** 207 *****************************************************************************/ 208 209 xcb_generic_iterator_t 210 xcb_xv_adaptor_info_name_end (const xcb_xv_adaptor_info_t *R /**< */) 211 { 212 xcb_generic_iterator_t i; 213 i.data = ((char *) (R + 1)) + (R->name_size); 214 i.rem = 0; 215 i.index = (char *) i.data - (char *) R; 216 return i; 217 } 218 219 220 /***************************************************************************** 221 ** 222 ** xcb_xv_format_t * xcb_xv_adaptor_info_formats 223 ** 224 ** @param const xcb_xv_adaptor_info_t *R 225 ** @returns xcb_xv_format_t * 226 ** 227 *****************************************************************************/ 228 229 xcb_xv_format_t * 230 xcb_xv_adaptor_info_formats (const xcb_xv_adaptor_info_t *R /**< */) 231 { 232 xcb_generic_iterator_t prev = xcb_xv_adaptor_info_name_end(R); 233 return (xcb_xv_format_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xv_format_t, prev.index) + 0); 234 } 235 236 237 /***************************************************************************** 238 ** 239 ** int xcb_xv_adaptor_info_formats_length 240 ** 241 ** @param const xcb_xv_adaptor_info_t *R 242 ** @returns int 243 ** 244 *****************************************************************************/ 245 246 int 247 xcb_xv_adaptor_info_formats_length (const xcb_xv_adaptor_info_t *R /**< */) 248 { 249 return R->num_formats; 250 } 251 252 253 /***************************************************************************** 254 ** 255 ** xcb_xv_format_iterator_t xcb_xv_adaptor_info_formats_iterator 256 ** 257 ** @param const xcb_xv_adaptor_info_t *R 258 ** @returns xcb_xv_format_iterator_t 259 ** 260 *****************************************************************************/ 261 262 xcb_xv_format_iterator_t 263 xcb_xv_adaptor_info_formats_iterator (const xcb_xv_adaptor_info_t *R /**< */) 264 { 265 xcb_xv_format_iterator_t i; 266 xcb_generic_iterator_t prev = xcb_xv_adaptor_info_name_end(R); 267 i.data = (xcb_xv_format_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xv_format_t, prev.index)); 268 i.rem = R->num_formats; 269 i.index = (char *) i.data - (char *) R; 270 return i; 271 } 272 273 274 /***************************************************************************** 275 ** 276 ** void xcb_xv_adaptor_info_next 277 ** 278 ** @param xcb_xv_adaptor_info_iterator_t *i 279 ** @returns void 280 ** 281 *****************************************************************************/ 282 283 void 284 xcb_xv_adaptor_info_next (xcb_xv_adaptor_info_iterator_t *i /**< */) 285 { 286 xcb_xv_adaptor_info_t *R = i->data; 287 xcb_generic_iterator_t child = xcb_xv_format_end(xcb_xv_adaptor_info_formats_iterator(R)); 288 --i->rem; 289 i->data = (xcb_xv_adaptor_info_t *) child.data; 290 i->index = child.index; 291 } 292 293 294 /***************************************************************************** 295 ** 296 ** xcb_generic_iterator_t xcb_xv_adaptor_info_end 297 ** 298 ** @param xcb_xv_adaptor_info_iterator_t i 299 ** @returns xcb_generic_iterator_t 300 ** 301 *****************************************************************************/ 302 303 xcb_generic_iterator_t 304 xcb_xv_adaptor_info_end (xcb_xv_adaptor_info_iterator_t i /**< */) 305 { 306 xcb_generic_iterator_t ret; 307 while(i.rem > 0) 308 xcb_xv_adaptor_info_next(&i); 309 ret.data = i.data; 310 ret.rem = i.rem; 311 ret.index = i.index; 312 return ret; 313 } 314 315 316 /***************************************************************************** 317 ** 318 ** char * xcb_xv_encoding_info_name 319 ** 320 ** @param const xcb_xv_encoding_info_t *R 321 ** @returns char * 322 ** 323 *****************************************************************************/ 324 325 char * 326 xcb_xv_encoding_info_name (const xcb_xv_encoding_info_t *R /**< */) 327 { 328 return (char *) (R + 1); 329 } 330 331 332 /***************************************************************************** 333 ** 334 ** int xcb_xv_encoding_info_name_length 335 ** 336 ** @param const xcb_xv_encoding_info_t *R 337 ** @returns int 338 ** 339 *****************************************************************************/ 340 341 int 342 xcb_xv_encoding_info_name_length (const xcb_xv_encoding_info_t *R /**< */) 343 { 344 return R->name_size; 345 } 346 347 348 /***************************************************************************** 349 ** 350 ** xcb_generic_iterator_t xcb_xv_encoding_info_name_end 351 ** 352 ** @param const xcb_xv_encoding_info_t *R 353 ** @returns xcb_generic_iterator_t 354 ** 355 *****************************************************************************/ 356 357 xcb_generic_iterator_t 358 xcb_xv_encoding_info_name_end (const xcb_xv_encoding_info_t *R /**< */) 359 { 360 xcb_generic_iterator_t i; 361 i.data = ((char *) (R + 1)) + (R->name_size); 362 i.rem = 0; 363 i.index = (char *) i.data - (char *) R; 364 return i; 365 } 366 367 368 /***************************************************************************** 369 ** 370 ** void xcb_xv_encoding_info_next 371 ** 372 ** @param xcb_xv_encoding_info_iterator_t *i 373 ** @returns void 374 ** 375 *****************************************************************************/ 376 377 void 378 xcb_xv_encoding_info_next (xcb_xv_encoding_info_iterator_t *i /**< */) 379 { 380 xcb_xv_encoding_info_t *R = i->data; 381 xcb_generic_iterator_t child = xcb_xv_encoding_info_name_end(R); 382 --i->rem; 383 i->data = (xcb_xv_encoding_info_t *) child.data; 384 i->index = child.index; 385 } 386 387 388 /***************************************************************************** 389 ** 390 ** xcb_generic_iterator_t xcb_xv_encoding_info_end 391 ** 392 ** @param xcb_xv_encoding_info_iterator_t i 393 ** @returns xcb_generic_iterator_t 394 ** 395 *****************************************************************************/ 396 397 xcb_generic_iterator_t 398 xcb_xv_encoding_info_end (xcb_xv_encoding_info_iterator_t i /**< */) 399 { 400 xcb_generic_iterator_t ret; 401 while(i.rem > 0) 402 xcb_xv_encoding_info_next(&i); 403 ret.data = i.data; 404 ret.rem = i.rem; 405 ret.index = i.index; 406 return ret; 407 } 408 409 410 /***************************************************************************** 411 ** 412 ** uint32_t * xcb_xv_image_pitches 413 ** 414 ** @param const xcb_xv_image_t *R 415 ** @returns uint32_t * 416 ** 417 *****************************************************************************/ 418 419 uint32_t * 420 xcb_xv_image_pitches (const xcb_xv_image_t *R /**< */) 421 { 422 return (uint32_t *) (R + 1); 423 } 424 425 426 /***************************************************************************** 427 ** 428 ** int xcb_xv_image_pitches_length 429 ** 430 ** @param const xcb_xv_image_t *R 431 ** @returns int 432 ** 433 *****************************************************************************/ 434 435 int 436 xcb_xv_image_pitches_length (const xcb_xv_image_t *R /**< */) 437 { 438 return R->num_planes; 439 } 440 441 442 /***************************************************************************** 443 ** 444 ** xcb_generic_iterator_t xcb_xv_image_pitches_end 445 ** 446 ** @param const xcb_xv_image_t *R 447 ** @returns xcb_generic_iterator_t 448 ** 449 *****************************************************************************/ 450 451 xcb_generic_iterator_t 452 xcb_xv_image_pitches_end (const xcb_xv_image_t *R /**< */) 453 { 454 xcb_generic_iterator_t i; 455 i.data = ((uint32_t *) (R + 1)) + (R->num_planes); 456 i.rem = 0; 457 i.index = (char *) i.data - (char *) R; 458 return i; 459 } 460 461 462 /***************************************************************************** 463 ** 464 ** uint32_t * xcb_xv_image_offsets 465 ** 466 ** @param const xcb_xv_image_t *R 467 ** @returns uint32_t * 468 ** 469 *****************************************************************************/ 470 471 uint32_t * 472 xcb_xv_image_offsets (const xcb_xv_image_t *R /**< */) 473 { 474 xcb_generic_iterator_t prev = xcb_xv_image_pitches_end(R); 475 return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); 476 } 477 478 479 /***************************************************************************** 480 ** 481 ** int xcb_xv_image_offsets_length 482 ** 483 ** @param const xcb_xv_image_t *R 484 ** @returns int 485 ** 486 *****************************************************************************/ 487 488 int 489 xcb_xv_image_offsets_length (const xcb_xv_image_t *R /**< */) 490 { 491 return R->num_planes; 492 } 493 494 495 /***************************************************************************** 496 ** 497 ** xcb_generic_iterator_t xcb_xv_image_offsets_end 498 ** 499 ** @param const xcb_xv_image_t *R 500 ** @returns xcb_generic_iterator_t 501 ** 502 *****************************************************************************/ 503 504 xcb_generic_iterator_t 505 xcb_xv_image_offsets_end (const xcb_xv_image_t *R /**< */) 506 { 507 xcb_generic_iterator_t i; 508 xcb_generic_iterator_t child = xcb_xv_image_pitches_end(R); 509 i.data = ((uint32_t *) child.data) + (R->num_planes); 510 i.rem = 0; 511 i.index = (char *) i.data - (char *) R; 512 return i; 513 } 514 515 516 /***************************************************************************** 517 ** 518 ** uint8_t * xcb_xv_image_data 519 ** 520 ** @param const xcb_xv_image_t *R 521 ** @returns uint8_t * 522 ** 523 *****************************************************************************/ 524 525 uint8_t * 526 xcb_xv_image_data (const xcb_xv_image_t *R /**< */) 527 { 528 xcb_generic_iterator_t prev = xcb_xv_image_offsets_end(R); 529 return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); 530 } 531 532 533 /***************************************************************************** 534 ** 535 ** int xcb_xv_image_data_length 536 ** 537 ** @param const xcb_xv_image_t *R 538 ** @returns int 539 ** 540 *****************************************************************************/ 541 542 int 543 xcb_xv_image_data_length (const xcb_xv_image_t *R /**< */) 544 { 545 return R->data_size; 546 } 547 548 549 /***************************************************************************** 550 ** 551 ** xcb_generic_iterator_t xcb_xv_image_data_end 552 ** 553 ** @param const xcb_xv_image_t *R 554 ** @returns xcb_generic_iterator_t 555 ** 556 *****************************************************************************/ 557 558 xcb_generic_iterator_t 559 xcb_xv_image_data_end (const xcb_xv_image_t *R /**< */) 560 { 561 xcb_generic_iterator_t i; 562 xcb_generic_iterator_t child = xcb_xv_image_offsets_end(R); 563 i.data = ((uint8_t *) child.data) + (R->data_size); 564 i.rem = 0; 565 i.index = (char *) i.data - (char *) R; 566 return i; 567 } 568 569 570 /***************************************************************************** 571 ** 572 ** void xcb_xv_image_next 573 ** 574 ** @param xcb_xv_image_iterator_t *i 575 ** @returns void 576 ** 577 *****************************************************************************/ 578 579 void 580 xcb_xv_image_next (xcb_xv_image_iterator_t *i /**< */) 581 { 582 xcb_xv_image_t *R = i->data; 583 xcb_generic_iterator_t child = xcb_xv_image_data_end(R); 584 --i->rem; 585 i->data = (xcb_xv_image_t *) child.data; 586 i->index = child.index; 587 } 588 589 590 /***************************************************************************** 591 ** 592 ** xcb_generic_iterator_t xcb_xv_image_end 593 ** 594 ** @param xcb_xv_image_iterator_t i 595 ** @returns xcb_generic_iterator_t 596 ** 597 *****************************************************************************/ 598 599 xcb_generic_iterator_t 600 xcb_xv_image_end (xcb_xv_image_iterator_t i /**< */) 601 { 602 xcb_generic_iterator_t ret; 603 while(i.rem > 0) 604 xcb_xv_image_next(&i); 605 ret.data = i.data; 606 ret.rem = i.rem; 607 ret.index = i.index; 608 return ret; 609 } 610 611 612 /***************************************************************************** 613 ** 614 ** char * xcb_xv_attribute_info_name 615 ** 616 ** @param const xcb_xv_attribute_info_t *R 617 ** @returns char * 618 ** 619 *****************************************************************************/ 620 621 char * 622 xcb_xv_attribute_info_name (const xcb_xv_attribute_info_t *R /**< */) 623 { 624 return (char *) (R + 1); 625 } 626 627 628 /***************************************************************************** 629 ** 630 ** int xcb_xv_attribute_info_name_length 631 ** 632 ** @param const xcb_xv_attribute_info_t *R 633 ** @returns int 634 ** 635 *****************************************************************************/ 636 637 int 638 xcb_xv_attribute_info_name_length (const xcb_xv_attribute_info_t *R /**< */) 639 { 640 return R->size; 641 } 642 643 644 /***************************************************************************** 645 ** 646 ** xcb_generic_iterator_t xcb_xv_attribute_info_name_end 647 ** 648 ** @param const xcb_xv_attribute_info_t *R 649 ** @returns xcb_generic_iterator_t 650 ** 651 *****************************************************************************/ 652 653 xcb_generic_iterator_t 654 xcb_xv_attribute_info_name_end (const xcb_xv_attribute_info_t *R /**< */) 655 { 656 xcb_generic_iterator_t i; 657 i.data = ((char *) (R + 1)) + (R->size); 658 i.rem = 0; 659 i.index = (char *) i.data - (char *) R; 660 return i; 661 } 662 663 664 /***************************************************************************** 665 ** 666 ** void xcb_xv_attribute_info_next 667 ** 668 ** @param xcb_xv_attribute_info_iterator_t *i 669 ** @returns void 670 ** 671 *****************************************************************************/ 672 673 void 674 xcb_xv_attribute_info_next (xcb_xv_attribute_info_iterator_t *i /**< */) 675 { 676 xcb_xv_attribute_info_t *R = i->data; 677 xcb_generic_iterator_t child = xcb_xv_attribute_info_name_end(R); 678 --i->rem; 679 i->data = (xcb_xv_attribute_info_t *) child.data; 680 i->index = child.index; 681 } 682 683 684 /***************************************************************************** 685 ** 686 ** xcb_generic_iterator_t xcb_xv_attribute_info_end 687 ** 688 ** @param xcb_xv_attribute_info_iterator_t i 689 ** @returns xcb_generic_iterator_t 690 ** 691 *****************************************************************************/ 692 693 xcb_generic_iterator_t 694 xcb_xv_attribute_info_end (xcb_xv_attribute_info_iterator_t i /**< */) 695 { 696 xcb_generic_iterator_t ret; 697 while(i.rem > 0) 698 xcb_xv_attribute_info_next(&i); 699 ret.data = i.data; 700 ret.rem = i.rem; 701 ret.index = i.index; 702 return ret; 703 } 704 705 706 /***************************************************************************** 707 ** 708 ** void xcb_xv_image_format_info_next 709 ** 710 ** @param xcb_xv_image_format_info_iterator_t *i 711 ** @returns void 712 ** 713 *****************************************************************************/ 714 715 void 716 xcb_xv_image_format_info_next (xcb_xv_image_format_info_iterator_t *i /**< */) 717 { 718 --i->rem; 719 ++i->data; 720 i->index += sizeof(xcb_xv_image_format_info_t); 721 } 722 723 724 /***************************************************************************** 725 ** 726 ** xcb_generic_iterator_t xcb_xv_image_format_info_end 727 ** 728 ** @param xcb_xv_image_format_info_iterator_t i 729 ** @returns xcb_generic_iterator_t 730 ** 731 *****************************************************************************/ 732 733 xcb_generic_iterator_t 734 xcb_xv_image_format_info_end (xcb_xv_image_format_info_iterator_t i /**< */) 735 { 736 xcb_generic_iterator_t ret; 737 ret.data = i.data + i.rem; 738 ret.index = i.index + ((char *) ret.data - (char *) i.data); 739 ret.rem = 0; 740 return ret; 741 } 742 743 744 /***************************************************************************** 745 ** 746 ** xcb_xv_query_extension_cookie_t xcb_xv_query_extension 747 ** 748 ** @param xcb_connection_t *c 749 ** @returns xcb_xv_query_extension_cookie_t 750 ** 751 *****************************************************************************/ 752 753 xcb_xv_query_extension_cookie_t 754 xcb_xv_query_extension (xcb_connection_t *c /**< */) 755 { 756 static const xcb_protocol_request_t xcb_req = { 757 /* count */ 2, 758 /* ext */ &xcb_xv_id, 759 /* opcode */ XCB_XV_QUERY_EXTENSION, 760 /* isvoid */ 0 761 }; 762 763 struct iovec xcb_parts[4]; 764 xcb_xv_query_extension_cookie_t xcb_ret; 765 xcb_xv_query_extension_request_t xcb_out; 766 767 768 xcb_parts[2].iov_base = (char *) &xcb_out; 769 xcb_parts[2].iov_len = sizeof(xcb_out); 770 xcb_parts[3].iov_base = 0; 771 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 772 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 773 return xcb_ret; 774 } 775 776 777 /***************************************************************************** 778 ** 779 ** xcb_xv_query_extension_cookie_t xcb_xv_query_extension_unchecked 780 ** 781 ** @param xcb_connection_t *c 782 ** @returns xcb_xv_query_extension_cookie_t 783 ** 784 *****************************************************************************/ 785 786 xcb_xv_query_extension_cookie_t 787 xcb_xv_query_extension_unchecked (xcb_connection_t *c /**< */) 788 { 789 static const xcb_protocol_request_t xcb_req = { 790 /* count */ 2, 791 /* ext */ &xcb_xv_id, 792 /* opcode */ XCB_XV_QUERY_EXTENSION, 793 /* isvoid */ 0 794 }; 795 796 struct iovec xcb_parts[4]; 797 xcb_xv_query_extension_cookie_t xcb_ret; 798 xcb_xv_query_extension_request_t xcb_out; 799 800 801 xcb_parts[2].iov_base = (char *) &xcb_out; 802 xcb_parts[2].iov_len = sizeof(xcb_out); 803 xcb_parts[3].iov_base = 0; 804 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 805 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 806 return xcb_ret; 807 } 808 809 810 /***************************************************************************** 811 ** 812 ** xcb_xv_query_extension_reply_t * xcb_xv_query_extension_reply 813 ** 814 ** @param xcb_connection_t *c 815 ** @param xcb_xv_query_extension_cookie_t cookie 816 ** @param xcb_generic_error_t **e 817 ** @returns xcb_xv_query_extension_reply_t * 818 ** 819 *****************************************************************************/ 820 821 xcb_xv_query_extension_reply_t * 822 xcb_xv_query_extension_reply (xcb_connection_t *c /**< */, 823 xcb_xv_query_extension_cookie_t cookie /**< */, 824 xcb_generic_error_t **e /**< */) 825 { 826 return (xcb_xv_query_extension_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 827 } 828 829 830 /***************************************************************************** 831 ** 832 ** xcb_xv_query_adaptors_cookie_t xcb_xv_query_adaptors 833 ** 834 ** @param xcb_connection_t *c 835 ** @param xcb_window_t window 836 ** @returns xcb_xv_query_adaptors_cookie_t 837 ** 838 *****************************************************************************/ 839 840 xcb_xv_query_adaptors_cookie_t 841 xcb_xv_query_adaptors (xcb_connection_t *c /**< */, 842 xcb_window_t window /**< */) 843 { 844 static const xcb_protocol_request_t xcb_req = { 845 /* count */ 2, 846 /* ext */ &xcb_xv_id, 847 /* opcode */ XCB_XV_QUERY_ADAPTORS, 848 /* isvoid */ 0 849 }; 850 851 struct iovec xcb_parts[4]; 852 xcb_xv_query_adaptors_cookie_t xcb_ret; 853 xcb_xv_query_adaptors_request_t xcb_out; 854 855 xcb_out.window = window; 856 857 xcb_parts[2].iov_base = (char *) &xcb_out; 858 xcb_parts[2].iov_len = sizeof(xcb_out); 859 xcb_parts[3].iov_base = 0; 860 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 861 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 862 return xcb_ret; 863 } 864 865 866 /***************************************************************************** 867 ** 868 ** xcb_xv_query_adaptors_cookie_t xcb_xv_query_adaptors_unchecked 869 ** 870 ** @param xcb_connection_t *c 871 ** @param xcb_window_t window 872 ** @returns xcb_xv_query_adaptors_cookie_t 873 ** 874 *****************************************************************************/ 875 876 xcb_xv_query_adaptors_cookie_t 877 xcb_xv_query_adaptors_unchecked (xcb_connection_t *c /**< */, 878 xcb_window_t window /**< */) 879 { 880 static const xcb_protocol_request_t xcb_req = { 881 /* count */ 2, 882 /* ext */ &xcb_xv_id, 883 /* opcode */ XCB_XV_QUERY_ADAPTORS, 884 /* isvoid */ 0 885 }; 886 887 struct iovec xcb_parts[4]; 888 xcb_xv_query_adaptors_cookie_t xcb_ret; 889 xcb_xv_query_adaptors_request_t xcb_out; 890 891 xcb_out.window = window; 892 893 xcb_parts[2].iov_base = (char *) &xcb_out; 894 xcb_parts[2].iov_len = sizeof(xcb_out); 895 xcb_parts[3].iov_base = 0; 896 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 897 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 898 return xcb_ret; 899 } 900 901 902 /***************************************************************************** 903 ** 904 ** int xcb_xv_query_adaptors_info_length 905 ** 906 ** @param const xcb_xv_query_adaptors_reply_t *R 907 ** @returns int 908 ** 909 *****************************************************************************/ 910 911 int 912 xcb_xv_query_adaptors_info_length (const xcb_xv_query_adaptors_reply_t *R /**< */) 913 { 914 return R->num_adaptors; 915 } 916 917 918 /***************************************************************************** 919 ** 920 ** xcb_xv_adaptor_info_iterator_t xcb_xv_query_adaptors_info_iterator 921 ** 922 ** @param const xcb_xv_query_adaptors_reply_t *R 923 ** @returns xcb_xv_adaptor_info_iterator_t 924 ** 925 *****************************************************************************/ 926 927 xcb_xv_adaptor_info_iterator_t 928 xcb_xv_query_adaptors_info_iterator (const xcb_xv_query_adaptors_reply_t *R /**< */) 929 { 930 xcb_xv_adaptor_info_iterator_t i; 931 i.data = (xcb_xv_adaptor_info_t *) (R + 1); 932 i.rem = R->num_adaptors; 933 i.index = (char *) i.data - (char *) R; 934 return i; 935 } 936 937 938 /***************************************************************************** 939 ** 940 ** xcb_xv_query_adaptors_reply_t * xcb_xv_query_adaptors_reply 941 ** 942 ** @param xcb_connection_t *c 943 ** @param xcb_xv_query_adaptors_cookie_t cookie 944 ** @param xcb_generic_error_t **e 945 ** @returns xcb_xv_query_adaptors_reply_t * 946 ** 947 *****************************************************************************/ 948 949 xcb_xv_query_adaptors_reply_t * 950 xcb_xv_query_adaptors_reply (xcb_connection_t *c /**< */, 951 xcb_xv_query_adaptors_cookie_t cookie /**< */, 952 xcb_generic_error_t **e /**< */) 953 { 954 return (xcb_xv_query_adaptors_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 955 } 956 957 958 /***************************************************************************** 959 ** 960 ** xcb_xv_query_encodings_cookie_t xcb_xv_query_encodings 961 ** 962 ** @param xcb_connection_t *c 963 ** @param xcb_xv_port_t port 964 ** @returns xcb_xv_query_encodings_cookie_t 965 ** 966 *****************************************************************************/ 967 968 xcb_xv_query_encodings_cookie_t 969 xcb_xv_query_encodings (xcb_connection_t *c /**< */, 970 xcb_xv_port_t port /**< */) 971 { 972 static const xcb_protocol_request_t xcb_req = { 973 /* count */ 2, 974 /* ext */ &xcb_xv_id, 975 /* opcode */ XCB_XV_QUERY_ENCODINGS, 976 /* isvoid */ 0 977 }; 978 979 struct iovec xcb_parts[4]; 980 xcb_xv_query_encodings_cookie_t xcb_ret; 981 xcb_xv_query_encodings_request_t xcb_out; 982 983 xcb_out.port = port; 984 985 xcb_parts[2].iov_base = (char *) &xcb_out; 986 xcb_parts[2].iov_len = sizeof(xcb_out); 987 xcb_parts[3].iov_base = 0; 988 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 989 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 990 return xcb_ret; 991 } 992 993 994 /***************************************************************************** 995 ** 996 ** xcb_xv_query_encodings_cookie_t xcb_xv_query_encodings_unchecked 997 ** 998 ** @param xcb_connection_t *c 999 ** @param xcb_xv_port_t port 1000 ** @returns xcb_xv_query_encodings_cookie_t 1001 ** 1002 *****************************************************************************/ 1003 1004 xcb_xv_query_encodings_cookie_t 1005 xcb_xv_query_encodings_unchecked (xcb_connection_t *c /**< */, 1006 xcb_xv_port_t port /**< */) 1007 { 1008 static const xcb_protocol_request_t xcb_req = { 1009 /* count */ 2, 1010 /* ext */ &xcb_xv_id, 1011 /* opcode */ XCB_XV_QUERY_ENCODINGS, 1012 /* isvoid */ 0 1013 }; 1014 1015 struct iovec xcb_parts[4]; 1016 xcb_xv_query_encodings_cookie_t xcb_ret; 1017 xcb_xv_query_encodings_request_t xcb_out; 1018 1019 xcb_out.port = port; 1020 1021 xcb_parts[2].iov_base = (char *) &xcb_out; 1022 xcb_parts[2].iov_len = sizeof(xcb_out); 1023 xcb_parts[3].iov_base = 0; 1024 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1025 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1026 return xcb_ret; 1027 } 1028 1029 1030 /***************************************************************************** 1031 ** 1032 ** int xcb_xv_query_encodings_info_length 1033 ** 1034 ** @param const xcb_xv_query_encodings_reply_t *R 1035 ** @returns int 1036 ** 1037 *****************************************************************************/ 1038 1039 int 1040 xcb_xv_query_encodings_info_length (const xcb_xv_query_encodings_reply_t *R /**< */) 1041 { 1042 return R->num_encodings; 1043 } 1044 1045 1046 /***************************************************************************** 1047 ** 1048 ** xcb_xv_encoding_info_iterator_t xcb_xv_query_encodings_info_iterator 1049 ** 1050 ** @param const xcb_xv_query_encodings_reply_t *R 1051 ** @returns xcb_xv_encoding_info_iterator_t 1052 ** 1053 *****************************************************************************/ 1054 1055 xcb_xv_encoding_info_iterator_t 1056 xcb_xv_query_encodings_info_iterator (const xcb_xv_query_encodings_reply_t *R /**< */) 1057 { 1058 xcb_xv_encoding_info_iterator_t i; 1059 i.data = (xcb_xv_encoding_info_t *) (R + 1); 1060 i.rem = R->num_encodings; 1061 i.index = (char *) i.data - (char *) R; 1062 return i; 1063 } 1064 1065 1066 /***************************************************************************** 1067 ** 1068 ** xcb_xv_query_encodings_reply_t * xcb_xv_query_encodings_reply 1069 ** 1070 ** @param xcb_connection_t *c 1071 ** @param xcb_xv_query_encodings_cookie_t cookie 1072 ** @param xcb_generic_error_t **e 1073 ** @returns xcb_xv_query_encodings_reply_t * 1074 ** 1075 *****************************************************************************/ 1076 1077 xcb_xv_query_encodings_reply_t * 1078 xcb_xv_query_encodings_reply (xcb_connection_t *c /**< */, 1079 xcb_xv_query_encodings_cookie_t cookie /**< */, 1080 xcb_generic_error_t **e /**< */) 1081 { 1082 return (xcb_xv_query_encodings_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1083 } 1084 1085 1086 /***************************************************************************** 1087 ** 1088 ** xcb_xv_grab_port_cookie_t xcb_xv_grab_port 1089 ** 1090 ** @param xcb_connection_t *c 1091 ** @param xcb_xv_port_t port 1092 ** @param xcb_timestamp_t time 1093 ** @returns xcb_xv_grab_port_cookie_t 1094 ** 1095 *****************************************************************************/ 1096 1097 xcb_xv_grab_port_cookie_t 1098 xcb_xv_grab_port (xcb_connection_t *c /**< */, 1099 xcb_xv_port_t port /**< */, 1100 xcb_timestamp_t time /**< */) 1101 { 1102 static const xcb_protocol_request_t xcb_req = { 1103 /* count */ 2, 1104 /* ext */ &xcb_xv_id, 1105 /* opcode */ XCB_XV_GRAB_PORT, 1106 /* isvoid */ 0 1107 }; 1108 1109 struct iovec xcb_parts[4]; 1110 xcb_xv_grab_port_cookie_t xcb_ret; 1111 xcb_xv_grab_port_request_t xcb_out; 1112 1113 xcb_out.port = port; 1114 xcb_out.time = time; 1115 1116 xcb_parts[2].iov_base = (char *) &xcb_out; 1117 xcb_parts[2].iov_len = sizeof(xcb_out); 1118 xcb_parts[3].iov_base = 0; 1119 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1120 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1121 return xcb_ret; 1122 } 1123 1124 1125 /***************************************************************************** 1126 ** 1127 ** xcb_xv_grab_port_cookie_t xcb_xv_grab_port_unchecked 1128 ** 1129 ** @param xcb_connection_t *c 1130 ** @param xcb_xv_port_t port 1131 ** @param xcb_timestamp_t time 1132 ** @returns xcb_xv_grab_port_cookie_t 1133 ** 1134 *****************************************************************************/ 1135 1136 xcb_xv_grab_port_cookie_t 1137 xcb_xv_grab_port_unchecked (xcb_connection_t *c /**< */, 1138 xcb_xv_port_t port /**< */, 1139 xcb_timestamp_t time /**< */) 1140 { 1141 static const xcb_protocol_request_t xcb_req = { 1142 /* count */ 2, 1143 /* ext */ &xcb_xv_id, 1144 /* opcode */ XCB_XV_GRAB_PORT, 1145 /* isvoid */ 0 1146 }; 1147 1148 struct iovec xcb_parts[4]; 1149 xcb_xv_grab_port_cookie_t xcb_ret; 1150 xcb_xv_grab_port_request_t xcb_out; 1151 1152 xcb_out.port = port; 1153 xcb_out.time = time; 1154 1155 xcb_parts[2].iov_base = (char *) &xcb_out; 1156 xcb_parts[2].iov_len = sizeof(xcb_out); 1157 xcb_parts[3].iov_base = 0; 1158 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1159 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1160 return xcb_ret; 1161 } 1162 1163 1164 /***************************************************************************** 1165 ** 1166 ** xcb_xv_grab_port_reply_t * xcb_xv_grab_port_reply 1167 ** 1168 ** @param xcb_connection_t *c 1169 ** @param xcb_xv_grab_port_cookie_t cookie 1170 ** @param xcb_generic_error_t **e 1171 ** @returns xcb_xv_grab_port_reply_t * 1172 ** 1173 *****************************************************************************/ 1174 1175 xcb_xv_grab_port_reply_t * 1176 xcb_xv_grab_port_reply (xcb_connection_t *c /**< */, 1177 xcb_xv_grab_port_cookie_t cookie /**< */, 1178 xcb_generic_error_t **e /**< */) 1179 { 1180 return (xcb_xv_grab_port_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1181 } 1182 1183 1184 /***************************************************************************** 1185 ** 1186 ** xcb_void_cookie_t xcb_xv_ungrab_port_checked 1187 ** 1188 ** @param xcb_connection_t *c 1189 ** @param xcb_xv_port_t port 1190 ** @param xcb_timestamp_t time 1191 ** @returns xcb_void_cookie_t 1192 ** 1193 *****************************************************************************/ 1194 1195 xcb_void_cookie_t 1196 xcb_xv_ungrab_port_checked (xcb_connection_t *c /**< */, 1197 xcb_xv_port_t port /**< */, 1198 xcb_timestamp_t time /**< */) 1199 { 1200 static const xcb_protocol_request_t xcb_req = { 1201 /* count */ 2, 1202 /* ext */ &xcb_xv_id, 1203 /* opcode */ XCB_XV_UNGRAB_PORT, 1204 /* isvoid */ 1 1205 }; 1206 1207 struct iovec xcb_parts[4]; 1208 xcb_void_cookie_t xcb_ret; 1209 xcb_xv_ungrab_port_request_t xcb_out; 1210 1211 xcb_out.port = port; 1212 xcb_out.time = time; 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 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1219 return xcb_ret; 1220 } 1221 1222 1223 /***************************************************************************** 1224 ** 1225 ** xcb_void_cookie_t xcb_xv_ungrab_port 1226 ** 1227 ** @param xcb_connection_t *c 1228 ** @param xcb_xv_port_t port 1229 ** @param xcb_timestamp_t time 1230 ** @returns xcb_void_cookie_t 1231 ** 1232 *****************************************************************************/ 1233 1234 xcb_void_cookie_t 1235 xcb_xv_ungrab_port (xcb_connection_t *c /**< */, 1236 xcb_xv_port_t port /**< */, 1237 xcb_timestamp_t time /**< */) 1238 { 1239 static const xcb_protocol_request_t xcb_req = { 1240 /* count */ 2, 1241 /* ext */ &xcb_xv_id, 1242 /* opcode */ XCB_XV_UNGRAB_PORT, 1243 /* isvoid */ 1 1244 }; 1245 1246 struct iovec xcb_parts[4]; 1247 xcb_void_cookie_t xcb_ret; 1248 xcb_xv_ungrab_port_request_t xcb_out; 1249 1250 xcb_out.port = port; 1251 xcb_out.time = time; 1252 1253 xcb_parts[2].iov_base = (char *) &xcb_out; 1254 xcb_parts[2].iov_len = sizeof(xcb_out); 1255 xcb_parts[3].iov_base = 0; 1256 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1257 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1258 return xcb_ret; 1259 } 1260 1261 1262 /***************************************************************************** 1263 ** 1264 ** xcb_void_cookie_t xcb_xv_put_video_checked 1265 ** 1266 ** @param xcb_connection_t *c 1267 ** @param xcb_xv_port_t port 1268 ** @param xcb_drawable_t drawable 1269 ** @param xcb_gcontext_t gc 1270 ** @param int16_t vid_x 1271 ** @param int16_t vid_y 1272 ** @param uint16_t vid_w 1273 ** @param uint16_t vid_h 1274 ** @param int16_t drw_x 1275 ** @param int16_t drw_y 1276 ** @param uint16_t drw_w 1277 ** @param uint16_t drw_h 1278 ** @returns xcb_void_cookie_t 1279 ** 1280 *****************************************************************************/ 1281 1282 xcb_void_cookie_t 1283 xcb_xv_put_video_checked (xcb_connection_t *c /**< */, 1284 xcb_xv_port_t port /**< */, 1285 xcb_drawable_t drawable /**< */, 1286 xcb_gcontext_t gc /**< */, 1287 int16_t vid_x /**< */, 1288 int16_t vid_y /**< */, 1289 uint16_t vid_w /**< */, 1290 uint16_t vid_h /**< */, 1291 int16_t drw_x /**< */, 1292 int16_t drw_y /**< */, 1293 uint16_t drw_w /**< */, 1294 uint16_t drw_h /**< */) 1295 { 1296 static const xcb_protocol_request_t xcb_req = { 1297 /* count */ 2, 1298 /* ext */ &xcb_xv_id, 1299 /* opcode */ XCB_XV_PUT_VIDEO, 1300 /* isvoid */ 1 1301 }; 1302 1303 struct iovec xcb_parts[4]; 1304 xcb_void_cookie_t xcb_ret; 1305 xcb_xv_put_video_request_t xcb_out; 1306 1307 xcb_out.port = port; 1308 xcb_out.drawable = drawable; 1309 xcb_out.gc = gc; 1310 xcb_out.vid_x = vid_x; 1311 xcb_out.vid_y = vid_y; 1312 xcb_out.vid_w = vid_w; 1313 xcb_out.vid_h = vid_h; 1314 xcb_out.drw_x = drw_x; 1315 xcb_out.drw_y = drw_y; 1316 xcb_out.drw_w = drw_w; 1317 xcb_out.drw_h = drw_h; 1318 1319 xcb_parts[2].iov_base = (char *) &xcb_out; 1320 xcb_parts[2].iov_len = sizeof(xcb_out); 1321 xcb_parts[3].iov_base = 0; 1322 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1323 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1324 return xcb_ret; 1325 } 1326 1327 1328 /***************************************************************************** 1329 ** 1330 ** xcb_void_cookie_t xcb_xv_put_video 1331 ** 1332 ** @param xcb_connection_t *c 1333 ** @param xcb_xv_port_t port 1334 ** @param xcb_drawable_t drawable 1335 ** @param xcb_gcontext_t gc 1336 ** @param int16_t vid_x 1337 ** @param int16_t vid_y 1338 ** @param uint16_t vid_w 1339 ** @param uint16_t vid_h 1340 ** @param int16_t drw_x 1341 ** @param int16_t drw_y 1342 ** @param uint16_t drw_w 1343 ** @param uint16_t drw_h 1344 ** @returns xcb_void_cookie_t 1345 ** 1346 *****************************************************************************/ 1347 1348 xcb_void_cookie_t 1349 xcb_xv_put_video (xcb_connection_t *c /**< */, 1350 xcb_xv_port_t port /**< */, 1351 xcb_drawable_t drawable /**< */, 1352 xcb_gcontext_t gc /**< */, 1353 int16_t vid_x /**< */, 1354 int16_t vid_y /**< */, 1355 uint16_t vid_w /**< */, 1356 uint16_t vid_h /**< */, 1357 int16_t drw_x /**< */, 1358 int16_t drw_y /**< */, 1359 uint16_t drw_w /**< */, 1360 uint16_t drw_h /**< */) 1361 { 1362 static const xcb_protocol_request_t xcb_req = { 1363 /* count */ 2, 1364 /* ext */ &xcb_xv_id, 1365 /* opcode */ XCB_XV_PUT_VIDEO, 1366 /* isvoid */ 1 1367 }; 1368 1369 struct iovec xcb_parts[4]; 1370 xcb_void_cookie_t xcb_ret; 1371 xcb_xv_put_video_request_t xcb_out; 1372 1373 xcb_out.port = port; 1374 xcb_out.drawable = drawable; 1375 xcb_out.gc = gc; 1376 xcb_out.vid_x = vid_x; 1377 xcb_out.vid_y = vid_y; 1378 xcb_out.vid_w = vid_w; 1379 xcb_out.vid_h = vid_h; 1380 xcb_out.drw_x = drw_x; 1381 xcb_out.drw_y = drw_y; 1382 xcb_out.drw_w = drw_w; 1383 xcb_out.drw_h = drw_h; 1384 1385 xcb_parts[2].iov_base = (char *) &xcb_out; 1386 xcb_parts[2].iov_len = sizeof(xcb_out); 1387 xcb_parts[3].iov_base = 0; 1388 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1389 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1390 return xcb_ret; 1391 } 1392 1393 1394 /***************************************************************************** 1395 ** 1396 ** xcb_void_cookie_t xcb_xv_put_still_checked 1397 ** 1398 ** @param xcb_connection_t *c 1399 ** @param xcb_xv_port_t port 1400 ** @param xcb_drawable_t drawable 1401 ** @param xcb_gcontext_t gc 1402 ** @param int16_t vid_x 1403 ** @param int16_t vid_y 1404 ** @param uint16_t vid_w 1405 ** @param uint16_t vid_h 1406 ** @param int16_t drw_x 1407 ** @param int16_t drw_y 1408 ** @param uint16_t drw_w 1409 ** @param uint16_t drw_h 1410 ** @returns xcb_void_cookie_t 1411 ** 1412 *****************************************************************************/ 1413 1414 xcb_void_cookie_t 1415 xcb_xv_put_still_checked (xcb_connection_t *c /**< */, 1416 xcb_xv_port_t port /**< */, 1417 xcb_drawable_t drawable /**< */, 1418 xcb_gcontext_t gc /**< */, 1419 int16_t vid_x /**< */, 1420 int16_t vid_y /**< */, 1421 uint16_t vid_w /**< */, 1422 uint16_t vid_h /**< */, 1423 int16_t drw_x /**< */, 1424 int16_t drw_y /**< */, 1425 uint16_t drw_w /**< */, 1426 uint16_t drw_h /**< */) 1427 { 1428 static const xcb_protocol_request_t xcb_req = { 1429 /* count */ 2, 1430 /* ext */ &xcb_xv_id, 1431 /* opcode */ XCB_XV_PUT_STILL, 1432 /* isvoid */ 1 1433 }; 1434 1435 struct iovec xcb_parts[4]; 1436 xcb_void_cookie_t xcb_ret; 1437 xcb_xv_put_still_request_t xcb_out; 1438 1439 xcb_out.port = port; 1440 xcb_out.drawable = drawable; 1441 xcb_out.gc = gc; 1442 xcb_out.vid_x = vid_x; 1443 xcb_out.vid_y = vid_y; 1444 xcb_out.vid_w = vid_w; 1445 xcb_out.vid_h = vid_h; 1446 xcb_out.drw_x = drw_x; 1447 xcb_out.drw_y = drw_y; 1448 xcb_out.drw_w = drw_w; 1449 xcb_out.drw_h = drw_h; 1450 1451 xcb_parts[2].iov_base = (char *) &xcb_out; 1452 xcb_parts[2].iov_len = sizeof(xcb_out); 1453 xcb_parts[3].iov_base = 0; 1454 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1455 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1456 return xcb_ret; 1457 } 1458 1459 1460 /***************************************************************************** 1461 ** 1462 ** xcb_void_cookie_t xcb_xv_put_still 1463 ** 1464 ** @param xcb_connection_t *c 1465 ** @param xcb_xv_port_t port 1466 ** @param xcb_drawable_t drawable 1467 ** @param xcb_gcontext_t gc 1468 ** @param int16_t vid_x 1469 ** @param int16_t vid_y 1470 ** @param uint16_t vid_w 1471 ** @param uint16_t vid_h 1472 ** @param int16_t drw_x 1473 ** @param int16_t drw_y 1474 ** @param uint16_t drw_w 1475 ** @param uint16_t drw_h 1476 ** @returns xcb_void_cookie_t 1477 ** 1478 *****************************************************************************/ 1479 1480 xcb_void_cookie_t 1481 xcb_xv_put_still (xcb_connection_t *c /**< */, 1482 xcb_xv_port_t port /**< */, 1483 xcb_drawable_t drawable /**< */, 1484 xcb_gcontext_t gc /**< */, 1485 int16_t vid_x /**< */, 1486 int16_t vid_y /**< */, 1487 uint16_t vid_w /**< */, 1488 uint16_t vid_h /**< */, 1489 int16_t drw_x /**< */, 1490 int16_t drw_y /**< */, 1491 uint16_t drw_w /**< */, 1492 uint16_t drw_h /**< */) 1493 { 1494 static const xcb_protocol_request_t xcb_req = { 1495 /* count */ 2, 1496 /* ext */ &xcb_xv_id, 1497 /* opcode */ XCB_XV_PUT_STILL, 1498 /* isvoid */ 1 1499 }; 1500 1501 struct iovec xcb_parts[4]; 1502 xcb_void_cookie_t xcb_ret; 1503 xcb_xv_put_still_request_t xcb_out; 1504 1505 xcb_out.port = port; 1506 xcb_out.drawable = drawable; 1507 xcb_out.gc = gc; 1508 xcb_out.vid_x = vid_x; 1509 xcb_out.vid_y = vid_y; 1510 xcb_out.vid_w = vid_w; 1511 xcb_out.vid_h = vid_h; 1512 xcb_out.drw_x = drw_x; 1513 xcb_out.drw_y = drw_y; 1514 xcb_out.drw_w = drw_w; 1515 xcb_out.drw_h = drw_h; 1516 1517 xcb_parts[2].iov_base = (char *) &xcb_out; 1518 xcb_parts[2].iov_len = sizeof(xcb_out); 1519 xcb_parts[3].iov_base = 0; 1520 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1521 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1522 return xcb_ret; 1523 } 1524 1525 1526 /***************************************************************************** 1527 ** 1528 ** xcb_void_cookie_t xcb_xv_get_video_checked 1529 ** 1530 ** @param xcb_connection_t *c 1531 ** @param xcb_xv_port_t port 1532 ** @param xcb_drawable_t drawable 1533 ** @param xcb_gcontext_t gc 1534 ** @param int16_t vid_x 1535 ** @param int16_t vid_y 1536 ** @param uint16_t vid_w 1537 ** @param uint16_t vid_h 1538 ** @param int16_t drw_x 1539 ** @param int16_t drw_y 1540 ** @param uint16_t drw_w 1541 ** @param uint16_t drw_h 1542 ** @returns xcb_void_cookie_t 1543 ** 1544 *****************************************************************************/ 1545 1546 xcb_void_cookie_t 1547 xcb_xv_get_video_checked (xcb_connection_t *c /**< */, 1548 xcb_xv_port_t port /**< */, 1549 xcb_drawable_t drawable /**< */, 1550 xcb_gcontext_t gc /**< */, 1551 int16_t vid_x /**< */, 1552 int16_t vid_y /**< */, 1553 uint16_t vid_w /**< */, 1554 uint16_t vid_h /**< */, 1555 int16_t drw_x /**< */, 1556 int16_t drw_y /**< */, 1557 uint16_t drw_w /**< */, 1558 uint16_t drw_h /**< */) 1559 { 1560 static const xcb_protocol_request_t xcb_req = { 1561 /* count */ 2, 1562 /* ext */ &xcb_xv_id, 1563 /* opcode */ XCB_XV_GET_VIDEO, 1564 /* isvoid */ 1 1565 }; 1566 1567 struct iovec xcb_parts[4]; 1568 xcb_void_cookie_t xcb_ret; 1569 xcb_xv_get_video_request_t xcb_out; 1570 1571 xcb_out.port = port; 1572 xcb_out.drawable = drawable; 1573 xcb_out.gc = gc; 1574 xcb_out.vid_x = vid_x; 1575 xcb_out.vid_y = vid_y; 1576 xcb_out.vid_w = vid_w; 1577 xcb_out.vid_h = vid_h; 1578 xcb_out.drw_x = drw_x; 1579 xcb_out.drw_y = drw_y; 1580 xcb_out.drw_w = drw_w; 1581 xcb_out.drw_h = drw_h; 1582 1583 xcb_parts[2].iov_base = (char *) &xcb_out; 1584 xcb_parts[2].iov_len = sizeof(xcb_out); 1585 xcb_parts[3].iov_base = 0; 1586 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1587 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1588 return xcb_ret; 1589 } 1590 1591 1592 /***************************************************************************** 1593 ** 1594 ** xcb_void_cookie_t xcb_xv_get_video 1595 ** 1596 ** @param xcb_connection_t *c 1597 ** @param xcb_xv_port_t port 1598 ** @param xcb_drawable_t drawable 1599 ** @param xcb_gcontext_t gc 1600 ** @param int16_t vid_x 1601 ** @param int16_t vid_y 1602 ** @param uint16_t vid_w 1603 ** @param uint16_t vid_h 1604 ** @param int16_t drw_x 1605 ** @param int16_t drw_y 1606 ** @param uint16_t drw_w 1607 ** @param uint16_t drw_h 1608 ** @returns xcb_void_cookie_t 1609 ** 1610 *****************************************************************************/ 1611 1612 xcb_void_cookie_t 1613 xcb_xv_get_video (xcb_connection_t *c /**< */, 1614 xcb_xv_port_t port /**< */, 1615 xcb_drawable_t drawable /**< */, 1616 xcb_gcontext_t gc /**< */, 1617 int16_t vid_x /**< */, 1618 int16_t vid_y /**< */, 1619 uint16_t vid_w /**< */, 1620 uint16_t vid_h /**< */, 1621 int16_t drw_x /**< */, 1622 int16_t drw_y /**< */, 1623 uint16_t drw_w /**< */, 1624 uint16_t drw_h /**< */) 1625 { 1626 static const xcb_protocol_request_t xcb_req = { 1627 /* count */ 2, 1628 /* ext */ &xcb_xv_id, 1629 /* opcode */ XCB_XV_GET_VIDEO, 1630 /* isvoid */ 1 1631 }; 1632 1633 struct iovec xcb_parts[4]; 1634 xcb_void_cookie_t xcb_ret; 1635 xcb_xv_get_video_request_t xcb_out; 1636 1637 xcb_out.port = port; 1638 xcb_out.drawable = drawable; 1639 xcb_out.gc = gc; 1640 xcb_out.vid_x = vid_x; 1641 xcb_out.vid_y = vid_y; 1642 xcb_out.vid_w = vid_w; 1643 xcb_out.vid_h = vid_h; 1644 xcb_out.drw_x = drw_x; 1645 xcb_out.drw_y = drw_y; 1646 xcb_out.drw_w = drw_w; 1647 xcb_out.drw_h = drw_h; 1648 1649 xcb_parts[2].iov_base = (char *) &xcb_out; 1650 xcb_parts[2].iov_len = sizeof(xcb_out); 1651 xcb_parts[3].iov_base = 0; 1652 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1653 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1654 return xcb_ret; 1655 } 1656 1657 1658 /***************************************************************************** 1659 ** 1660 ** xcb_void_cookie_t xcb_xv_get_still_checked 1661 ** 1662 ** @param xcb_connection_t *c 1663 ** @param xcb_xv_port_t port 1664 ** @param xcb_drawable_t drawable 1665 ** @param xcb_gcontext_t gc 1666 ** @param int16_t vid_x 1667 ** @param int16_t vid_y 1668 ** @param uint16_t vid_w 1669 ** @param uint16_t vid_h 1670 ** @param int16_t drw_x 1671 ** @param int16_t drw_y 1672 ** @param uint16_t drw_w 1673 ** @param uint16_t drw_h 1674 ** @returns xcb_void_cookie_t 1675 ** 1676 *****************************************************************************/ 1677 1678 xcb_void_cookie_t 1679 xcb_xv_get_still_checked (xcb_connection_t *c /**< */, 1680 xcb_xv_port_t port /**< */, 1681 xcb_drawable_t drawable /**< */, 1682 xcb_gcontext_t gc /**< */, 1683 int16_t vid_x /**< */, 1684 int16_t vid_y /**< */, 1685 uint16_t vid_w /**< */, 1686 uint16_t vid_h /**< */, 1687 int16_t drw_x /**< */, 1688 int16_t drw_y /**< */, 1689 uint16_t drw_w /**< */, 1690 uint16_t drw_h /**< */) 1691 { 1692 static const xcb_protocol_request_t xcb_req = { 1693 /* count */ 2, 1694 /* ext */ &xcb_xv_id, 1695 /* opcode */ XCB_XV_GET_STILL, 1696 /* isvoid */ 1 1697 }; 1698 1699 struct iovec xcb_parts[4]; 1700 xcb_void_cookie_t xcb_ret; 1701 xcb_xv_get_still_request_t xcb_out; 1702 1703 xcb_out.port = port; 1704 xcb_out.drawable = drawable; 1705 xcb_out.gc = gc; 1706 xcb_out.vid_x = vid_x; 1707 xcb_out.vid_y = vid_y; 1708 xcb_out.vid_w = vid_w; 1709 xcb_out.vid_h = vid_h; 1710 xcb_out.drw_x = drw_x; 1711 xcb_out.drw_y = drw_y; 1712 xcb_out.drw_w = drw_w; 1713 xcb_out.drw_h = drw_h; 1714 1715 xcb_parts[2].iov_base = (char *) &xcb_out; 1716 xcb_parts[2].iov_len = sizeof(xcb_out); 1717 xcb_parts[3].iov_base = 0; 1718 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1719 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1720 return xcb_ret; 1721 } 1722 1723 1724 /***************************************************************************** 1725 ** 1726 ** xcb_void_cookie_t xcb_xv_get_still 1727 ** 1728 ** @param xcb_connection_t *c 1729 ** @param xcb_xv_port_t port 1730 ** @param xcb_drawable_t drawable 1731 ** @param xcb_gcontext_t gc 1732 ** @param int16_t vid_x 1733 ** @param int16_t vid_y 1734 ** @param uint16_t vid_w 1735 ** @param uint16_t vid_h 1736 ** @param int16_t drw_x 1737 ** @param int16_t drw_y 1738 ** @param uint16_t drw_w 1739 ** @param uint16_t drw_h 1740 ** @returns xcb_void_cookie_t 1741 ** 1742 *****************************************************************************/ 1743 1744 xcb_void_cookie_t 1745 xcb_xv_get_still (xcb_connection_t *c /**< */, 1746 xcb_xv_port_t port /**< */, 1747 xcb_drawable_t drawable /**< */, 1748 xcb_gcontext_t gc /**< */, 1749 int16_t vid_x /**< */, 1750 int16_t vid_y /**< */, 1751 uint16_t vid_w /**< */, 1752 uint16_t vid_h /**< */, 1753 int16_t drw_x /**< */, 1754 int16_t drw_y /**< */, 1755 uint16_t drw_w /**< */, 1756 uint16_t drw_h /**< */) 1757 { 1758 static const xcb_protocol_request_t xcb_req = { 1759 /* count */ 2, 1760 /* ext */ &xcb_xv_id, 1761 /* opcode */ XCB_XV_GET_STILL, 1762 /* isvoid */ 1 1763 }; 1764 1765 struct iovec xcb_parts[4]; 1766 xcb_void_cookie_t xcb_ret; 1767 xcb_xv_get_still_request_t xcb_out; 1768 1769 xcb_out.port = port; 1770 xcb_out.drawable = drawable; 1771 xcb_out.gc = gc; 1772 xcb_out.vid_x = vid_x; 1773 xcb_out.vid_y = vid_y; 1774 xcb_out.vid_w = vid_w; 1775 xcb_out.vid_h = vid_h; 1776 xcb_out.drw_x = drw_x; 1777 xcb_out.drw_y = drw_y; 1778 xcb_out.drw_w = drw_w; 1779 xcb_out.drw_h = drw_h; 1780 1781 xcb_parts[2].iov_base = (char *) &xcb_out; 1782 xcb_parts[2].iov_len = sizeof(xcb_out); 1783 xcb_parts[3].iov_base = 0; 1784 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1785 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1786 return xcb_ret; 1787 } 1788 1789 1790 /***************************************************************************** 1791 ** 1792 ** xcb_void_cookie_t xcb_xv_stop_video_checked 1793 ** 1794 ** @param xcb_connection_t *c 1795 ** @param xcb_xv_port_t port 1796 ** @param xcb_drawable_t drawable 1797 ** @returns xcb_void_cookie_t 1798 ** 1799 *****************************************************************************/ 1800 1801 xcb_void_cookie_t 1802 xcb_xv_stop_video_checked (xcb_connection_t *c /**< */, 1803 xcb_xv_port_t port /**< */, 1804 xcb_drawable_t drawable /**< */) 1805 { 1806 static const xcb_protocol_request_t xcb_req = { 1807 /* count */ 2, 1808 /* ext */ &xcb_xv_id, 1809 /* opcode */ XCB_XV_STOP_VIDEO, 1810 /* isvoid */ 1 1811 }; 1812 1813 struct iovec xcb_parts[4]; 1814 xcb_void_cookie_t xcb_ret; 1815 xcb_xv_stop_video_request_t xcb_out; 1816 1817 xcb_out.port = port; 1818 xcb_out.drawable = drawable; 1819 1820 xcb_parts[2].iov_base = (char *) &xcb_out; 1821 xcb_parts[2].iov_len = sizeof(xcb_out); 1822 xcb_parts[3].iov_base = 0; 1823 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1824 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1825 return xcb_ret; 1826 } 1827 1828 1829 /***************************************************************************** 1830 ** 1831 ** xcb_void_cookie_t xcb_xv_stop_video 1832 ** 1833 ** @param xcb_connection_t *c 1834 ** @param xcb_xv_port_t port 1835 ** @param xcb_drawable_t drawable 1836 ** @returns xcb_void_cookie_t 1837 ** 1838 *****************************************************************************/ 1839 1840 xcb_void_cookie_t 1841 xcb_xv_stop_video (xcb_connection_t *c /**< */, 1842 xcb_xv_port_t port /**< */, 1843 xcb_drawable_t drawable /**< */) 1844 { 1845 static const xcb_protocol_request_t xcb_req = { 1846 /* count */ 2, 1847 /* ext */ &xcb_xv_id, 1848 /* opcode */ XCB_XV_STOP_VIDEO, 1849 /* isvoid */ 1 1850 }; 1851 1852 struct iovec xcb_parts[4]; 1853 xcb_void_cookie_t xcb_ret; 1854 xcb_xv_stop_video_request_t xcb_out; 1855 1856 xcb_out.port = port; 1857 xcb_out.drawable = drawable; 1858 1859 xcb_parts[2].iov_base = (char *) &xcb_out; 1860 xcb_parts[2].iov_len = sizeof(xcb_out); 1861 xcb_parts[3].iov_base = 0; 1862 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1863 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1864 return xcb_ret; 1865 } 1866 1867 1868 /***************************************************************************** 1869 ** 1870 ** xcb_void_cookie_t xcb_xv_select_video_notify_checked 1871 ** 1872 ** @param xcb_connection_t *c 1873 ** @param xcb_drawable_t drawable 1874 ** @param uint8_t onoff 1875 ** @returns xcb_void_cookie_t 1876 ** 1877 *****************************************************************************/ 1878 1879 xcb_void_cookie_t 1880 xcb_xv_select_video_notify_checked (xcb_connection_t *c /**< */, 1881 xcb_drawable_t drawable /**< */, 1882 uint8_t onoff /**< */) 1883 { 1884 static const xcb_protocol_request_t xcb_req = { 1885 /* count */ 2, 1886 /* ext */ &xcb_xv_id, 1887 /* opcode */ XCB_XV_SELECT_VIDEO_NOTIFY, 1888 /* isvoid */ 1 1889 }; 1890 1891 struct iovec xcb_parts[4]; 1892 xcb_void_cookie_t xcb_ret; 1893 xcb_xv_select_video_notify_request_t xcb_out; 1894 1895 xcb_out.drawable = drawable; 1896 xcb_out.onoff = onoff; 1897 memset(xcb_out.pad0, 0, 3); 1898 1899 xcb_parts[2].iov_base = (char *) &xcb_out; 1900 xcb_parts[2].iov_len = sizeof(xcb_out); 1901 xcb_parts[3].iov_base = 0; 1902 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1903 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1904 return xcb_ret; 1905 } 1906 1907 1908 /***************************************************************************** 1909 ** 1910 ** xcb_void_cookie_t xcb_xv_select_video_notify 1911 ** 1912 ** @param xcb_connection_t *c 1913 ** @param xcb_drawable_t drawable 1914 ** @param uint8_t onoff 1915 ** @returns xcb_void_cookie_t 1916 ** 1917 *****************************************************************************/ 1918 1919 xcb_void_cookie_t 1920 xcb_xv_select_video_notify (xcb_connection_t *c /**< */, 1921 xcb_drawable_t drawable /**< */, 1922 uint8_t onoff /**< */) 1923 { 1924 static const xcb_protocol_request_t xcb_req = { 1925 /* count */ 2, 1926 /* ext */ &xcb_xv_id, 1927 /* opcode */ XCB_XV_SELECT_VIDEO_NOTIFY, 1928 /* isvoid */ 1 1929 }; 1930 1931 struct iovec xcb_parts[4]; 1932 xcb_void_cookie_t xcb_ret; 1933 xcb_xv_select_video_notify_request_t xcb_out; 1934 1935 xcb_out.drawable = drawable; 1936 xcb_out.onoff = onoff; 1937 memset(xcb_out.pad0, 0, 3); 1938 1939 xcb_parts[2].iov_base = (char *) &xcb_out; 1940 xcb_parts[2].iov_len = sizeof(xcb_out); 1941 xcb_parts[3].iov_base = 0; 1942 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1943 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1944 return xcb_ret; 1945 } 1946 1947 1948 /***************************************************************************** 1949 ** 1950 ** xcb_void_cookie_t xcb_xv_select_port_notify_checked 1951 ** 1952 ** @param xcb_connection_t *c 1953 ** @param xcb_xv_port_t port 1954 ** @param uint8_t onoff 1955 ** @returns xcb_void_cookie_t 1956 ** 1957 *****************************************************************************/ 1958 1959 xcb_void_cookie_t 1960 xcb_xv_select_port_notify_checked (xcb_connection_t *c /**< */, 1961 xcb_xv_port_t port /**< */, 1962 uint8_t onoff /**< */) 1963 { 1964 static const xcb_protocol_request_t xcb_req = { 1965 /* count */ 2, 1966 /* ext */ &xcb_xv_id, 1967 /* opcode */ XCB_XV_SELECT_PORT_NOTIFY, 1968 /* isvoid */ 1 1969 }; 1970 1971 struct iovec xcb_parts[4]; 1972 xcb_void_cookie_t xcb_ret; 1973 xcb_xv_select_port_notify_request_t xcb_out; 1974 1975 xcb_out.port = port; 1976 xcb_out.onoff = onoff; 1977 memset(xcb_out.pad0, 0, 3); 1978 1979 xcb_parts[2].iov_base = (char *) &xcb_out; 1980 xcb_parts[2].iov_len = sizeof(xcb_out); 1981 xcb_parts[3].iov_base = 0; 1982 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1983 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1984 return xcb_ret; 1985 } 1986 1987 1988 /***************************************************************************** 1989 ** 1990 ** xcb_void_cookie_t xcb_xv_select_port_notify 1991 ** 1992 ** @param xcb_connection_t *c 1993 ** @param xcb_xv_port_t port 1994 ** @param uint8_t onoff 1995 ** @returns xcb_void_cookie_t 1996 ** 1997 *****************************************************************************/ 1998 1999 xcb_void_cookie_t 2000 xcb_xv_select_port_notify (xcb_connection_t *c /**< */, 2001 xcb_xv_port_t port /**< */, 2002 uint8_t onoff /**< */) 2003 { 2004 static const xcb_protocol_request_t xcb_req = { 2005 /* count */ 2, 2006 /* ext */ &xcb_xv_id, 2007 /* opcode */ XCB_XV_SELECT_PORT_NOTIFY, 2008 /* isvoid */ 1 2009 }; 2010 2011 struct iovec xcb_parts[4]; 2012 xcb_void_cookie_t xcb_ret; 2013 xcb_xv_select_port_notify_request_t xcb_out; 2014 2015 xcb_out.port = port; 2016 xcb_out.onoff = onoff; 2017 memset(xcb_out.pad0, 0, 3); 2018 2019 xcb_parts[2].iov_base = (char *) &xcb_out; 2020 xcb_parts[2].iov_len = sizeof(xcb_out); 2021 xcb_parts[3].iov_base = 0; 2022 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2023 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2024 return xcb_ret; 2025 } 2026 2027 2028 /***************************************************************************** 2029 ** 2030 ** xcb_xv_query_best_size_cookie_t xcb_xv_query_best_size 2031 ** 2032 ** @param xcb_connection_t *c 2033 ** @param xcb_xv_port_t port 2034 ** @param uint16_t vid_w 2035 ** @param uint16_t vid_h 2036 ** @param uint16_t drw_w 2037 ** @param uint16_t drw_h 2038 ** @param uint8_t motion 2039 ** @returns xcb_xv_query_best_size_cookie_t 2040 ** 2041 *****************************************************************************/ 2042 2043 xcb_xv_query_best_size_cookie_t 2044 xcb_xv_query_best_size (xcb_connection_t *c /**< */, 2045 xcb_xv_port_t port /**< */, 2046 uint16_t vid_w /**< */, 2047 uint16_t vid_h /**< */, 2048 uint16_t drw_w /**< */, 2049 uint16_t drw_h /**< */, 2050 uint8_t motion /**< */) 2051 { 2052 static const xcb_protocol_request_t xcb_req = { 2053 /* count */ 2, 2054 /* ext */ &xcb_xv_id, 2055 /* opcode */ XCB_XV_QUERY_BEST_SIZE, 2056 /* isvoid */ 0 2057 }; 2058 2059 struct iovec xcb_parts[4]; 2060 xcb_xv_query_best_size_cookie_t xcb_ret; 2061 xcb_xv_query_best_size_request_t xcb_out; 2062 2063 xcb_out.port = port; 2064 xcb_out.vid_w = vid_w; 2065 xcb_out.vid_h = vid_h; 2066 xcb_out.drw_w = drw_w; 2067 xcb_out.drw_h = drw_h; 2068 xcb_out.motion = motion; 2069 memset(xcb_out.pad0, 0, 3); 2070 2071 xcb_parts[2].iov_base = (char *) &xcb_out; 2072 xcb_parts[2].iov_len = sizeof(xcb_out); 2073 xcb_parts[3].iov_base = 0; 2074 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2075 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2076 return xcb_ret; 2077 } 2078 2079 2080 /***************************************************************************** 2081 ** 2082 ** xcb_xv_query_best_size_cookie_t xcb_xv_query_best_size_unchecked 2083 ** 2084 ** @param xcb_connection_t *c 2085 ** @param xcb_xv_port_t port 2086 ** @param uint16_t vid_w 2087 ** @param uint16_t vid_h 2088 ** @param uint16_t drw_w 2089 ** @param uint16_t drw_h 2090 ** @param uint8_t motion 2091 ** @returns xcb_xv_query_best_size_cookie_t 2092 ** 2093 *****************************************************************************/ 2094 2095 xcb_xv_query_best_size_cookie_t 2096 xcb_xv_query_best_size_unchecked (xcb_connection_t *c /**< */, 2097 xcb_xv_port_t port /**< */, 2098 uint16_t vid_w /**< */, 2099 uint16_t vid_h /**< */, 2100 uint16_t drw_w /**< */, 2101 uint16_t drw_h /**< */, 2102 uint8_t motion /**< */) 2103 { 2104 static const xcb_protocol_request_t xcb_req = { 2105 /* count */ 2, 2106 /* ext */ &xcb_xv_id, 2107 /* opcode */ XCB_XV_QUERY_BEST_SIZE, 2108 /* isvoid */ 0 2109 }; 2110 2111 struct iovec xcb_parts[4]; 2112 xcb_xv_query_best_size_cookie_t xcb_ret; 2113 xcb_xv_query_best_size_request_t xcb_out; 2114 2115 xcb_out.port = port; 2116 xcb_out.vid_w = vid_w; 2117 xcb_out.vid_h = vid_h; 2118 xcb_out.drw_w = drw_w; 2119 xcb_out.drw_h = drw_h; 2120 xcb_out.motion = motion; 2121 memset(xcb_out.pad0, 0, 3); 2122 2123 xcb_parts[2].iov_base = (char *) &xcb_out; 2124 xcb_parts[2].iov_len = sizeof(xcb_out); 2125 xcb_parts[3].iov_base = 0; 2126 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2127 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2128 return xcb_ret; 2129 } 2130 2131 2132 /***************************************************************************** 2133 ** 2134 ** xcb_xv_query_best_size_reply_t * xcb_xv_query_best_size_reply 2135 ** 2136 ** @param xcb_connection_t *c 2137 ** @param xcb_xv_query_best_size_cookie_t cookie 2138 ** @param xcb_generic_error_t **e 2139 ** @returns xcb_xv_query_best_size_reply_t * 2140 ** 2141 *****************************************************************************/ 2142 2143 xcb_xv_query_best_size_reply_t * 2144 xcb_xv_query_best_size_reply (xcb_connection_t *c /**< */, 2145 xcb_xv_query_best_size_cookie_t cookie /**< */, 2146 xcb_generic_error_t **e /**< */) 2147 { 2148 return (xcb_xv_query_best_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2149 } 2150 2151 2152 /***************************************************************************** 2153 ** 2154 ** xcb_void_cookie_t xcb_xv_set_port_attribute_checked 2155 ** 2156 ** @param xcb_connection_t *c 2157 ** @param xcb_xv_port_t port 2158 ** @param xcb_atom_t attribute 2159 ** @param int32_t value 2160 ** @returns xcb_void_cookie_t 2161 ** 2162 *****************************************************************************/ 2163 2164 xcb_void_cookie_t 2165 xcb_xv_set_port_attribute_checked (xcb_connection_t *c /**< */, 2166 xcb_xv_port_t port /**< */, 2167 xcb_atom_t attribute /**< */, 2168 int32_t value /**< */) 2169 { 2170 static const xcb_protocol_request_t xcb_req = { 2171 /* count */ 2, 2172 /* ext */ &xcb_xv_id, 2173 /* opcode */ XCB_XV_SET_PORT_ATTRIBUTE, 2174 /* isvoid */ 1 2175 }; 2176 2177 struct iovec xcb_parts[4]; 2178 xcb_void_cookie_t xcb_ret; 2179 xcb_xv_set_port_attribute_request_t xcb_out; 2180 2181 xcb_out.port = port; 2182 xcb_out.attribute = attribute; 2183 xcb_out.value = value; 2184 2185 xcb_parts[2].iov_base = (char *) &xcb_out; 2186 xcb_parts[2].iov_len = sizeof(xcb_out); 2187 xcb_parts[3].iov_base = 0; 2188 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2189 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2190 return xcb_ret; 2191 } 2192 2193 2194 /***************************************************************************** 2195 ** 2196 ** xcb_void_cookie_t xcb_xv_set_port_attribute 2197 ** 2198 ** @param xcb_connection_t *c 2199 ** @param xcb_xv_port_t port 2200 ** @param xcb_atom_t attribute 2201 ** @param int32_t value 2202 ** @returns xcb_void_cookie_t 2203 ** 2204 *****************************************************************************/ 2205 2206 xcb_void_cookie_t 2207 xcb_xv_set_port_attribute (xcb_connection_t *c /**< */, 2208 xcb_xv_port_t port /**< */, 2209 xcb_atom_t attribute /**< */, 2210 int32_t value /**< */) 2211 { 2212 static const xcb_protocol_request_t xcb_req = { 2213 /* count */ 2, 2214 /* ext */ &xcb_xv_id, 2215 /* opcode */ XCB_XV_SET_PORT_ATTRIBUTE, 2216 /* isvoid */ 1 2217 }; 2218 2219 struct iovec xcb_parts[4]; 2220 xcb_void_cookie_t xcb_ret; 2221 xcb_xv_set_port_attribute_request_t xcb_out; 2222 2223 xcb_out.port = port; 2224 xcb_out.attribute = attribute; 2225 xcb_out.value = value; 2226 2227 xcb_parts[2].iov_base = (char *) &xcb_out; 2228 xcb_parts[2].iov_len = sizeof(xcb_out); 2229 xcb_parts[3].iov_base = 0; 2230 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2231 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2232 return xcb_ret; 2233 } 2234 2235 2236 /***************************************************************************** 2237 ** 2238 ** xcb_xv_get_port_attribute_cookie_t xcb_xv_get_port_attribute 2239 ** 2240 ** @param xcb_connection_t *c 2241 ** @param xcb_xv_port_t port 2242 ** @param xcb_atom_t attribute 2243 ** @returns xcb_xv_get_port_attribute_cookie_t 2244 ** 2245 *****************************************************************************/ 2246 2247 xcb_xv_get_port_attribute_cookie_t 2248 xcb_xv_get_port_attribute (xcb_connection_t *c /**< */, 2249 xcb_xv_port_t port /**< */, 2250 xcb_atom_t attribute /**< */) 2251 { 2252 static const xcb_protocol_request_t xcb_req = { 2253 /* count */ 2, 2254 /* ext */ &xcb_xv_id, 2255 /* opcode */ XCB_XV_GET_PORT_ATTRIBUTE, 2256 /* isvoid */ 0 2257 }; 2258 2259 struct iovec xcb_parts[4]; 2260 xcb_xv_get_port_attribute_cookie_t xcb_ret; 2261 xcb_xv_get_port_attribute_request_t xcb_out; 2262 2263 xcb_out.port = port; 2264 xcb_out.attribute = attribute; 2265 2266 xcb_parts[2].iov_base = (char *) &xcb_out; 2267 xcb_parts[2].iov_len = sizeof(xcb_out); 2268 xcb_parts[3].iov_base = 0; 2269 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2270 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2271 return xcb_ret; 2272 } 2273 2274 2275 /***************************************************************************** 2276 ** 2277 ** xcb_xv_get_port_attribute_cookie_t xcb_xv_get_port_attribute_unchecked 2278 ** 2279 ** @param xcb_connection_t *c 2280 ** @param xcb_xv_port_t port 2281 ** @param xcb_atom_t attribute 2282 ** @returns xcb_xv_get_port_attribute_cookie_t 2283 ** 2284 *****************************************************************************/ 2285 2286 xcb_xv_get_port_attribute_cookie_t 2287 xcb_xv_get_port_attribute_unchecked (xcb_connection_t *c /**< */, 2288 xcb_xv_port_t port /**< */, 2289 xcb_atom_t attribute /**< */) 2290 { 2291 static const xcb_protocol_request_t xcb_req = { 2292 /* count */ 2, 2293 /* ext */ &xcb_xv_id, 2294 /* opcode */ XCB_XV_GET_PORT_ATTRIBUTE, 2295 /* isvoid */ 0 2296 }; 2297 2298 struct iovec xcb_parts[4]; 2299 xcb_xv_get_port_attribute_cookie_t xcb_ret; 2300 xcb_xv_get_port_attribute_request_t xcb_out; 2301 2302 xcb_out.port = port; 2303 xcb_out.attribute = attribute; 2304 2305 xcb_parts[2].iov_base = (char *) &xcb_out; 2306 xcb_parts[2].iov_len = sizeof(xcb_out); 2307 xcb_parts[3].iov_base = 0; 2308 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2309 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2310 return xcb_ret; 2311 } 2312 2313 2314 /***************************************************************************** 2315 ** 2316 ** xcb_xv_get_port_attribute_reply_t * xcb_xv_get_port_attribute_reply 2317 ** 2318 ** @param xcb_connection_t *c 2319 ** @param xcb_xv_get_port_attribute_cookie_t cookie 2320 ** @param xcb_generic_error_t **e 2321 ** @returns xcb_xv_get_port_attribute_reply_t * 2322 ** 2323 *****************************************************************************/ 2324 2325 xcb_xv_get_port_attribute_reply_t * 2326 xcb_xv_get_port_attribute_reply (xcb_connection_t *c /**< */, 2327 xcb_xv_get_port_attribute_cookie_t cookie /**< */, 2328 xcb_generic_error_t **e /**< */) 2329 { 2330 return (xcb_xv_get_port_attribute_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2331 } 2332 2333 2334 /***************************************************************************** 2335 ** 2336 ** xcb_xv_query_port_attributes_cookie_t xcb_xv_query_port_attributes 2337 ** 2338 ** @param xcb_connection_t *c 2339 ** @param xcb_xv_port_t port 2340 ** @returns xcb_xv_query_port_attributes_cookie_t 2341 ** 2342 *****************************************************************************/ 2343 2344 xcb_xv_query_port_attributes_cookie_t 2345 xcb_xv_query_port_attributes (xcb_connection_t *c /**< */, 2346 xcb_xv_port_t port /**< */) 2347 { 2348 static const xcb_protocol_request_t xcb_req = { 2349 /* count */ 2, 2350 /* ext */ &xcb_xv_id, 2351 /* opcode */ XCB_XV_QUERY_PORT_ATTRIBUTES, 2352 /* isvoid */ 0 2353 }; 2354 2355 struct iovec xcb_parts[4]; 2356 xcb_xv_query_port_attributes_cookie_t xcb_ret; 2357 xcb_xv_query_port_attributes_request_t xcb_out; 2358 2359 xcb_out.port = port; 2360 2361 xcb_parts[2].iov_base = (char *) &xcb_out; 2362 xcb_parts[2].iov_len = sizeof(xcb_out); 2363 xcb_parts[3].iov_base = 0; 2364 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2365 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2366 return xcb_ret; 2367 } 2368 2369 2370 /***************************************************************************** 2371 ** 2372 ** xcb_xv_query_port_attributes_cookie_t xcb_xv_query_port_attributes_unchecked 2373 ** 2374 ** @param xcb_connection_t *c 2375 ** @param xcb_xv_port_t port 2376 ** @returns xcb_xv_query_port_attributes_cookie_t 2377 ** 2378 *****************************************************************************/ 2379 2380 xcb_xv_query_port_attributes_cookie_t 2381 xcb_xv_query_port_attributes_unchecked (xcb_connection_t *c /**< */, 2382 xcb_xv_port_t port /**< */) 2383 { 2384 static const xcb_protocol_request_t xcb_req = { 2385 /* count */ 2, 2386 /* ext */ &xcb_xv_id, 2387 /* opcode */ XCB_XV_QUERY_PORT_ATTRIBUTES, 2388 /* isvoid */ 0 2389 }; 2390 2391 struct iovec xcb_parts[4]; 2392 xcb_xv_query_port_attributes_cookie_t xcb_ret; 2393 xcb_xv_query_port_attributes_request_t xcb_out; 2394 2395 xcb_out.port = port; 2396 2397 xcb_parts[2].iov_base = (char *) &xcb_out; 2398 xcb_parts[2].iov_len = sizeof(xcb_out); 2399 xcb_parts[3].iov_base = 0; 2400 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2401 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2402 return xcb_ret; 2403 } 2404 2405 2406 /***************************************************************************** 2407 ** 2408 ** int xcb_xv_query_port_attributes_attributes_length 2409 ** 2410 ** @param const xcb_xv_query_port_attributes_reply_t *R 2411 ** @returns int 2412 ** 2413 *****************************************************************************/ 2414 2415 int 2416 xcb_xv_query_port_attributes_attributes_length (const xcb_xv_query_port_attributes_reply_t *R /**< */) 2417 { 2418 return R->num_attributes; 2419 } 2420 2421 2422 /***************************************************************************** 2423 ** 2424 ** xcb_xv_attribute_info_iterator_t xcb_xv_query_port_attributes_attributes_iterator 2425 ** 2426 ** @param const xcb_xv_query_port_attributes_reply_t *R 2427 ** @returns xcb_xv_attribute_info_iterator_t 2428 ** 2429 *****************************************************************************/ 2430 2431 xcb_xv_attribute_info_iterator_t 2432 xcb_xv_query_port_attributes_attributes_iterator (const xcb_xv_query_port_attributes_reply_t *R /**< */) 2433 { 2434 xcb_xv_attribute_info_iterator_t i; 2435 i.data = (xcb_xv_attribute_info_t *) (R + 1); 2436 i.rem = R->num_attributes; 2437 i.index = (char *) i.data - (char *) R; 2438 return i; 2439 } 2440 2441 2442 /***************************************************************************** 2443 ** 2444 ** xcb_xv_query_port_attributes_reply_t * xcb_xv_query_port_attributes_reply 2445 ** 2446 ** @param xcb_connection_t *c 2447 ** @param xcb_xv_query_port_attributes_cookie_t cookie 2448 ** @param xcb_generic_error_t **e 2449 ** @returns xcb_xv_query_port_attributes_reply_t * 2450 ** 2451 *****************************************************************************/ 2452 2453 xcb_xv_query_port_attributes_reply_t * 2454 xcb_xv_query_port_attributes_reply (xcb_connection_t *c /**< */, 2455 xcb_xv_query_port_attributes_cookie_t cookie /**< */, 2456 xcb_generic_error_t **e /**< */) 2457 { 2458 return (xcb_xv_query_port_attributes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2459 } 2460 2461 2462 /***************************************************************************** 2463 ** 2464 ** xcb_xv_list_image_formats_cookie_t xcb_xv_list_image_formats 2465 ** 2466 ** @param xcb_connection_t *c 2467 ** @param xcb_xv_port_t port 2468 ** @returns xcb_xv_list_image_formats_cookie_t 2469 ** 2470 *****************************************************************************/ 2471 2472 xcb_xv_list_image_formats_cookie_t 2473 xcb_xv_list_image_formats (xcb_connection_t *c /**< */, 2474 xcb_xv_port_t port /**< */) 2475 { 2476 static const xcb_protocol_request_t xcb_req = { 2477 /* count */ 2, 2478 /* ext */ &xcb_xv_id, 2479 /* opcode */ XCB_XV_LIST_IMAGE_FORMATS, 2480 /* isvoid */ 0 2481 }; 2482 2483 struct iovec xcb_parts[4]; 2484 xcb_xv_list_image_formats_cookie_t xcb_ret; 2485 xcb_xv_list_image_formats_request_t xcb_out; 2486 2487 xcb_out.port = port; 2488 2489 xcb_parts[2].iov_base = (char *) &xcb_out; 2490 xcb_parts[2].iov_len = sizeof(xcb_out); 2491 xcb_parts[3].iov_base = 0; 2492 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2493 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2494 return xcb_ret; 2495 } 2496 2497 2498 /***************************************************************************** 2499 ** 2500 ** xcb_xv_list_image_formats_cookie_t xcb_xv_list_image_formats_unchecked 2501 ** 2502 ** @param xcb_connection_t *c 2503 ** @param xcb_xv_port_t port 2504 ** @returns xcb_xv_list_image_formats_cookie_t 2505 ** 2506 *****************************************************************************/ 2507 2508 xcb_xv_list_image_formats_cookie_t 2509 xcb_xv_list_image_formats_unchecked (xcb_connection_t *c /**< */, 2510 xcb_xv_port_t port /**< */) 2511 { 2512 static const xcb_protocol_request_t xcb_req = { 2513 /* count */ 2, 2514 /* ext */ &xcb_xv_id, 2515 /* opcode */ XCB_XV_LIST_IMAGE_FORMATS, 2516 /* isvoid */ 0 2517 }; 2518 2519 struct iovec xcb_parts[4]; 2520 xcb_xv_list_image_formats_cookie_t xcb_ret; 2521 xcb_xv_list_image_formats_request_t xcb_out; 2522 2523 xcb_out.port = port; 2524 2525 xcb_parts[2].iov_base = (char *) &xcb_out; 2526 xcb_parts[2].iov_len = sizeof(xcb_out); 2527 xcb_parts[3].iov_base = 0; 2528 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2529 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2530 return xcb_ret; 2531 } 2532 2533 2534 /***************************************************************************** 2535 ** 2536 ** xcb_xv_image_format_info_t * xcb_xv_list_image_formats_format 2537 ** 2538 ** @param const xcb_xv_list_image_formats_reply_t *R 2539 ** @returns xcb_xv_image_format_info_t * 2540 ** 2541 *****************************************************************************/ 2542 2543 xcb_xv_image_format_info_t * 2544 xcb_xv_list_image_formats_format (const xcb_xv_list_image_formats_reply_t *R /**< */) 2545 { 2546 return (xcb_xv_image_format_info_t *) (R + 1); 2547 } 2548 2549 2550 /***************************************************************************** 2551 ** 2552 ** int xcb_xv_list_image_formats_format_length 2553 ** 2554 ** @param const xcb_xv_list_image_formats_reply_t *R 2555 ** @returns int 2556 ** 2557 *****************************************************************************/ 2558 2559 int 2560 xcb_xv_list_image_formats_format_length (const xcb_xv_list_image_formats_reply_t *R /**< */) 2561 { 2562 return R->num_formats; 2563 } 2564 2565 2566 /***************************************************************************** 2567 ** 2568 ** xcb_xv_image_format_info_iterator_t xcb_xv_list_image_formats_format_iterator 2569 ** 2570 ** @param const xcb_xv_list_image_formats_reply_t *R 2571 ** @returns xcb_xv_image_format_info_iterator_t 2572 ** 2573 *****************************************************************************/ 2574 2575 xcb_xv_image_format_info_iterator_t 2576 xcb_xv_list_image_formats_format_iterator (const xcb_xv_list_image_formats_reply_t *R /**< */) 2577 { 2578 xcb_xv_image_format_info_iterator_t i; 2579 i.data = (xcb_xv_image_format_info_t *) (R + 1); 2580 i.rem = R->num_formats; 2581 i.index = (char *) i.data - (char *) R; 2582 return i; 2583 } 2584 2585 2586 /***************************************************************************** 2587 ** 2588 ** xcb_xv_list_image_formats_reply_t * xcb_xv_list_image_formats_reply 2589 ** 2590 ** @param xcb_connection_t *c 2591 ** @param xcb_xv_list_image_formats_cookie_t cookie 2592 ** @param xcb_generic_error_t **e 2593 ** @returns xcb_xv_list_image_formats_reply_t * 2594 ** 2595 *****************************************************************************/ 2596 2597 xcb_xv_list_image_formats_reply_t * 2598 xcb_xv_list_image_formats_reply (xcb_connection_t *c /**< */, 2599 xcb_xv_list_image_formats_cookie_t cookie /**< */, 2600 xcb_generic_error_t **e /**< */) 2601 { 2602 return (xcb_xv_list_image_formats_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2603 } 2604 2605 2606 /***************************************************************************** 2607 ** 2608 ** xcb_xv_query_image_attributes_cookie_t xcb_xv_query_image_attributes 2609 ** 2610 ** @param xcb_connection_t *c 2611 ** @param xcb_xv_port_t port 2612 ** @param uint32_t id 2613 ** @param uint16_t width 2614 ** @param uint16_t height 2615 ** @returns xcb_xv_query_image_attributes_cookie_t 2616 ** 2617 *****************************************************************************/ 2618 2619 xcb_xv_query_image_attributes_cookie_t 2620 xcb_xv_query_image_attributes (xcb_connection_t *c /**< */, 2621 xcb_xv_port_t port /**< */, 2622 uint32_t id /**< */, 2623 uint16_t width /**< */, 2624 uint16_t height /**< */) 2625 { 2626 static const xcb_protocol_request_t xcb_req = { 2627 /* count */ 2, 2628 /* ext */ &xcb_xv_id, 2629 /* opcode */ XCB_XV_QUERY_IMAGE_ATTRIBUTES, 2630 /* isvoid */ 0 2631 }; 2632 2633 struct iovec xcb_parts[4]; 2634 xcb_xv_query_image_attributes_cookie_t xcb_ret; 2635 xcb_xv_query_image_attributes_request_t xcb_out; 2636 2637 xcb_out.port = port; 2638 xcb_out.id = id; 2639 xcb_out.width = width; 2640 xcb_out.height = height; 2641 2642 xcb_parts[2].iov_base = (char *) &xcb_out; 2643 xcb_parts[2].iov_len = sizeof(xcb_out); 2644 xcb_parts[3].iov_base = 0; 2645 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2646 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2647 return xcb_ret; 2648 } 2649 2650 2651 /***************************************************************************** 2652 ** 2653 ** xcb_xv_query_image_attributes_cookie_t xcb_xv_query_image_attributes_unchecked 2654 ** 2655 ** @param xcb_connection_t *c 2656 ** @param xcb_xv_port_t port 2657 ** @param uint32_t id 2658 ** @param uint16_t width 2659 ** @param uint16_t height 2660 ** @returns xcb_xv_query_image_attributes_cookie_t 2661 ** 2662 *****************************************************************************/ 2663 2664 xcb_xv_query_image_attributes_cookie_t 2665 xcb_xv_query_image_attributes_unchecked (xcb_connection_t *c /**< */, 2666 xcb_xv_port_t port /**< */, 2667 uint32_t id /**< */, 2668 uint16_t width /**< */, 2669 uint16_t height /**< */) 2670 { 2671 static const xcb_protocol_request_t xcb_req = { 2672 /* count */ 2, 2673 /* ext */ &xcb_xv_id, 2674 /* opcode */ XCB_XV_QUERY_IMAGE_ATTRIBUTES, 2675 /* isvoid */ 0 2676 }; 2677 2678 struct iovec xcb_parts[4]; 2679 xcb_xv_query_image_attributes_cookie_t xcb_ret; 2680 xcb_xv_query_image_attributes_request_t xcb_out; 2681 2682 xcb_out.port = port; 2683 xcb_out.id = id; 2684 xcb_out.width = width; 2685 xcb_out.height = height; 2686 2687 xcb_parts[2].iov_base = (char *) &xcb_out; 2688 xcb_parts[2].iov_len = sizeof(xcb_out); 2689 xcb_parts[3].iov_base = 0; 2690 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2691 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2692 return xcb_ret; 2693 } 2694 2695 2696 /***************************************************************************** 2697 ** 2698 ** uint32_t * xcb_xv_query_image_attributes_pitches 2699 ** 2700 ** @param const xcb_xv_query_image_attributes_reply_t *R 2701 ** @returns uint32_t * 2702 ** 2703 *****************************************************************************/ 2704 2705 uint32_t * 2706 xcb_xv_query_image_attributes_pitches (const xcb_xv_query_image_attributes_reply_t *R /**< */) 2707 { 2708 return (uint32_t *) (R + 1); 2709 } 2710 2711 2712 /***************************************************************************** 2713 ** 2714 ** int xcb_xv_query_image_attributes_pitches_length 2715 ** 2716 ** @param const xcb_xv_query_image_attributes_reply_t *R 2717 ** @returns int 2718 ** 2719 *****************************************************************************/ 2720 2721 int 2722 xcb_xv_query_image_attributes_pitches_length (const xcb_xv_query_image_attributes_reply_t *R /**< */) 2723 { 2724 return R->num_planes; 2725 } 2726 2727 2728 /***************************************************************************** 2729 ** 2730 ** xcb_generic_iterator_t xcb_xv_query_image_attributes_pitches_end 2731 ** 2732 ** @param const xcb_xv_query_image_attributes_reply_t *R 2733 ** @returns xcb_generic_iterator_t 2734 ** 2735 *****************************************************************************/ 2736 2737 xcb_generic_iterator_t 2738 xcb_xv_query_image_attributes_pitches_end (const xcb_xv_query_image_attributes_reply_t *R /**< */) 2739 { 2740 xcb_generic_iterator_t i; 2741 i.data = ((uint32_t *) (R + 1)) + (R->num_planes); 2742 i.rem = 0; 2743 i.index = (char *) i.data - (char *) R; 2744 return i; 2745 } 2746 2747 2748 /***************************************************************************** 2749 ** 2750 ** uint32_t * xcb_xv_query_image_attributes_offsets 2751 ** 2752 ** @param const xcb_xv_query_image_attributes_reply_t *R 2753 ** @returns uint32_t * 2754 ** 2755 *****************************************************************************/ 2756 2757 uint32_t * 2758 xcb_xv_query_image_attributes_offsets (const xcb_xv_query_image_attributes_reply_t *R /**< */) 2759 { 2760 xcb_generic_iterator_t prev = xcb_xv_query_image_attributes_pitches_end(R); 2761 return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); 2762 } 2763 2764 2765 /***************************************************************************** 2766 ** 2767 ** int xcb_xv_query_image_attributes_offsets_length 2768 ** 2769 ** @param const xcb_xv_query_image_attributes_reply_t *R 2770 ** @returns int 2771 ** 2772 *****************************************************************************/ 2773 2774 int 2775 xcb_xv_query_image_attributes_offsets_length (const xcb_xv_query_image_attributes_reply_t *R /**< */) 2776 { 2777 return R->num_planes; 2778 } 2779 2780 2781 /***************************************************************************** 2782 ** 2783 ** xcb_generic_iterator_t xcb_xv_query_image_attributes_offsets_end 2784 ** 2785 ** @param const xcb_xv_query_image_attributes_reply_t *R 2786 ** @returns xcb_generic_iterator_t 2787 ** 2788 *****************************************************************************/ 2789 2790 xcb_generic_iterator_t 2791 xcb_xv_query_image_attributes_offsets_end (const xcb_xv_query_image_attributes_reply_t *R /**< */) 2792 { 2793 xcb_generic_iterator_t i; 2794 xcb_generic_iterator_t child = xcb_xv_query_image_attributes_pitches_end(R); 2795 i.data = ((uint32_t *) child.data) + (R->num_planes); 2796 i.rem = 0; 2797 i.index = (char *) i.data - (char *) R; 2798 return i; 2799 } 2800 2801 2802 /***************************************************************************** 2803 ** 2804 ** xcb_xv_query_image_attributes_reply_t * xcb_xv_query_image_attributes_reply 2805 ** 2806 ** @param xcb_connection_t *c 2807 ** @param xcb_xv_query_image_attributes_cookie_t cookie 2808 ** @param xcb_generic_error_t **e 2809 ** @returns xcb_xv_query_image_attributes_reply_t * 2810 ** 2811 *****************************************************************************/ 2812 2813 xcb_xv_query_image_attributes_reply_t * 2814 xcb_xv_query_image_attributes_reply (xcb_connection_t *c /**< */, 2815 xcb_xv_query_image_attributes_cookie_t cookie /**< */, 2816 xcb_generic_error_t **e /**< */) 2817 { 2818 return (xcb_xv_query_image_attributes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 2819 } 2820 2821 2822 /***************************************************************************** 2823 ** 2824 ** xcb_void_cookie_t xcb_xv_put_image_checked 2825 ** 2826 ** @param xcb_connection_t *c 2827 ** @param xcb_xv_port_t port 2828 ** @param xcb_drawable_t drawable 2829 ** @param xcb_gcontext_t gc 2830 ** @param uint32_t id 2831 ** @param int16_t src_x 2832 ** @param int16_t src_y 2833 ** @param uint16_t src_w 2834 ** @param uint16_t src_h 2835 ** @param int16_t drw_x 2836 ** @param int16_t drw_y 2837 ** @param uint16_t drw_w 2838 ** @param uint16_t drw_h 2839 ** @param uint16_t width 2840 ** @param uint16_t height 2841 ** @param uint32_t data_len 2842 ** @param const uint8_t *data 2843 ** @returns xcb_void_cookie_t 2844 ** 2845 *****************************************************************************/ 2846 2847 xcb_void_cookie_t 2848 xcb_xv_put_image_checked (xcb_connection_t *c /**< */, 2849 xcb_xv_port_t port /**< */, 2850 xcb_drawable_t drawable /**< */, 2851 xcb_gcontext_t gc /**< */, 2852 uint32_t id /**< */, 2853 int16_t src_x /**< */, 2854 int16_t src_y /**< */, 2855 uint16_t src_w /**< */, 2856 uint16_t src_h /**< */, 2857 int16_t drw_x /**< */, 2858 int16_t drw_y /**< */, 2859 uint16_t drw_w /**< */, 2860 uint16_t drw_h /**< */, 2861 uint16_t width /**< */, 2862 uint16_t height /**< */, 2863 uint32_t data_len /**< */, 2864 const uint8_t *data /**< */) 2865 { 2866 static const xcb_protocol_request_t xcb_req = { 2867 /* count */ 4, 2868 /* ext */ &xcb_xv_id, 2869 /* opcode */ XCB_XV_PUT_IMAGE, 2870 /* isvoid */ 1 2871 }; 2872 2873 struct iovec xcb_parts[6]; 2874 xcb_void_cookie_t xcb_ret; 2875 xcb_xv_put_image_request_t xcb_out; 2876 2877 xcb_out.port = port; 2878 xcb_out.drawable = drawable; 2879 xcb_out.gc = gc; 2880 xcb_out.id = id; 2881 xcb_out.src_x = src_x; 2882 xcb_out.src_y = src_y; 2883 xcb_out.src_w = src_w; 2884 xcb_out.src_h = src_h; 2885 xcb_out.drw_x = drw_x; 2886 xcb_out.drw_y = drw_y; 2887 xcb_out.drw_w = drw_w; 2888 xcb_out.drw_h = drw_h; 2889 xcb_out.width = width; 2890 xcb_out.height = height; 2891 2892 xcb_parts[2].iov_base = (char *) &xcb_out; 2893 xcb_parts[2].iov_len = sizeof(xcb_out); 2894 xcb_parts[3].iov_base = 0; 2895 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2896 xcb_parts[4].iov_base = (char *) data; 2897 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 2898 xcb_parts[5].iov_base = 0; 2899 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2900 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 2901 return xcb_ret; 2902 } 2903 2904 2905 /***************************************************************************** 2906 ** 2907 ** xcb_void_cookie_t xcb_xv_put_image 2908 ** 2909 ** @param xcb_connection_t *c 2910 ** @param xcb_xv_port_t port 2911 ** @param xcb_drawable_t drawable 2912 ** @param xcb_gcontext_t gc 2913 ** @param uint32_t id 2914 ** @param int16_t src_x 2915 ** @param int16_t src_y 2916 ** @param uint16_t src_w 2917 ** @param uint16_t src_h 2918 ** @param int16_t drw_x 2919 ** @param int16_t drw_y 2920 ** @param uint16_t drw_w 2921 ** @param uint16_t drw_h 2922 ** @param uint16_t width 2923 ** @param uint16_t height 2924 ** @param uint32_t data_len 2925 ** @param const uint8_t *data 2926 ** @returns xcb_void_cookie_t 2927 ** 2928 *****************************************************************************/ 2929 2930 xcb_void_cookie_t 2931 xcb_xv_put_image (xcb_connection_t *c /**< */, 2932 xcb_xv_port_t port /**< */, 2933 xcb_drawable_t drawable /**< */, 2934 xcb_gcontext_t gc /**< */, 2935 uint32_t id /**< */, 2936 int16_t src_x /**< */, 2937 int16_t src_y /**< */, 2938 uint16_t src_w /**< */, 2939 uint16_t src_h /**< */, 2940 int16_t drw_x /**< */, 2941 int16_t drw_y /**< */, 2942 uint16_t drw_w /**< */, 2943 uint16_t drw_h /**< */, 2944 uint16_t width /**< */, 2945 uint16_t height /**< */, 2946 uint32_t data_len /**< */, 2947 const uint8_t *data /**< */) 2948 { 2949 static const xcb_protocol_request_t xcb_req = { 2950 /* count */ 4, 2951 /* ext */ &xcb_xv_id, 2952 /* opcode */ XCB_XV_PUT_IMAGE, 2953 /* isvoid */ 1 2954 }; 2955 2956 struct iovec xcb_parts[6]; 2957 xcb_void_cookie_t xcb_ret; 2958 xcb_xv_put_image_request_t xcb_out; 2959 2960 xcb_out.port = port; 2961 xcb_out.drawable = drawable; 2962 xcb_out.gc = gc; 2963 xcb_out.id = id; 2964 xcb_out.src_x = src_x; 2965 xcb_out.src_y = src_y; 2966 xcb_out.src_w = src_w; 2967 xcb_out.src_h = src_h; 2968 xcb_out.drw_x = drw_x; 2969 xcb_out.drw_y = drw_y; 2970 xcb_out.drw_w = drw_w; 2971 xcb_out.drw_h = drw_h; 2972 xcb_out.width = width; 2973 xcb_out.height = height; 2974 2975 xcb_parts[2].iov_base = (char *) &xcb_out; 2976 xcb_parts[2].iov_len = sizeof(xcb_out); 2977 xcb_parts[3].iov_base = 0; 2978 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 2979 xcb_parts[4].iov_base = (char *) data; 2980 xcb_parts[4].iov_len = data_len * sizeof(uint8_t); 2981 xcb_parts[5].iov_base = 0; 2982 xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; 2983 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 2984 return xcb_ret; 2985 } 2986 2987 2988 /***************************************************************************** 2989 ** 2990 ** xcb_void_cookie_t xcb_xv_shm_put_image_checked 2991 ** 2992 ** @param xcb_connection_t *c 2993 ** @param xcb_xv_port_t port 2994 ** @param xcb_drawable_t drawable 2995 ** @param xcb_gcontext_t gc 2996 ** @param xcb_shm_seg_t shmseg 2997 ** @param uint32_t id 2998 ** @param uint32_t offset 2999 ** @param int16_t src_x 3000 ** @param int16_t src_y 3001 ** @param uint16_t src_w 3002 ** @param uint16_t src_h 3003 ** @param int16_t drw_x 3004 ** @param int16_t drw_y 3005 ** @param uint16_t drw_w 3006 ** @param uint16_t drw_h 3007 ** @param uint16_t width 3008 ** @param uint16_t height 3009 ** @param uint8_t send_event 3010 ** @returns xcb_void_cookie_t 3011 ** 3012 *****************************************************************************/ 3013 3014 xcb_void_cookie_t 3015 xcb_xv_shm_put_image_checked (xcb_connection_t *c /**< */, 3016 xcb_xv_port_t port /**< */, 3017 xcb_drawable_t drawable /**< */, 3018 xcb_gcontext_t gc /**< */, 3019 xcb_shm_seg_t shmseg /**< */, 3020 uint32_t id /**< */, 3021 uint32_t offset /**< */, 3022 int16_t src_x /**< */, 3023 int16_t src_y /**< */, 3024 uint16_t src_w /**< */, 3025 uint16_t src_h /**< */, 3026 int16_t drw_x /**< */, 3027 int16_t drw_y /**< */, 3028 uint16_t drw_w /**< */, 3029 uint16_t drw_h /**< */, 3030 uint16_t width /**< */, 3031 uint16_t height /**< */, 3032 uint8_t send_event /**< */) 3033 { 3034 static const xcb_protocol_request_t xcb_req = { 3035 /* count */ 2, 3036 /* ext */ &xcb_xv_id, 3037 /* opcode */ XCB_XV_SHM_PUT_IMAGE, 3038 /* isvoid */ 1 3039 }; 3040 3041 struct iovec xcb_parts[4]; 3042 xcb_void_cookie_t xcb_ret; 3043 xcb_xv_shm_put_image_request_t xcb_out; 3044 3045 xcb_out.port = port; 3046 xcb_out.drawable = drawable; 3047 xcb_out.gc = gc; 3048 xcb_out.shmseg = shmseg; 3049 xcb_out.id = id; 3050 xcb_out.offset = offset; 3051 xcb_out.src_x = src_x; 3052 xcb_out.src_y = src_y; 3053 xcb_out.src_w = src_w; 3054 xcb_out.src_h = src_h; 3055 xcb_out.drw_x = drw_x; 3056 xcb_out.drw_y = drw_y; 3057 xcb_out.drw_w = drw_w; 3058 xcb_out.drw_h = drw_h; 3059 xcb_out.width = width; 3060 xcb_out.height = height; 3061 xcb_out.send_event = send_event; 3062 memset(xcb_out.pad0, 0, 3); 3063 3064 xcb_parts[2].iov_base = (char *) &xcb_out; 3065 xcb_parts[2].iov_len = sizeof(xcb_out); 3066 xcb_parts[3].iov_base = 0; 3067 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3068 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 3069 return xcb_ret; 3070 } 3071 3072 3073 /***************************************************************************** 3074 ** 3075 ** xcb_void_cookie_t xcb_xv_shm_put_image 3076 ** 3077 ** @param xcb_connection_t *c 3078 ** @param xcb_xv_port_t port 3079 ** @param xcb_drawable_t drawable 3080 ** @param xcb_gcontext_t gc 3081 ** @param xcb_shm_seg_t shmseg 3082 ** @param uint32_t id 3083 ** @param uint32_t offset 3084 ** @param int16_t src_x 3085 ** @param int16_t src_y 3086 ** @param uint16_t src_w 3087 ** @param uint16_t src_h 3088 ** @param int16_t drw_x 3089 ** @param int16_t drw_y 3090 ** @param uint16_t drw_w 3091 ** @param uint16_t drw_h 3092 ** @param uint16_t width 3093 ** @param uint16_t height 3094 ** @param uint8_t send_event 3095 ** @returns xcb_void_cookie_t 3096 ** 3097 *****************************************************************************/ 3098 3099 xcb_void_cookie_t 3100 xcb_xv_shm_put_image (xcb_connection_t *c /**< */, 3101 xcb_xv_port_t port /**< */, 3102 xcb_drawable_t drawable /**< */, 3103 xcb_gcontext_t gc /**< */, 3104 xcb_shm_seg_t shmseg /**< */, 3105 uint32_t id /**< */, 3106 uint32_t offset /**< */, 3107 int16_t src_x /**< */, 3108 int16_t src_y /**< */, 3109 uint16_t src_w /**< */, 3110 uint16_t src_h /**< */, 3111 int16_t drw_x /**< */, 3112 int16_t drw_y /**< */, 3113 uint16_t drw_w /**< */, 3114 uint16_t drw_h /**< */, 3115 uint16_t width /**< */, 3116 uint16_t height /**< */, 3117 uint8_t send_event /**< */) 3118 { 3119 static const xcb_protocol_request_t xcb_req = { 3120 /* count */ 2, 3121 /* ext */ &xcb_xv_id, 3122 /* opcode */ XCB_XV_SHM_PUT_IMAGE, 3123 /* isvoid */ 1 3124 }; 3125 3126 struct iovec xcb_parts[4]; 3127 xcb_void_cookie_t xcb_ret; 3128 xcb_xv_shm_put_image_request_t xcb_out; 3129 3130 xcb_out.port = port; 3131 xcb_out.drawable = drawable; 3132 xcb_out.gc = gc; 3133 xcb_out.shmseg = shmseg; 3134 xcb_out.id = id; 3135 xcb_out.offset = offset; 3136 xcb_out.src_x = src_x; 3137 xcb_out.src_y = src_y; 3138 xcb_out.src_w = src_w; 3139 xcb_out.src_h = src_h; 3140 xcb_out.drw_x = drw_x; 3141 xcb_out.drw_y = drw_y; 3142 xcb_out.drw_w = drw_w; 3143 xcb_out.drw_h = drw_h; 3144 xcb_out.width = width; 3145 xcb_out.height = height; 3146 xcb_out.send_event = send_event; 3147 memset(xcb_out.pad0, 0, 3); 3148 3149 xcb_parts[2].iov_base = (char *) &xcb_out; 3150 xcb_parts[2].iov_len = sizeof(xcb_out); 3151 xcb_parts[3].iov_base = 0; 3152 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 3153 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 3154 return xcb_ret; 3155 } 3156 3157