1 /* 2 * This file generated automatically from xvmc.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 #ifdef HAVE_CONFIG_H 7 #include "config.h" 8 #endif 9 #include <stdlib.h> 10 #include <string.h> 11 #include <assert.h> 12 #include <stddef.h> /* for offsetof() */ 13 #include "xcbext.h" 14 #include "xvmc.h" 15 16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 #include "xproto.h" 18 #include "shm.h" 19 #include "xv.h" 20 21 xcb_extension_t xcb_xvmc_id = { "XVideo-MotionCompensation", 0 }; 22 23 24 /***************************************************************************** 25 ** 26 ** void xcb_xvmc_context_next 27 ** 28 ** @param xcb_xvmc_context_iterator_t *i 29 ** @returns void 30 ** 31 *****************************************************************************/ 32 33 void 34 xcb_xvmc_context_next (xcb_xvmc_context_iterator_t *i /**< */) 35 { 36 --i->rem; 37 ++i->data; 38 i->index += sizeof(xcb_xvmc_context_t); 39 } 40 41 42 /***************************************************************************** 43 ** 44 ** xcb_generic_iterator_t xcb_xvmc_context_end 45 ** 46 ** @param xcb_xvmc_context_iterator_t i 47 ** @returns xcb_generic_iterator_t 48 ** 49 *****************************************************************************/ 50 51 xcb_generic_iterator_t 52 xcb_xvmc_context_end (xcb_xvmc_context_iterator_t i /**< */) 53 { 54 xcb_generic_iterator_t ret; 55 ret.data = i.data + i.rem; 56 ret.index = i.index + ((char *) ret.data - (char *) i.data); 57 ret.rem = 0; 58 return ret; 59 } 60 61 62 /***************************************************************************** 63 ** 64 ** void xcb_xvmc_surface_next 65 ** 66 ** @param xcb_xvmc_surface_iterator_t *i 67 ** @returns void 68 ** 69 *****************************************************************************/ 70 71 void 72 xcb_xvmc_surface_next (xcb_xvmc_surface_iterator_t *i /**< */) 73 { 74 --i->rem; 75 ++i->data; 76 i->index += sizeof(xcb_xvmc_surface_t); 77 } 78 79 80 /***************************************************************************** 81 ** 82 ** xcb_generic_iterator_t xcb_xvmc_surface_end 83 ** 84 ** @param xcb_xvmc_surface_iterator_t i 85 ** @returns xcb_generic_iterator_t 86 ** 87 *****************************************************************************/ 88 89 xcb_generic_iterator_t 90 xcb_xvmc_surface_end (xcb_xvmc_surface_iterator_t i /**< */) 91 { 92 xcb_generic_iterator_t ret; 93 ret.data = i.data + i.rem; 94 ret.index = i.index + ((char *) ret.data - (char *) i.data); 95 ret.rem = 0; 96 return ret; 97 } 98 99 100 /***************************************************************************** 101 ** 102 ** void xcb_xvmc_subpicture_next 103 ** 104 ** @param xcb_xvmc_subpicture_iterator_t *i 105 ** @returns void 106 ** 107 *****************************************************************************/ 108 109 void 110 xcb_xvmc_subpicture_next (xcb_xvmc_subpicture_iterator_t *i /**< */) 111 { 112 --i->rem; 113 ++i->data; 114 i->index += sizeof(xcb_xvmc_subpicture_t); 115 } 116 117 118 /***************************************************************************** 119 ** 120 ** xcb_generic_iterator_t xcb_xvmc_subpicture_end 121 ** 122 ** @param xcb_xvmc_subpicture_iterator_t i 123 ** @returns xcb_generic_iterator_t 124 ** 125 *****************************************************************************/ 126 127 xcb_generic_iterator_t 128 xcb_xvmc_subpicture_end (xcb_xvmc_subpicture_iterator_t i /**< */) 129 { 130 xcb_generic_iterator_t ret; 131 ret.data = i.data + i.rem; 132 ret.index = i.index + ((char *) ret.data - (char *) i.data); 133 ret.rem = 0; 134 return ret; 135 } 136 137 138 /***************************************************************************** 139 ** 140 ** void xcb_xvmc_surface_info_next 141 ** 142 ** @param xcb_xvmc_surface_info_iterator_t *i 143 ** @returns void 144 ** 145 *****************************************************************************/ 146 147 void 148 xcb_xvmc_surface_info_next (xcb_xvmc_surface_info_iterator_t *i /**< */) 149 { 150 --i->rem; 151 ++i->data; 152 i->index += sizeof(xcb_xvmc_surface_info_t); 153 } 154 155 156 /***************************************************************************** 157 ** 158 ** xcb_generic_iterator_t xcb_xvmc_surface_info_end 159 ** 160 ** @param xcb_xvmc_surface_info_iterator_t i 161 ** @returns xcb_generic_iterator_t 162 ** 163 *****************************************************************************/ 164 165 xcb_generic_iterator_t 166 xcb_xvmc_surface_info_end (xcb_xvmc_surface_info_iterator_t i /**< */) 167 { 168 xcb_generic_iterator_t ret; 169 ret.data = i.data + i.rem; 170 ret.index = i.index + ((char *) ret.data - (char *) i.data); 171 ret.rem = 0; 172 return ret; 173 } 174 175 176 /***************************************************************************** 177 ** 178 ** xcb_xvmc_query_version_cookie_t xcb_xvmc_query_version 179 ** 180 ** @param xcb_connection_t *c 181 ** @returns xcb_xvmc_query_version_cookie_t 182 ** 183 *****************************************************************************/ 184 185 xcb_xvmc_query_version_cookie_t 186 xcb_xvmc_query_version (xcb_connection_t *c /**< */) 187 { 188 static const xcb_protocol_request_t xcb_req = { 189 /* count */ 2, 190 /* ext */ &xcb_xvmc_id, 191 /* opcode */ XCB_XVMC_QUERY_VERSION, 192 /* isvoid */ 0 193 }; 194 195 struct iovec xcb_parts[4]; 196 xcb_xvmc_query_version_cookie_t xcb_ret; 197 xcb_xvmc_query_version_request_t xcb_out; 198 199 200 xcb_parts[2].iov_base = (char *) &xcb_out; 201 xcb_parts[2].iov_len = sizeof(xcb_out); 202 xcb_parts[3].iov_base = 0; 203 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 204 205 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 206 return xcb_ret; 207 } 208 209 210 /***************************************************************************** 211 ** 212 ** xcb_xvmc_query_version_cookie_t xcb_xvmc_query_version_unchecked 213 ** 214 ** @param xcb_connection_t *c 215 ** @returns xcb_xvmc_query_version_cookie_t 216 ** 217 *****************************************************************************/ 218 219 xcb_xvmc_query_version_cookie_t 220 xcb_xvmc_query_version_unchecked (xcb_connection_t *c /**< */) 221 { 222 static const xcb_protocol_request_t xcb_req = { 223 /* count */ 2, 224 /* ext */ &xcb_xvmc_id, 225 /* opcode */ XCB_XVMC_QUERY_VERSION, 226 /* isvoid */ 0 227 }; 228 229 struct iovec xcb_parts[4]; 230 xcb_xvmc_query_version_cookie_t xcb_ret; 231 xcb_xvmc_query_version_request_t xcb_out; 232 233 234 xcb_parts[2].iov_base = (char *) &xcb_out; 235 xcb_parts[2].iov_len = sizeof(xcb_out); 236 xcb_parts[3].iov_base = 0; 237 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 238 239 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 240 return xcb_ret; 241 } 242 243 244 /***************************************************************************** 245 ** 246 ** xcb_xvmc_query_version_reply_t * xcb_xvmc_query_version_reply 247 ** 248 ** @param xcb_connection_t *c 249 ** @param xcb_xvmc_query_version_cookie_t cookie 250 ** @param xcb_generic_error_t **e 251 ** @returns xcb_xvmc_query_version_reply_t * 252 ** 253 *****************************************************************************/ 254 255 xcb_xvmc_query_version_reply_t * 256 xcb_xvmc_query_version_reply (xcb_connection_t *c /**< */, 257 xcb_xvmc_query_version_cookie_t cookie /**< */, 258 xcb_generic_error_t **e /**< */) 259 { 260 return (xcb_xvmc_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 261 } 262 263 int 264 xcb_xvmc_list_surface_types_sizeof (const void *_buffer /**< */) 265 { 266 char *xcb_tmp = (char *)_buffer; 267 const xcb_xvmc_list_surface_types_reply_t *_aux = (xcb_xvmc_list_surface_types_reply_t *)_buffer; 268 unsigned int xcb_buffer_len = 0; 269 unsigned int xcb_block_len = 0; 270 unsigned int xcb_pad = 0; 271 unsigned int xcb_align_to = 0; 272 273 274 xcb_block_len += sizeof(xcb_xvmc_list_surface_types_reply_t); 275 xcb_tmp += xcb_block_len; 276 xcb_buffer_len += xcb_block_len; 277 xcb_block_len = 0; 278 /* surfaces */ 279 xcb_block_len += _aux->num * sizeof(xcb_xvmc_surface_info_t); 280 xcb_tmp += xcb_block_len; 281 xcb_align_to = ALIGNOF(xcb_xvmc_surface_info_t); 282 /* insert padding */ 283 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 284 xcb_buffer_len += xcb_block_len + xcb_pad; 285 if (0 != xcb_pad) { 286 xcb_tmp += xcb_pad; 287 xcb_pad = 0; 288 } 289 xcb_block_len = 0; 290 291 return xcb_buffer_len; 292 } 293 294 295 /***************************************************************************** 296 ** 297 ** xcb_xvmc_list_surface_types_cookie_t xcb_xvmc_list_surface_types 298 ** 299 ** @param xcb_connection_t *c 300 ** @param xcb_xv_port_t port_id 301 ** @returns xcb_xvmc_list_surface_types_cookie_t 302 ** 303 *****************************************************************************/ 304 305 xcb_xvmc_list_surface_types_cookie_t 306 xcb_xvmc_list_surface_types (xcb_connection_t *c /**< */, 307 xcb_xv_port_t port_id /**< */) 308 { 309 static const xcb_protocol_request_t xcb_req = { 310 /* count */ 2, 311 /* ext */ &xcb_xvmc_id, 312 /* opcode */ XCB_XVMC_LIST_SURFACE_TYPES, 313 /* isvoid */ 0 314 }; 315 316 struct iovec xcb_parts[4]; 317 xcb_xvmc_list_surface_types_cookie_t xcb_ret; 318 xcb_xvmc_list_surface_types_request_t xcb_out; 319 320 xcb_out.port_id = port_id; 321 322 xcb_parts[2].iov_base = (char *) &xcb_out; 323 xcb_parts[2].iov_len = sizeof(xcb_out); 324 xcb_parts[3].iov_base = 0; 325 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 326 327 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 328 return xcb_ret; 329 } 330 331 332 /***************************************************************************** 333 ** 334 ** xcb_xvmc_list_surface_types_cookie_t xcb_xvmc_list_surface_types_unchecked 335 ** 336 ** @param xcb_connection_t *c 337 ** @param xcb_xv_port_t port_id 338 ** @returns xcb_xvmc_list_surface_types_cookie_t 339 ** 340 *****************************************************************************/ 341 342 xcb_xvmc_list_surface_types_cookie_t 343 xcb_xvmc_list_surface_types_unchecked (xcb_connection_t *c /**< */, 344 xcb_xv_port_t port_id /**< */) 345 { 346 static const xcb_protocol_request_t xcb_req = { 347 /* count */ 2, 348 /* ext */ &xcb_xvmc_id, 349 /* opcode */ XCB_XVMC_LIST_SURFACE_TYPES, 350 /* isvoid */ 0 351 }; 352 353 struct iovec xcb_parts[4]; 354 xcb_xvmc_list_surface_types_cookie_t xcb_ret; 355 xcb_xvmc_list_surface_types_request_t xcb_out; 356 357 xcb_out.port_id = port_id; 358 359 xcb_parts[2].iov_base = (char *) &xcb_out; 360 xcb_parts[2].iov_len = sizeof(xcb_out); 361 xcb_parts[3].iov_base = 0; 362 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 363 364 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 365 return xcb_ret; 366 } 367 368 369 /***************************************************************************** 370 ** 371 ** xcb_xvmc_surface_info_t * xcb_xvmc_list_surface_types_surfaces 372 ** 373 ** @param const xcb_xvmc_list_surface_types_reply_t *R 374 ** @returns xcb_xvmc_surface_info_t * 375 ** 376 *****************************************************************************/ 377 378 xcb_xvmc_surface_info_t * 379 xcb_xvmc_list_surface_types_surfaces (const xcb_xvmc_list_surface_types_reply_t *R /**< */) 380 { 381 return (xcb_xvmc_surface_info_t *) (R + 1); 382 } 383 384 385 /***************************************************************************** 386 ** 387 ** int xcb_xvmc_list_surface_types_surfaces_length 388 ** 389 ** @param const xcb_xvmc_list_surface_types_reply_t *R 390 ** @returns int 391 ** 392 *****************************************************************************/ 393 394 int 395 xcb_xvmc_list_surface_types_surfaces_length (const xcb_xvmc_list_surface_types_reply_t *R /**< */) 396 { 397 return R->num; 398 } 399 400 401 /***************************************************************************** 402 ** 403 ** xcb_xvmc_surface_info_iterator_t xcb_xvmc_list_surface_types_surfaces_iterator 404 ** 405 ** @param const xcb_xvmc_list_surface_types_reply_t *R 406 ** @returns xcb_xvmc_surface_info_iterator_t 407 ** 408 *****************************************************************************/ 409 410 xcb_xvmc_surface_info_iterator_t 411 xcb_xvmc_list_surface_types_surfaces_iterator (const xcb_xvmc_list_surface_types_reply_t *R /**< */) 412 { 413 xcb_xvmc_surface_info_iterator_t i; 414 i.data = (xcb_xvmc_surface_info_t *) (R + 1); 415 i.rem = R->num; 416 i.index = (char *) i.data - (char *) R; 417 return i; 418 } 419 420 421 /***************************************************************************** 422 ** 423 ** xcb_xvmc_list_surface_types_reply_t * xcb_xvmc_list_surface_types_reply 424 ** 425 ** @param xcb_connection_t *c 426 ** @param xcb_xvmc_list_surface_types_cookie_t cookie 427 ** @param xcb_generic_error_t **e 428 ** @returns xcb_xvmc_list_surface_types_reply_t * 429 ** 430 *****************************************************************************/ 431 432 xcb_xvmc_list_surface_types_reply_t * 433 xcb_xvmc_list_surface_types_reply (xcb_connection_t *c /**< */, 434 xcb_xvmc_list_surface_types_cookie_t cookie /**< */, 435 xcb_generic_error_t **e /**< */) 436 { 437 return (xcb_xvmc_list_surface_types_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 438 } 439 440 int 441 xcb_xvmc_create_context_sizeof (const void *_buffer /**< */) 442 { 443 char *xcb_tmp = (char *)_buffer; 444 const xcb_xvmc_create_context_reply_t *_aux = (xcb_xvmc_create_context_reply_t *)_buffer; 445 unsigned int xcb_buffer_len = 0; 446 unsigned int xcb_block_len = 0; 447 unsigned int xcb_pad = 0; 448 unsigned int xcb_align_to = 0; 449 450 451 xcb_block_len += sizeof(xcb_xvmc_create_context_reply_t); 452 xcb_tmp += xcb_block_len; 453 xcb_buffer_len += xcb_block_len; 454 xcb_block_len = 0; 455 /* priv_data */ 456 xcb_block_len += _aux->length * sizeof(uint32_t); 457 xcb_tmp += xcb_block_len; 458 xcb_align_to = ALIGNOF(uint32_t); 459 /* insert padding */ 460 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 461 xcb_buffer_len += xcb_block_len + xcb_pad; 462 if (0 != xcb_pad) { 463 xcb_tmp += xcb_pad; 464 xcb_pad = 0; 465 } 466 xcb_block_len = 0; 467 468 return xcb_buffer_len; 469 } 470 471 472 /***************************************************************************** 473 ** 474 ** xcb_xvmc_create_context_cookie_t xcb_xvmc_create_context 475 ** 476 ** @param xcb_connection_t *c 477 ** @param xcb_xvmc_context_t context_id 478 ** @param xcb_xv_port_t port_id 479 ** @param xcb_xvmc_surface_t surface_id 480 ** @param uint16_t width 481 ** @param uint16_t height 482 ** @param uint32_t flags 483 ** @returns xcb_xvmc_create_context_cookie_t 484 ** 485 *****************************************************************************/ 486 487 xcb_xvmc_create_context_cookie_t 488 xcb_xvmc_create_context (xcb_connection_t *c /**< */, 489 xcb_xvmc_context_t context_id /**< */, 490 xcb_xv_port_t port_id /**< */, 491 xcb_xvmc_surface_t surface_id /**< */, 492 uint16_t width /**< */, 493 uint16_t height /**< */, 494 uint32_t flags /**< */) 495 { 496 static const xcb_protocol_request_t xcb_req = { 497 /* count */ 2, 498 /* ext */ &xcb_xvmc_id, 499 /* opcode */ XCB_XVMC_CREATE_CONTEXT, 500 /* isvoid */ 0 501 }; 502 503 struct iovec xcb_parts[4]; 504 xcb_xvmc_create_context_cookie_t xcb_ret; 505 xcb_xvmc_create_context_request_t xcb_out; 506 507 xcb_out.context_id = context_id; 508 xcb_out.port_id = port_id; 509 xcb_out.surface_id = surface_id; 510 xcb_out.width = width; 511 xcb_out.height = height; 512 xcb_out.flags = flags; 513 514 xcb_parts[2].iov_base = (char *) &xcb_out; 515 xcb_parts[2].iov_len = sizeof(xcb_out); 516 xcb_parts[3].iov_base = 0; 517 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 518 519 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 520 return xcb_ret; 521 } 522 523 524 /***************************************************************************** 525 ** 526 ** xcb_xvmc_create_context_cookie_t xcb_xvmc_create_context_unchecked 527 ** 528 ** @param xcb_connection_t *c 529 ** @param xcb_xvmc_context_t context_id 530 ** @param xcb_xv_port_t port_id 531 ** @param xcb_xvmc_surface_t surface_id 532 ** @param uint16_t width 533 ** @param uint16_t height 534 ** @param uint32_t flags 535 ** @returns xcb_xvmc_create_context_cookie_t 536 ** 537 *****************************************************************************/ 538 539 xcb_xvmc_create_context_cookie_t 540 xcb_xvmc_create_context_unchecked (xcb_connection_t *c /**< */, 541 xcb_xvmc_context_t context_id /**< */, 542 xcb_xv_port_t port_id /**< */, 543 xcb_xvmc_surface_t surface_id /**< */, 544 uint16_t width /**< */, 545 uint16_t height /**< */, 546 uint32_t flags /**< */) 547 { 548 static const xcb_protocol_request_t xcb_req = { 549 /* count */ 2, 550 /* ext */ &xcb_xvmc_id, 551 /* opcode */ XCB_XVMC_CREATE_CONTEXT, 552 /* isvoid */ 0 553 }; 554 555 struct iovec xcb_parts[4]; 556 xcb_xvmc_create_context_cookie_t xcb_ret; 557 xcb_xvmc_create_context_request_t xcb_out; 558 559 xcb_out.context_id = context_id; 560 xcb_out.port_id = port_id; 561 xcb_out.surface_id = surface_id; 562 xcb_out.width = width; 563 xcb_out.height = height; 564 xcb_out.flags = flags; 565 566 xcb_parts[2].iov_base = (char *) &xcb_out; 567 xcb_parts[2].iov_len = sizeof(xcb_out); 568 xcb_parts[3].iov_base = 0; 569 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 570 571 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 572 return xcb_ret; 573 } 574 575 576 /***************************************************************************** 577 ** 578 ** uint32_t * xcb_xvmc_create_context_priv_data 579 ** 580 ** @param const xcb_xvmc_create_context_reply_t *R 581 ** @returns uint32_t * 582 ** 583 *****************************************************************************/ 584 585 uint32_t * 586 xcb_xvmc_create_context_priv_data (const xcb_xvmc_create_context_reply_t *R /**< */) 587 { 588 return (uint32_t *) (R + 1); 589 } 590 591 592 /***************************************************************************** 593 ** 594 ** int xcb_xvmc_create_context_priv_data_length 595 ** 596 ** @param const xcb_xvmc_create_context_reply_t *R 597 ** @returns int 598 ** 599 *****************************************************************************/ 600 601 int 602 xcb_xvmc_create_context_priv_data_length (const xcb_xvmc_create_context_reply_t *R /**< */) 603 { 604 return R->length; 605 } 606 607 608 /***************************************************************************** 609 ** 610 ** xcb_generic_iterator_t xcb_xvmc_create_context_priv_data_end 611 ** 612 ** @param const xcb_xvmc_create_context_reply_t *R 613 ** @returns xcb_generic_iterator_t 614 ** 615 *****************************************************************************/ 616 617 xcb_generic_iterator_t 618 xcb_xvmc_create_context_priv_data_end (const xcb_xvmc_create_context_reply_t *R /**< */) 619 { 620 xcb_generic_iterator_t i; 621 i.data = ((uint32_t *) (R + 1)) + (R->length); 622 i.rem = 0; 623 i.index = (char *) i.data - (char *) R; 624 return i; 625 } 626 627 628 /***************************************************************************** 629 ** 630 ** xcb_xvmc_create_context_reply_t * xcb_xvmc_create_context_reply 631 ** 632 ** @param xcb_connection_t *c 633 ** @param xcb_xvmc_create_context_cookie_t cookie 634 ** @param xcb_generic_error_t **e 635 ** @returns xcb_xvmc_create_context_reply_t * 636 ** 637 *****************************************************************************/ 638 639 xcb_xvmc_create_context_reply_t * 640 xcb_xvmc_create_context_reply (xcb_connection_t *c /**< */, 641 xcb_xvmc_create_context_cookie_t cookie /**< */, 642 xcb_generic_error_t **e /**< */) 643 { 644 return (xcb_xvmc_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 645 } 646 647 648 /***************************************************************************** 649 ** 650 ** xcb_void_cookie_t xcb_xvmc_destroy_context_checked 651 ** 652 ** @param xcb_connection_t *c 653 ** @param xcb_xvmc_context_t context_id 654 ** @returns xcb_void_cookie_t 655 ** 656 *****************************************************************************/ 657 658 xcb_void_cookie_t 659 xcb_xvmc_destroy_context_checked (xcb_connection_t *c /**< */, 660 xcb_xvmc_context_t context_id /**< */) 661 { 662 static const xcb_protocol_request_t xcb_req = { 663 /* count */ 2, 664 /* ext */ &xcb_xvmc_id, 665 /* opcode */ XCB_XVMC_DESTROY_CONTEXT, 666 /* isvoid */ 1 667 }; 668 669 struct iovec xcb_parts[4]; 670 xcb_void_cookie_t xcb_ret; 671 xcb_xvmc_destroy_context_request_t xcb_out; 672 673 xcb_out.context_id = context_id; 674 675 xcb_parts[2].iov_base = (char *) &xcb_out; 676 xcb_parts[2].iov_len = sizeof(xcb_out); 677 xcb_parts[3].iov_base = 0; 678 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 679 680 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 681 return xcb_ret; 682 } 683 684 685 /***************************************************************************** 686 ** 687 ** xcb_void_cookie_t xcb_xvmc_destroy_context 688 ** 689 ** @param xcb_connection_t *c 690 ** @param xcb_xvmc_context_t context_id 691 ** @returns xcb_void_cookie_t 692 ** 693 *****************************************************************************/ 694 695 xcb_void_cookie_t 696 xcb_xvmc_destroy_context (xcb_connection_t *c /**< */, 697 xcb_xvmc_context_t context_id /**< */) 698 { 699 static const xcb_protocol_request_t xcb_req = { 700 /* count */ 2, 701 /* ext */ &xcb_xvmc_id, 702 /* opcode */ XCB_XVMC_DESTROY_CONTEXT, 703 /* isvoid */ 1 704 }; 705 706 struct iovec xcb_parts[4]; 707 xcb_void_cookie_t xcb_ret; 708 xcb_xvmc_destroy_context_request_t xcb_out; 709 710 xcb_out.context_id = context_id; 711 712 xcb_parts[2].iov_base = (char *) &xcb_out; 713 xcb_parts[2].iov_len = sizeof(xcb_out); 714 xcb_parts[3].iov_base = 0; 715 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 716 717 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 718 return xcb_ret; 719 } 720 721 int 722 xcb_xvmc_create_surface_sizeof (const void *_buffer /**< */) 723 { 724 char *xcb_tmp = (char *)_buffer; 725 const xcb_xvmc_create_surface_reply_t *_aux = (xcb_xvmc_create_surface_reply_t *)_buffer; 726 unsigned int xcb_buffer_len = 0; 727 unsigned int xcb_block_len = 0; 728 unsigned int xcb_pad = 0; 729 unsigned int xcb_align_to = 0; 730 731 732 xcb_block_len += sizeof(xcb_xvmc_create_surface_reply_t); 733 xcb_tmp += xcb_block_len; 734 xcb_buffer_len += xcb_block_len; 735 xcb_block_len = 0; 736 /* priv_data */ 737 xcb_block_len += _aux->length * sizeof(uint32_t); 738 xcb_tmp += xcb_block_len; 739 xcb_align_to = ALIGNOF(uint32_t); 740 /* insert padding */ 741 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 742 xcb_buffer_len += xcb_block_len + xcb_pad; 743 if (0 != xcb_pad) { 744 xcb_tmp += xcb_pad; 745 xcb_pad = 0; 746 } 747 xcb_block_len = 0; 748 749 return xcb_buffer_len; 750 } 751 752 753 /***************************************************************************** 754 ** 755 ** xcb_xvmc_create_surface_cookie_t xcb_xvmc_create_surface 756 ** 757 ** @param xcb_connection_t *c 758 ** @param xcb_xvmc_surface_t surface_id 759 ** @param xcb_xvmc_context_t context_id 760 ** @returns xcb_xvmc_create_surface_cookie_t 761 ** 762 *****************************************************************************/ 763 764 xcb_xvmc_create_surface_cookie_t 765 xcb_xvmc_create_surface (xcb_connection_t *c /**< */, 766 xcb_xvmc_surface_t surface_id /**< */, 767 xcb_xvmc_context_t context_id /**< */) 768 { 769 static const xcb_protocol_request_t xcb_req = { 770 /* count */ 2, 771 /* ext */ &xcb_xvmc_id, 772 /* opcode */ XCB_XVMC_CREATE_SURFACE, 773 /* isvoid */ 0 774 }; 775 776 struct iovec xcb_parts[4]; 777 xcb_xvmc_create_surface_cookie_t xcb_ret; 778 xcb_xvmc_create_surface_request_t xcb_out; 779 780 xcb_out.surface_id = surface_id; 781 xcb_out.context_id = context_id; 782 783 xcb_parts[2].iov_base = (char *) &xcb_out; 784 xcb_parts[2].iov_len = sizeof(xcb_out); 785 xcb_parts[3].iov_base = 0; 786 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 787 788 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 789 return xcb_ret; 790 } 791 792 793 /***************************************************************************** 794 ** 795 ** xcb_xvmc_create_surface_cookie_t xcb_xvmc_create_surface_unchecked 796 ** 797 ** @param xcb_connection_t *c 798 ** @param xcb_xvmc_surface_t surface_id 799 ** @param xcb_xvmc_context_t context_id 800 ** @returns xcb_xvmc_create_surface_cookie_t 801 ** 802 *****************************************************************************/ 803 804 xcb_xvmc_create_surface_cookie_t 805 xcb_xvmc_create_surface_unchecked (xcb_connection_t *c /**< */, 806 xcb_xvmc_surface_t surface_id /**< */, 807 xcb_xvmc_context_t context_id /**< */) 808 { 809 static const xcb_protocol_request_t xcb_req = { 810 /* count */ 2, 811 /* ext */ &xcb_xvmc_id, 812 /* opcode */ XCB_XVMC_CREATE_SURFACE, 813 /* isvoid */ 0 814 }; 815 816 struct iovec xcb_parts[4]; 817 xcb_xvmc_create_surface_cookie_t xcb_ret; 818 xcb_xvmc_create_surface_request_t xcb_out; 819 820 xcb_out.surface_id = surface_id; 821 xcb_out.context_id = context_id; 822 823 xcb_parts[2].iov_base = (char *) &xcb_out; 824 xcb_parts[2].iov_len = sizeof(xcb_out); 825 xcb_parts[3].iov_base = 0; 826 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 827 828 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 829 return xcb_ret; 830 } 831 832 833 /***************************************************************************** 834 ** 835 ** uint32_t * xcb_xvmc_create_surface_priv_data 836 ** 837 ** @param const xcb_xvmc_create_surface_reply_t *R 838 ** @returns uint32_t * 839 ** 840 *****************************************************************************/ 841 842 uint32_t * 843 xcb_xvmc_create_surface_priv_data (const xcb_xvmc_create_surface_reply_t *R /**< */) 844 { 845 return (uint32_t *) (R + 1); 846 } 847 848 849 /***************************************************************************** 850 ** 851 ** int xcb_xvmc_create_surface_priv_data_length 852 ** 853 ** @param const xcb_xvmc_create_surface_reply_t *R 854 ** @returns int 855 ** 856 *****************************************************************************/ 857 858 int 859 xcb_xvmc_create_surface_priv_data_length (const xcb_xvmc_create_surface_reply_t *R /**< */) 860 { 861 return R->length; 862 } 863 864 865 /***************************************************************************** 866 ** 867 ** xcb_generic_iterator_t xcb_xvmc_create_surface_priv_data_end 868 ** 869 ** @param const xcb_xvmc_create_surface_reply_t *R 870 ** @returns xcb_generic_iterator_t 871 ** 872 *****************************************************************************/ 873 874 xcb_generic_iterator_t 875 xcb_xvmc_create_surface_priv_data_end (const xcb_xvmc_create_surface_reply_t *R /**< */) 876 { 877 xcb_generic_iterator_t i; 878 i.data = ((uint32_t *) (R + 1)) + (R->length); 879 i.rem = 0; 880 i.index = (char *) i.data - (char *) R; 881 return i; 882 } 883 884 885 /***************************************************************************** 886 ** 887 ** xcb_xvmc_create_surface_reply_t * xcb_xvmc_create_surface_reply 888 ** 889 ** @param xcb_connection_t *c 890 ** @param xcb_xvmc_create_surface_cookie_t cookie 891 ** @param xcb_generic_error_t **e 892 ** @returns xcb_xvmc_create_surface_reply_t * 893 ** 894 *****************************************************************************/ 895 896 xcb_xvmc_create_surface_reply_t * 897 xcb_xvmc_create_surface_reply (xcb_connection_t *c /**< */, 898 xcb_xvmc_create_surface_cookie_t cookie /**< */, 899 xcb_generic_error_t **e /**< */) 900 { 901 return (xcb_xvmc_create_surface_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 902 } 903 904 905 /***************************************************************************** 906 ** 907 ** xcb_void_cookie_t xcb_xvmc_destroy_surface_checked 908 ** 909 ** @param xcb_connection_t *c 910 ** @param xcb_xvmc_surface_t surface_id 911 ** @returns xcb_void_cookie_t 912 ** 913 *****************************************************************************/ 914 915 xcb_void_cookie_t 916 xcb_xvmc_destroy_surface_checked (xcb_connection_t *c /**< */, 917 xcb_xvmc_surface_t surface_id /**< */) 918 { 919 static const xcb_protocol_request_t xcb_req = { 920 /* count */ 2, 921 /* ext */ &xcb_xvmc_id, 922 /* opcode */ XCB_XVMC_DESTROY_SURFACE, 923 /* isvoid */ 1 924 }; 925 926 struct iovec xcb_parts[4]; 927 xcb_void_cookie_t xcb_ret; 928 xcb_xvmc_destroy_surface_request_t xcb_out; 929 930 xcb_out.surface_id = surface_id; 931 932 xcb_parts[2].iov_base = (char *) &xcb_out; 933 xcb_parts[2].iov_len = sizeof(xcb_out); 934 xcb_parts[3].iov_base = 0; 935 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 936 937 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 938 return xcb_ret; 939 } 940 941 942 /***************************************************************************** 943 ** 944 ** xcb_void_cookie_t xcb_xvmc_destroy_surface 945 ** 946 ** @param xcb_connection_t *c 947 ** @param xcb_xvmc_surface_t surface_id 948 ** @returns xcb_void_cookie_t 949 ** 950 *****************************************************************************/ 951 952 xcb_void_cookie_t 953 xcb_xvmc_destroy_surface (xcb_connection_t *c /**< */, 954 xcb_xvmc_surface_t surface_id /**< */) 955 { 956 static const xcb_protocol_request_t xcb_req = { 957 /* count */ 2, 958 /* ext */ &xcb_xvmc_id, 959 /* opcode */ XCB_XVMC_DESTROY_SURFACE, 960 /* isvoid */ 1 961 }; 962 963 struct iovec xcb_parts[4]; 964 xcb_void_cookie_t xcb_ret; 965 xcb_xvmc_destroy_surface_request_t xcb_out; 966 967 xcb_out.surface_id = surface_id; 968 969 xcb_parts[2].iov_base = (char *) &xcb_out; 970 xcb_parts[2].iov_len = sizeof(xcb_out); 971 xcb_parts[3].iov_base = 0; 972 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 973 974 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 975 return xcb_ret; 976 } 977 978 int 979 xcb_xvmc_create_subpicture_sizeof (const void *_buffer /**< */) 980 { 981 char *xcb_tmp = (char *)_buffer; 982 const xcb_xvmc_create_subpicture_reply_t *_aux = (xcb_xvmc_create_subpicture_reply_t *)_buffer; 983 unsigned int xcb_buffer_len = 0; 984 unsigned int xcb_block_len = 0; 985 unsigned int xcb_pad = 0; 986 unsigned int xcb_align_to = 0; 987 988 989 xcb_block_len += sizeof(xcb_xvmc_create_subpicture_reply_t); 990 xcb_tmp += xcb_block_len; 991 xcb_buffer_len += xcb_block_len; 992 xcb_block_len = 0; 993 /* priv_data */ 994 xcb_block_len += _aux->length * sizeof(uint32_t); 995 xcb_tmp += xcb_block_len; 996 xcb_align_to = ALIGNOF(uint32_t); 997 /* insert padding */ 998 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 999 xcb_buffer_len += xcb_block_len + xcb_pad; 1000 if (0 != xcb_pad) { 1001 xcb_tmp += xcb_pad; 1002 xcb_pad = 0; 1003 } 1004 xcb_block_len = 0; 1005 1006 return xcb_buffer_len; 1007 } 1008 1009 1010 /***************************************************************************** 1011 ** 1012 ** xcb_xvmc_create_subpicture_cookie_t xcb_xvmc_create_subpicture 1013 ** 1014 ** @param xcb_connection_t *c 1015 ** @param xcb_xvmc_subpicture_t subpicture_id 1016 ** @param xcb_xvmc_context_t context 1017 ** @param uint32_t xvimage_id 1018 ** @param uint16_t width 1019 ** @param uint16_t height 1020 ** @returns xcb_xvmc_create_subpicture_cookie_t 1021 ** 1022 *****************************************************************************/ 1023 1024 xcb_xvmc_create_subpicture_cookie_t 1025 xcb_xvmc_create_subpicture (xcb_connection_t *c /**< */, 1026 xcb_xvmc_subpicture_t subpicture_id /**< */, 1027 xcb_xvmc_context_t context /**< */, 1028 uint32_t xvimage_id /**< */, 1029 uint16_t width /**< */, 1030 uint16_t height /**< */) 1031 { 1032 static const xcb_protocol_request_t xcb_req = { 1033 /* count */ 2, 1034 /* ext */ &xcb_xvmc_id, 1035 /* opcode */ XCB_XVMC_CREATE_SUBPICTURE, 1036 /* isvoid */ 0 1037 }; 1038 1039 struct iovec xcb_parts[4]; 1040 xcb_xvmc_create_subpicture_cookie_t xcb_ret; 1041 xcb_xvmc_create_subpicture_request_t xcb_out; 1042 1043 xcb_out.subpicture_id = subpicture_id; 1044 xcb_out.context = context; 1045 xcb_out.xvimage_id = xvimage_id; 1046 xcb_out.width = width; 1047 xcb_out.height = height; 1048 1049 xcb_parts[2].iov_base = (char *) &xcb_out; 1050 xcb_parts[2].iov_len = sizeof(xcb_out); 1051 xcb_parts[3].iov_base = 0; 1052 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1053 1054 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1055 return xcb_ret; 1056 } 1057 1058 1059 /***************************************************************************** 1060 ** 1061 ** xcb_xvmc_create_subpicture_cookie_t xcb_xvmc_create_subpicture_unchecked 1062 ** 1063 ** @param xcb_connection_t *c 1064 ** @param xcb_xvmc_subpicture_t subpicture_id 1065 ** @param xcb_xvmc_context_t context 1066 ** @param uint32_t xvimage_id 1067 ** @param uint16_t width 1068 ** @param uint16_t height 1069 ** @returns xcb_xvmc_create_subpicture_cookie_t 1070 ** 1071 *****************************************************************************/ 1072 1073 xcb_xvmc_create_subpicture_cookie_t 1074 xcb_xvmc_create_subpicture_unchecked (xcb_connection_t *c /**< */, 1075 xcb_xvmc_subpicture_t subpicture_id /**< */, 1076 xcb_xvmc_context_t context /**< */, 1077 uint32_t xvimage_id /**< */, 1078 uint16_t width /**< */, 1079 uint16_t height /**< */) 1080 { 1081 static const xcb_protocol_request_t xcb_req = { 1082 /* count */ 2, 1083 /* ext */ &xcb_xvmc_id, 1084 /* opcode */ XCB_XVMC_CREATE_SUBPICTURE, 1085 /* isvoid */ 0 1086 }; 1087 1088 struct iovec xcb_parts[4]; 1089 xcb_xvmc_create_subpicture_cookie_t xcb_ret; 1090 xcb_xvmc_create_subpicture_request_t xcb_out; 1091 1092 xcb_out.subpicture_id = subpicture_id; 1093 xcb_out.context = context; 1094 xcb_out.xvimage_id = xvimage_id; 1095 xcb_out.width = width; 1096 xcb_out.height = height; 1097 1098 xcb_parts[2].iov_base = (char *) &xcb_out; 1099 xcb_parts[2].iov_len = sizeof(xcb_out); 1100 xcb_parts[3].iov_base = 0; 1101 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1102 1103 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1104 return xcb_ret; 1105 } 1106 1107 1108 /***************************************************************************** 1109 ** 1110 ** uint32_t * xcb_xvmc_create_subpicture_priv_data 1111 ** 1112 ** @param const xcb_xvmc_create_subpicture_reply_t *R 1113 ** @returns uint32_t * 1114 ** 1115 *****************************************************************************/ 1116 1117 uint32_t * 1118 xcb_xvmc_create_subpicture_priv_data (const xcb_xvmc_create_subpicture_reply_t *R /**< */) 1119 { 1120 return (uint32_t *) (R + 1); 1121 } 1122 1123 1124 /***************************************************************************** 1125 ** 1126 ** int xcb_xvmc_create_subpicture_priv_data_length 1127 ** 1128 ** @param const xcb_xvmc_create_subpicture_reply_t *R 1129 ** @returns int 1130 ** 1131 *****************************************************************************/ 1132 1133 int 1134 xcb_xvmc_create_subpicture_priv_data_length (const xcb_xvmc_create_subpicture_reply_t *R /**< */) 1135 { 1136 return R->length; 1137 } 1138 1139 1140 /***************************************************************************** 1141 ** 1142 ** xcb_generic_iterator_t xcb_xvmc_create_subpicture_priv_data_end 1143 ** 1144 ** @param const xcb_xvmc_create_subpicture_reply_t *R 1145 ** @returns xcb_generic_iterator_t 1146 ** 1147 *****************************************************************************/ 1148 1149 xcb_generic_iterator_t 1150 xcb_xvmc_create_subpicture_priv_data_end (const xcb_xvmc_create_subpicture_reply_t *R /**< */) 1151 { 1152 xcb_generic_iterator_t i; 1153 i.data = ((uint32_t *) (R + 1)) + (R->length); 1154 i.rem = 0; 1155 i.index = (char *) i.data - (char *) R; 1156 return i; 1157 } 1158 1159 1160 /***************************************************************************** 1161 ** 1162 ** xcb_xvmc_create_subpicture_reply_t * xcb_xvmc_create_subpicture_reply 1163 ** 1164 ** @param xcb_connection_t *c 1165 ** @param xcb_xvmc_create_subpicture_cookie_t cookie 1166 ** @param xcb_generic_error_t **e 1167 ** @returns xcb_xvmc_create_subpicture_reply_t * 1168 ** 1169 *****************************************************************************/ 1170 1171 xcb_xvmc_create_subpicture_reply_t * 1172 xcb_xvmc_create_subpicture_reply (xcb_connection_t *c /**< */, 1173 xcb_xvmc_create_subpicture_cookie_t cookie /**< */, 1174 xcb_generic_error_t **e /**< */) 1175 { 1176 return (xcb_xvmc_create_subpicture_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1177 } 1178 1179 1180 /***************************************************************************** 1181 ** 1182 ** xcb_void_cookie_t xcb_xvmc_destroy_subpicture_checked 1183 ** 1184 ** @param xcb_connection_t *c 1185 ** @param xcb_xvmc_subpicture_t subpicture_id 1186 ** @returns xcb_void_cookie_t 1187 ** 1188 *****************************************************************************/ 1189 1190 xcb_void_cookie_t 1191 xcb_xvmc_destroy_subpicture_checked (xcb_connection_t *c /**< */, 1192 xcb_xvmc_subpicture_t subpicture_id /**< */) 1193 { 1194 static const xcb_protocol_request_t xcb_req = { 1195 /* count */ 2, 1196 /* ext */ &xcb_xvmc_id, 1197 /* opcode */ XCB_XVMC_DESTROY_SUBPICTURE, 1198 /* isvoid */ 1 1199 }; 1200 1201 struct iovec xcb_parts[4]; 1202 xcb_void_cookie_t xcb_ret; 1203 xcb_xvmc_destroy_subpicture_request_t xcb_out; 1204 1205 xcb_out.subpicture_id = subpicture_id; 1206 1207 xcb_parts[2].iov_base = (char *) &xcb_out; 1208 xcb_parts[2].iov_len = sizeof(xcb_out); 1209 xcb_parts[3].iov_base = 0; 1210 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1211 1212 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1213 return xcb_ret; 1214 } 1215 1216 1217 /***************************************************************************** 1218 ** 1219 ** xcb_void_cookie_t xcb_xvmc_destroy_subpicture 1220 ** 1221 ** @param xcb_connection_t *c 1222 ** @param xcb_xvmc_subpicture_t subpicture_id 1223 ** @returns xcb_void_cookie_t 1224 ** 1225 *****************************************************************************/ 1226 1227 xcb_void_cookie_t 1228 xcb_xvmc_destroy_subpicture (xcb_connection_t *c /**< */, 1229 xcb_xvmc_subpicture_t subpicture_id /**< */) 1230 { 1231 static const xcb_protocol_request_t xcb_req = { 1232 /* count */ 2, 1233 /* ext */ &xcb_xvmc_id, 1234 /* opcode */ XCB_XVMC_DESTROY_SUBPICTURE, 1235 /* isvoid */ 1 1236 }; 1237 1238 struct iovec xcb_parts[4]; 1239 xcb_void_cookie_t xcb_ret; 1240 xcb_xvmc_destroy_subpicture_request_t xcb_out; 1241 1242 xcb_out.subpicture_id = subpicture_id; 1243 1244 xcb_parts[2].iov_base = (char *) &xcb_out; 1245 xcb_parts[2].iov_len = sizeof(xcb_out); 1246 xcb_parts[3].iov_base = 0; 1247 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1248 1249 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1250 return xcb_ret; 1251 } 1252 1253 int 1254 xcb_xvmc_list_subpicture_types_sizeof (const void *_buffer /**< */) 1255 { 1256 char *xcb_tmp = (char *)_buffer; 1257 const xcb_xvmc_list_subpicture_types_reply_t *_aux = (xcb_xvmc_list_subpicture_types_reply_t *)_buffer; 1258 unsigned int xcb_buffer_len = 0; 1259 unsigned int xcb_block_len = 0; 1260 unsigned int xcb_pad = 0; 1261 unsigned int xcb_align_to = 0; 1262 1263 1264 xcb_block_len += sizeof(xcb_xvmc_list_subpicture_types_reply_t); 1265 xcb_tmp += xcb_block_len; 1266 xcb_buffer_len += xcb_block_len; 1267 xcb_block_len = 0; 1268 /* types */ 1269 xcb_block_len += _aux->num * sizeof(xcb_xv_image_format_info_t); 1270 xcb_tmp += xcb_block_len; 1271 xcb_align_to = ALIGNOF(xcb_xv_image_format_info_t); 1272 /* insert padding */ 1273 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 1274 xcb_buffer_len += xcb_block_len + xcb_pad; 1275 if (0 != xcb_pad) { 1276 xcb_tmp += xcb_pad; 1277 xcb_pad = 0; 1278 } 1279 xcb_block_len = 0; 1280 1281 return xcb_buffer_len; 1282 } 1283 1284 1285 /***************************************************************************** 1286 ** 1287 ** xcb_xvmc_list_subpicture_types_cookie_t xcb_xvmc_list_subpicture_types 1288 ** 1289 ** @param xcb_connection_t *c 1290 ** @param xcb_xv_port_t port_id 1291 ** @param xcb_xvmc_surface_t surface_id 1292 ** @returns xcb_xvmc_list_subpicture_types_cookie_t 1293 ** 1294 *****************************************************************************/ 1295 1296 xcb_xvmc_list_subpicture_types_cookie_t 1297 xcb_xvmc_list_subpicture_types (xcb_connection_t *c /**< */, 1298 xcb_xv_port_t port_id /**< */, 1299 xcb_xvmc_surface_t surface_id /**< */) 1300 { 1301 static const xcb_protocol_request_t xcb_req = { 1302 /* count */ 2, 1303 /* ext */ &xcb_xvmc_id, 1304 /* opcode */ XCB_XVMC_LIST_SUBPICTURE_TYPES, 1305 /* isvoid */ 0 1306 }; 1307 1308 struct iovec xcb_parts[4]; 1309 xcb_xvmc_list_subpicture_types_cookie_t xcb_ret; 1310 xcb_xvmc_list_subpicture_types_request_t xcb_out; 1311 1312 xcb_out.port_id = port_id; 1313 xcb_out.surface_id = surface_id; 1314 1315 xcb_parts[2].iov_base = (char *) &xcb_out; 1316 xcb_parts[2].iov_len = sizeof(xcb_out); 1317 xcb_parts[3].iov_base = 0; 1318 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1319 1320 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 1321 return xcb_ret; 1322 } 1323 1324 1325 /***************************************************************************** 1326 ** 1327 ** xcb_xvmc_list_subpicture_types_cookie_t xcb_xvmc_list_subpicture_types_unchecked 1328 ** 1329 ** @param xcb_connection_t *c 1330 ** @param xcb_xv_port_t port_id 1331 ** @param xcb_xvmc_surface_t surface_id 1332 ** @returns xcb_xvmc_list_subpicture_types_cookie_t 1333 ** 1334 *****************************************************************************/ 1335 1336 xcb_xvmc_list_subpicture_types_cookie_t 1337 xcb_xvmc_list_subpicture_types_unchecked (xcb_connection_t *c /**< */, 1338 xcb_xv_port_t port_id /**< */, 1339 xcb_xvmc_surface_t surface_id /**< */) 1340 { 1341 static const xcb_protocol_request_t xcb_req = { 1342 /* count */ 2, 1343 /* ext */ &xcb_xvmc_id, 1344 /* opcode */ XCB_XVMC_LIST_SUBPICTURE_TYPES, 1345 /* isvoid */ 0 1346 }; 1347 1348 struct iovec xcb_parts[4]; 1349 xcb_xvmc_list_subpicture_types_cookie_t xcb_ret; 1350 xcb_xvmc_list_subpicture_types_request_t xcb_out; 1351 1352 xcb_out.port_id = port_id; 1353 xcb_out.surface_id = surface_id; 1354 1355 xcb_parts[2].iov_base = (char *) &xcb_out; 1356 xcb_parts[2].iov_len = sizeof(xcb_out); 1357 xcb_parts[3].iov_base = 0; 1358 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 1359 1360 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 1361 return xcb_ret; 1362 } 1363 1364 1365 /***************************************************************************** 1366 ** 1367 ** xcb_xv_image_format_info_t * xcb_xvmc_list_subpicture_types_types 1368 ** 1369 ** @param const xcb_xvmc_list_subpicture_types_reply_t *R 1370 ** @returns xcb_xv_image_format_info_t * 1371 ** 1372 *****************************************************************************/ 1373 1374 xcb_xv_image_format_info_t * 1375 xcb_xvmc_list_subpicture_types_types (const xcb_xvmc_list_subpicture_types_reply_t *R /**< */) 1376 { 1377 return (xcb_xv_image_format_info_t *) (R + 1); 1378 } 1379 1380 1381 /***************************************************************************** 1382 ** 1383 ** int xcb_xvmc_list_subpicture_types_types_length 1384 ** 1385 ** @param const xcb_xvmc_list_subpicture_types_reply_t *R 1386 ** @returns int 1387 ** 1388 *****************************************************************************/ 1389 1390 int 1391 xcb_xvmc_list_subpicture_types_types_length (const xcb_xvmc_list_subpicture_types_reply_t *R /**< */) 1392 { 1393 return R->num; 1394 } 1395 1396 1397 /***************************************************************************** 1398 ** 1399 ** xcb_xv_image_format_info_iterator_t xcb_xvmc_list_subpicture_types_types_iterator 1400 ** 1401 ** @param const xcb_xvmc_list_subpicture_types_reply_t *R 1402 ** @returns xcb_xv_image_format_info_iterator_t 1403 ** 1404 *****************************************************************************/ 1405 1406 xcb_xv_image_format_info_iterator_t 1407 xcb_xvmc_list_subpicture_types_types_iterator (const xcb_xvmc_list_subpicture_types_reply_t *R /**< */) 1408 { 1409 xcb_xv_image_format_info_iterator_t i; 1410 i.data = (xcb_xv_image_format_info_t *) (R + 1); 1411 i.rem = R->num; 1412 i.index = (char *) i.data - (char *) R; 1413 return i; 1414 } 1415 1416 1417 /***************************************************************************** 1418 ** 1419 ** xcb_xvmc_list_subpicture_types_reply_t * xcb_xvmc_list_subpicture_types_reply 1420 ** 1421 ** @param xcb_connection_t *c 1422 ** @param xcb_xvmc_list_subpicture_types_cookie_t cookie 1423 ** @param xcb_generic_error_t **e 1424 ** @returns xcb_xvmc_list_subpicture_types_reply_t * 1425 ** 1426 *****************************************************************************/ 1427 1428 xcb_xvmc_list_subpicture_types_reply_t * 1429 xcb_xvmc_list_subpicture_types_reply (xcb_connection_t *c /**< */, 1430 xcb_xvmc_list_subpicture_types_cookie_t cookie /**< */, 1431 xcb_generic_error_t **e /**< */) 1432 { 1433 return (xcb_xvmc_list_subpicture_types_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 1434 } 1435 1436