xref: /netbsd/external/mit/xorg/lib/libxcb/files/xvmc.c (revision a842a3df)
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 "xv.h"
18 
19 xcb_extension_t xcb_xvmc_id = { "XVideo-MotionCompensation", 0 };
20 
21 void
xcb_xvmc_context_next(xcb_xvmc_context_iterator_t * i)22 xcb_xvmc_context_next (xcb_xvmc_context_iterator_t *i)
23 {
24     --i->rem;
25     ++i->data;
26     i->index += sizeof(xcb_xvmc_context_t);
27 }
28 
29 xcb_generic_iterator_t
xcb_xvmc_context_end(xcb_xvmc_context_iterator_t i)30 xcb_xvmc_context_end (xcb_xvmc_context_iterator_t i)
31 {
32     xcb_generic_iterator_t ret;
33     ret.data = i.data + i.rem;
34     ret.index = i.index + ((char *) ret.data - (char *) i.data);
35     ret.rem = 0;
36     return ret;
37 }
38 
39 void
xcb_xvmc_surface_next(xcb_xvmc_surface_iterator_t * i)40 xcb_xvmc_surface_next (xcb_xvmc_surface_iterator_t *i)
41 {
42     --i->rem;
43     ++i->data;
44     i->index += sizeof(xcb_xvmc_surface_t);
45 }
46 
47 xcb_generic_iterator_t
xcb_xvmc_surface_end(xcb_xvmc_surface_iterator_t i)48 xcb_xvmc_surface_end (xcb_xvmc_surface_iterator_t i)
49 {
50     xcb_generic_iterator_t ret;
51     ret.data = i.data + i.rem;
52     ret.index = i.index + ((char *) ret.data - (char *) i.data);
53     ret.rem = 0;
54     return ret;
55 }
56 
57 void
xcb_xvmc_subpicture_next(xcb_xvmc_subpicture_iterator_t * i)58 xcb_xvmc_subpicture_next (xcb_xvmc_subpicture_iterator_t *i)
59 {
60     --i->rem;
61     ++i->data;
62     i->index += sizeof(xcb_xvmc_subpicture_t);
63 }
64 
65 xcb_generic_iterator_t
xcb_xvmc_subpicture_end(xcb_xvmc_subpicture_iterator_t i)66 xcb_xvmc_subpicture_end (xcb_xvmc_subpicture_iterator_t i)
67 {
68     xcb_generic_iterator_t ret;
69     ret.data = i.data + i.rem;
70     ret.index = i.index + ((char *) ret.data - (char *) i.data);
71     ret.rem = 0;
72     return ret;
73 }
74 
75 void
xcb_xvmc_surface_info_next(xcb_xvmc_surface_info_iterator_t * i)76 xcb_xvmc_surface_info_next (xcb_xvmc_surface_info_iterator_t *i)
77 {
78     --i->rem;
79     ++i->data;
80     i->index += sizeof(xcb_xvmc_surface_info_t);
81 }
82 
83 xcb_generic_iterator_t
xcb_xvmc_surface_info_end(xcb_xvmc_surface_info_iterator_t i)84 xcb_xvmc_surface_info_end (xcb_xvmc_surface_info_iterator_t i)
85 {
86     xcb_generic_iterator_t ret;
87     ret.data = i.data + i.rem;
88     ret.index = i.index + ((char *) ret.data - (char *) i.data);
89     ret.rem = 0;
90     return ret;
91 }
92 
93 xcb_xvmc_query_version_cookie_t
xcb_xvmc_query_version(xcb_connection_t * c)94 xcb_xvmc_query_version (xcb_connection_t *c)
95 {
96     static const xcb_protocol_request_t xcb_req = {
97         .count = 2,
98         .ext = &xcb_xvmc_id,
99         .opcode = XCB_XVMC_QUERY_VERSION,
100         .isvoid = 0
101     };
102 
103     struct iovec xcb_parts[4];
104     xcb_xvmc_query_version_cookie_t xcb_ret;
105     xcb_xvmc_query_version_request_t xcb_out;
106 
107 
108     xcb_parts[2].iov_base = (char *) &xcb_out;
109     xcb_parts[2].iov_len = sizeof(xcb_out);
110     xcb_parts[3].iov_base = 0;
111     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
112 
113     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
114     return xcb_ret;
115 }
116 
117 xcb_xvmc_query_version_cookie_t
xcb_xvmc_query_version_unchecked(xcb_connection_t * c)118 xcb_xvmc_query_version_unchecked (xcb_connection_t *c)
119 {
120     static const xcb_protocol_request_t xcb_req = {
121         .count = 2,
122         .ext = &xcb_xvmc_id,
123         .opcode = XCB_XVMC_QUERY_VERSION,
124         .isvoid = 0
125     };
126 
127     struct iovec xcb_parts[4];
128     xcb_xvmc_query_version_cookie_t xcb_ret;
129     xcb_xvmc_query_version_request_t xcb_out;
130 
131 
132     xcb_parts[2].iov_base = (char *) &xcb_out;
133     xcb_parts[2].iov_len = sizeof(xcb_out);
134     xcb_parts[3].iov_base = 0;
135     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
136 
137     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
138     return xcb_ret;
139 }
140 
141 xcb_xvmc_query_version_reply_t *
xcb_xvmc_query_version_reply(xcb_connection_t * c,xcb_xvmc_query_version_cookie_t cookie,xcb_generic_error_t ** e)142 xcb_xvmc_query_version_reply (xcb_connection_t                 *c,
143                               xcb_xvmc_query_version_cookie_t   cookie  /**< */,
144                               xcb_generic_error_t             **e)
145 {
146     return (xcb_xvmc_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
147 }
148 
149 int
xcb_xvmc_list_surface_types_sizeof(const void * _buffer)150 xcb_xvmc_list_surface_types_sizeof (const void  *_buffer)
151 {
152     char *xcb_tmp = (char *)_buffer;
153     const xcb_xvmc_list_surface_types_reply_t *_aux = (xcb_xvmc_list_surface_types_reply_t *)_buffer;
154     unsigned int xcb_buffer_len = 0;
155     unsigned int xcb_block_len = 0;
156     unsigned int xcb_pad = 0;
157     unsigned int xcb_align_to = 0;
158 
159 
160     xcb_block_len += sizeof(xcb_xvmc_list_surface_types_reply_t);
161     xcb_tmp += xcb_block_len;
162     xcb_buffer_len += xcb_block_len;
163     xcb_block_len = 0;
164     /* surfaces */
165     xcb_block_len += _aux->num * sizeof(xcb_xvmc_surface_info_t);
166     xcb_tmp += xcb_block_len;
167     xcb_align_to = ALIGNOF(xcb_xvmc_surface_info_t);
168     /* insert padding */
169     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
170     xcb_buffer_len += xcb_block_len + xcb_pad;
171     if (0 != xcb_pad) {
172         xcb_tmp += xcb_pad;
173         xcb_pad = 0;
174     }
175     xcb_block_len = 0;
176 
177     return xcb_buffer_len;
178 }
179 
180 xcb_xvmc_list_surface_types_cookie_t
xcb_xvmc_list_surface_types(xcb_connection_t * c,xcb_xv_port_t port_id)181 xcb_xvmc_list_surface_types (xcb_connection_t *c,
182                              xcb_xv_port_t     port_id)
183 {
184     static const xcb_protocol_request_t xcb_req = {
185         .count = 2,
186         .ext = &xcb_xvmc_id,
187         .opcode = XCB_XVMC_LIST_SURFACE_TYPES,
188         .isvoid = 0
189     };
190 
191     struct iovec xcb_parts[4];
192     xcb_xvmc_list_surface_types_cookie_t xcb_ret;
193     xcb_xvmc_list_surface_types_request_t xcb_out;
194 
195     xcb_out.port_id = port_id;
196 
197     xcb_parts[2].iov_base = (char *) &xcb_out;
198     xcb_parts[2].iov_len = sizeof(xcb_out);
199     xcb_parts[3].iov_base = 0;
200     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
201 
202     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
203     return xcb_ret;
204 }
205 
206 xcb_xvmc_list_surface_types_cookie_t
xcb_xvmc_list_surface_types_unchecked(xcb_connection_t * c,xcb_xv_port_t port_id)207 xcb_xvmc_list_surface_types_unchecked (xcb_connection_t *c,
208                                        xcb_xv_port_t     port_id)
209 {
210     static const xcb_protocol_request_t xcb_req = {
211         .count = 2,
212         .ext = &xcb_xvmc_id,
213         .opcode = XCB_XVMC_LIST_SURFACE_TYPES,
214         .isvoid = 0
215     };
216 
217     struct iovec xcb_parts[4];
218     xcb_xvmc_list_surface_types_cookie_t xcb_ret;
219     xcb_xvmc_list_surface_types_request_t xcb_out;
220 
221     xcb_out.port_id = port_id;
222 
223     xcb_parts[2].iov_base = (char *) &xcb_out;
224     xcb_parts[2].iov_len = sizeof(xcb_out);
225     xcb_parts[3].iov_base = 0;
226     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
227 
228     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
229     return xcb_ret;
230 }
231 
232 xcb_xvmc_surface_info_t *
xcb_xvmc_list_surface_types_surfaces(const xcb_xvmc_list_surface_types_reply_t * R)233 xcb_xvmc_list_surface_types_surfaces (const xcb_xvmc_list_surface_types_reply_t *R)
234 {
235     return (xcb_xvmc_surface_info_t *) (R + 1);
236 }
237 
238 int
xcb_xvmc_list_surface_types_surfaces_length(const xcb_xvmc_list_surface_types_reply_t * R)239 xcb_xvmc_list_surface_types_surfaces_length (const xcb_xvmc_list_surface_types_reply_t *R)
240 {
241     return R->num;
242 }
243 
244 xcb_xvmc_surface_info_iterator_t
xcb_xvmc_list_surface_types_surfaces_iterator(const xcb_xvmc_list_surface_types_reply_t * R)245 xcb_xvmc_list_surface_types_surfaces_iterator (const xcb_xvmc_list_surface_types_reply_t *R)
246 {
247     xcb_xvmc_surface_info_iterator_t i;
248     i.data = (xcb_xvmc_surface_info_t *) (R + 1);
249     i.rem = R->num;
250     i.index = (char *) i.data - (char *) R;
251     return i;
252 }
253 
254 xcb_xvmc_list_surface_types_reply_t *
xcb_xvmc_list_surface_types_reply(xcb_connection_t * c,xcb_xvmc_list_surface_types_cookie_t cookie,xcb_generic_error_t ** e)255 xcb_xvmc_list_surface_types_reply (xcb_connection_t                      *c,
256                                    xcb_xvmc_list_surface_types_cookie_t   cookie  /**< */,
257                                    xcb_generic_error_t                  **e)
258 {
259     return (xcb_xvmc_list_surface_types_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
260 }
261 
262 int
xcb_xvmc_create_context_sizeof(const void * _buffer)263 xcb_xvmc_create_context_sizeof (const void  *_buffer)
264 {
265     char *xcb_tmp = (char *)_buffer;
266     const xcb_xvmc_create_context_reply_t *_aux = (xcb_xvmc_create_context_reply_t *)_buffer;
267     unsigned int xcb_buffer_len = 0;
268     unsigned int xcb_block_len = 0;
269     unsigned int xcb_pad = 0;
270     unsigned int xcb_align_to = 0;
271 
272 
273     xcb_block_len += sizeof(xcb_xvmc_create_context_reply_t);
274     xcb_tmp += xcb_block_len;
275     xcb_buffer_len += xcb_block_len;
276     xcb_block_len = 0;
277     /* priv_data */
278     xcb_block_len += _aux->length * sizeof(uint32_t);
279     xcb_tmp += xcb_block_len;
280     xcb_align_to = ALIGNOF(uint32_t);
281     /* insert padding */
282     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
283     xcb_buffer_len += xcb_block_len + xcb_pad;
284     if (0 != xcb_pad) {
285         xcb_tmp += xcb_pad;
286         xcb_pad = 0;
287     }
288     xcb_block_len = 0;
289 
290     return xcb_buffer_len;
291 }
292 
293 xcb_xvmc_create_context_cookie_t
xcb_xvmc_create_context(xcb_connection_t * c,xcb_xvmc_context_t context_id,xcb_xv_port_t port_id,xcb_xvmc_surface_t surface_id,uint16_t width,uint16_t height,uint32_t flags)294 xcb_xvmc_create_context (xcb_connection_t   *c,
295                          xcb_xvmc_context_t  context_id,
296                          xcb_xv_port_t       port_id,
297                          xcb_xvmc_surface_t  surface_id,
298                          uint16_t            width,
299                          uint16_t            height,
300                          uint32_t            flags)
301 {
302     static const xcb_protocol_request_t xcb_req = {
303         .count = 2,
304         .ext = &xcb_xvmc_id,
305         .opcode = XCB_XVMC_CREATE_CONTEXT,
306         .isvoid = 0
307     };
308 
309     struct iovec xcb_parts[4];
310     xcb_xvmc_create_context_cookie_t xcb_ret;
311     xcb_xvmc_create_context_request_t xcb_out;
312 
313     xcb_out.context_id = context_id;
314     xcb_out.port_id = port_id;
315     xcb_out.surface_id = surface_id;
316     xcb_out.width = width;
317     xcb_out.height = height;
318     xcb_out.flags = flags;
319 
320     xcb_parts[2].iov_base = (char *) &xcb_out;
321     xcb_parts[2].iov_len = sizeof(xcb_out);
322     xcb_parts[3].iov_base = 0;
323     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
324 
325     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
326     return xcb_ret;
327 }
328 
329 xcb_xvmc_create_context_cookie_t
xcb_xvmc_create_context_unchecked(xcb_connection_t * c,xcb_xvmc_context_t context_id,xcb_xv_port_t port_id,xcb_xvmc_surface_t surface_id,uint16_t width,uint16_t height,uint32_t flags)330 xcb_xvmc_create_context_unchecked (xcb_connection_t   *c,
331                                    xcb_xvmc_context_t  context_id,
332                                    xcb_xv_port_t       port_id,
333                                    xcb_xvmc_surface_t  surface_id,
334                                    uint16_t            width,
335                                    uint16_t            height,
336                                    uint32_t            flags)
337 {
338     static const xcb_protocol_request_t xcb_req = {
339         .count = 2,
340         .ext = &xcb_xvmc_id,
341         .opcode = XCB_XVMC_CREATE_CONTEXT,
342         .isvoid = 0
343     };
344 
345     struct iovec xcb_parts[4];
346     xcb_xvmc_create_context_cookie_t xcb_ret;
347     xcb_xvmc_create_context_request_t xcb_out;
348 
349     xcb_out.context_id = context_id;
350     xcb_out.port_id = port_id;
351     xcb_out.surface_id = surface_id;
352     xcb_out.width = width;
353     xcb_out.height = height;
354     xcb_out.flags = flags;
355 
356     xcb_parts[2].iov_base = (char *) &xcb_out;
357     xcb_parts[2].iov_len = sizeof(xcb_out);
358     xcb_parts[3].iov_base = 0;
359     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
360 
361     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
362     return xcb_ret;
363 }
364 
365 uint32_t *
xcb_xvmc_create_context_priv_data(const xcb_xvmc_create_context_reply_t * R)366 xcb_xvmc_create_context_priv_data (const xcb_xvmc_create_context_reply_t *R)
367 {
368     return (uint32_t *) (R + 1);
369 }
370 
371 int
xcb_xvmc_create_context_priv_data_length(const xcb_xvmc_create_context_reply_t * R)372 xcb_xvmc_create_context_priv_data_length (const xcb_xvmc_create_context_reply_t *R)
373 {
374     return R->length;
375 }
376 
377 xcb_generic_iterator_t
xcb_xvmc_create_context_priv_data_end(const xcb_xvmc_create_context_reply_t * R)378 xcb_xvmc_create_context_priv_data_end (const xcb_xvmc_create_context_reply_t *R)
379 {
380     xcb_generic_iterator_t i;
381     i.data = ((uint32_t *) (R + 1)) + (R->length);
382     i.rem = 0;
383     i.index = (char *) i.data - (char *) R;
384     return i;
385 }
386 
387 xcb_xvmc_create_context_reply_t *
xcb_xvmc_create_context_reply(xcb_connection_t * c,xcb_xvmc_create_context_cookie_t cookie,xcb_generic_error_t ** e)388 xcb_xvmc_create_context_reply (xcb_connection_t                  *c,
389                                xcb_xvmc_create_context_cookie_t   cookie  /**< */,
390                                xcb_generic_error_t              **e)
391 {
392     return (xcb_xvmc_create_context_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
393 }
394 
395 xcb_void_cookie_t
xcb_xvmc_destroy_context_checked(xcb_connection_t * c,xcb_xvmc_context_t context_id)396 xcb_xvmc_destroy_context_checked (xcb_connection_t   *c,
397                                   xcb_xvmc_context_t  context_id)
398 {
399     static const xcb_protocol_request_t xcb_req = {
400         .count = 2,
401         .ext = &xcb_xvmc_id,
402         .opcode = XCB_XVMC_DESTROY_CONTEXT,
403         .isvoid = 1
404     };
405 
406     struct iovec xcb_parts[4];
407     xcb_void_cookie_t xcb_ret;
408     xcb_xvmc_destroy_context_request_t xcb_out;
409 
410     xcb_out.context_id = context_id;
411 
412     xcb_parts[2].iov_base = (char *) &xcb_out;
413     xcb_parts[2].iov_len = sizeof(xcb_out);
414     xcb_parts[3].iov_base = 0;
415     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
416 
417     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
418     return xcb_ret;
419 }
420 
421 xcb_void_cookie_t
xcb_xvmc_destroy_context(xcb_connection_t * c,xcb_xvmc_context_t context_id)422 xcb_xvmc_destroy_context (xcb_connection_t   *c,
423                           xcb_xvmc_context_t  context_id)
424 {
425     static const xcb_protocol_request_t xcb_req = {
426         .count = 2,
427         .ext = &xcb_xvmc_id,
428         .opcode = XCB_XVMC_DESTROY_CONTEXT,
429         .isvoid = 1
430     };
431 
432     struct iovec xcb_parts[4];
433     xcb_void_cookie_t xcb_ret;
434     xcb_xvmc_destroy_context_request_t xcb_out;
435 
436     xcb_out.context_id = context_id;
437 
438     xcb_parts[2].iov_base = (char *) &xcb_out;
439     xcb_parts[2].iov_len = sizeof(xcb_out);
440     xcb_parts[3].iov_base = 0;
441     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
442 
443     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
444     return xcb_ret;
445 }
446 
447 int
xcb_xvmc_create_surface_sizeof(const void * _buffer)448 xcb_xvmc_create_surface_sizeof (const void  *_buffer)
449 {
450     char *xcb_tmp = (char *)_buffer;
451     const xcb_xvmc_create_surface_reply_t *_aux = (xcb_xvmc_create_surface_reply_t *)_buffer;
452     unsigned int xcb_buffer_len = 0;
453     unsigned int xcb_block_len = 0;
454     unsigned int xcb_pad = 0;
455     unsigned int xcb_align_to = 0;
456 
457 
458     xcb_block_len += sizeof(xcb_xvmc_create_surface_reply_t);
459     xcb_tmp += xcb_block_len;
460     xcb_buffer_len += xcb_block_len;
461     xcb_block_len = 0;
462     /* priv_data */
463     xcb_block_len += _aux->length * sizeof(uint32_t);
464     xcb_tmp += xcb_block_len;
465     xcb_align_to = ALIGNOF(uint32_t);
466     /* insert padding */
467     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
468     xcb_buffer_len += xcb_block_len + xcb_pad;
469     if (0 != xcb_pad) {
470         xcb_tmp += xcb_pad;
471         xcb_pad = 0;
472     }
473     xcb_block_len = 0;
474 
475     return xcb_buffer_len;
476 }
477 
478 xcb_xvmc_create_surface_cookie_t
xcb_xvmc_create_surface(xcb_connection_t * c,xcb_xvmc_surface_t surface_id,xcb_xvmc_context_t context_id)479 xcb_xvmc_create_surface (xcb_connection_t   *c,
480                          xcb_xvmc_surface_t  surface_id,
481                          xcb_xvmc_context_t  context_id)
482 {
483     static const xcb_protocol_request_t xcb_req = {
484         .count = 2,
485         .ext = &xcb_xvmc_id,
486         .opcode = XCB_XVMC_CREATE_SURFACE,
487         .isvoid = 0
488     };
489 
490     struct iovec xcb_parts[4];
491     xcb_xvmc_create_surface_cookie_t xcb_ret;
492     xcb_xvmc_create_surface_request_t xcb_out;
493 
494     xcb_out.surface_id = surface_id;
495     xcb_out.context_id = context_id;
496 
497     xcb_parts[2].iov_base = (char *) &xcb_out;
498     xcb_parts[2].iov_len = sizeof(xcb_out);
499     xcb_parts[3].iov_base = 0;
500     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
501 
502     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
503     return xcb_ret;
504 }
505 
506 xcb_xvmc_create_surface_cookie_t
xcb_xvmc_create_surface_unchecked(xcb_connection_t * c,xcb_xvmc_surface_t surface_id,xcb_xvmc_context_t context_id)507 xcb_xvmc_create_surface_unchecked (xcb_connection_t   *c,
508                                    xcb_xvmc_surface_t  surface_id,
509                                    xcb_xvmc_context_t  context_id)
510 {
511     static const xcb_protocol_request_t xcb_req = {
512         .count = 2,
513         .ext = &xcb_xvmc_id,
514         .opcode = XCB_XVMC_CREATE_SURFACE,
515         .isvoid = 0
516     };
517 
518     struct iovec xcb_parts[4];
519     xcb_xvmc_create_surface_cookie_t xcb_ret;
520     xcb_xvmc_create_surface_request_t xcb_out;
521 
522     xcb_out.surface_id = surface_id;
523     xcb_out.context_id = context_id;
524 
525     xcb_parts[2].iov_base = (char *) &xcb_out;
526     xcb_parts[2].iov_len = sizeof(xcb_out);
527     xcb_parts[3].iov_base = 0;
528     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
529 
530     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
531     return xcb_ret;
532 }
533 
534 uint32_t *
xcb_xvmc_create_surface_priv_data(const xcb_xvmc_create_surface_reply_t * R)535 xcb_xvmc_create_surface_priv_data (const xcb_xvmc_create_surface_reply_t *R)
536 {
537     return (uint32_t *) (R + 1);
538 }
539 
540 int
xcb_xvmc_create_surface_priv_data_length(const xcb_xvmc_create_surface_reply_t * R)541 xcb_xvmc_create_surface_priv_data_length (const xcb_xvmc_create_surface_reply_t *R)
542 {
543     return R->length;
544 }
545 
546 xcb_generic_iterator_t
xcb_xvmc_create_surface_priv_data_end(const xcb_xvmc_create_surface_reply_t * R)547 xcb_xvmc_create_surface_priv_data_end (const xcb_xvmc_create_surface_reply_t *R)
548 {
549     xcb_generic_iterator_t i;
550     i.data = ((uint32_t *) (R + 1)) + (R->length);
551     i.rem = 0;
552     i.index = (char *) i.data - (char *) R;
553     return i;
554 }
555 
556 xcb_xvmc_create_surface_reply_t *
xcb_xvmc_create_surface_reply(xcb_connection_t * c,xcb_xvmc_create_surface_cookie_t cookie,xcb_generic_error_t ** e)557 xcb_xvmc_create_surface_reply (xcb_connection_t                  *c,
558                                xcb_xvmc_create_surface_cookie_t   cookie  /**< */,
559                                xcb_generic_error_t              **e)
560 {
561     return (xcb_xvmc_create_surface_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
562 }
563 
564 xcb_void_cookie_t
xcb_xvmc_destroy_surface_checked(xcb_connection_t * c,xcb_xvmc_surface_t surface_id)565 xcb_xvmc_destroy_surface_checked (xcb_connection_t   *c,
566                                   xcb_xvmc_surface_t  surface_id)
567 {
568     static const xcb_protocol_request_t xcb_req = {
569         .count = 2,
570         .ext = &xcb_xvmc_id,
571         .opcode = XCB_XVMC_DESTROY_SURFACE,
572         .isvoid = 1
573     };
574 
575     struct iovec xcb_parts[4];
576     xcb_void_cookie_t xcb_ret;
577     xcb_xvmc_destroy_surface_request_t xcb_out;
578 
579     xcb_out.surface_id = surface_id;
580 
581     xcb_parts[2].iov_base = (char *) &xcb_out;
582     xcb_parts[2].iov_len = sizeof(xcb_out);
583     xcb_parts[3].iov_base = 0;
584     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
585 
586     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
587     return xcb_ret;
588 }
589 
590 xcb_void_cookie_t
xcb_xvmc_destroy_surface(xcb_connection_t * c,xcb_xvmc_surface_t surface_id)591 xcb_xvmc_destroy_surface (xcb_connection_t   *c,
592                           xcb_xvmc_surface_t  surface_id)
593 {
594     static const xcb_protocol_request_t xcb_req = {
595         .count = 2,
596         .ext = &xcb_xvmc_id,
597         .opcode = XCB_XVMC_DESTROY_SURFACE,
598         .isvoid = 1
599     };
600 
601     struct iovec xcb_parts[4];
602     xcb_void_cookie_t xcb_ret;
603     xcb_xvmc_destroy_surface_request_t xcb_out;
604 
605     xcb_out.surface_id = surface_id;
606 
607     xcb_parts[2].iov_base = (char *) &xcb_out;
608     xcb_parts[2].iov_len = sizeof(xcb_out);
609     xcb_parts[3].iov_base = 0;
610     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
611 
612     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
613     return xcb_ret;
614 }
615 
616 int
xcb_xvmc_create_subpicture_sizeof(const void * _buffer)617 xcb_xvmc_create_subpicture_sizeof (const void  *_buffer)
618 {
619     char *xcb_tmp = (char *)_buffer;
620     const xcb_xvmc_create_subpicture_reply_t *_aux = (xcb_xvmc_create_subpicture_reply_t *)_buffer;
621     unsigned int xcb_buffer_len = 0;
622     unsigned int xcb_block_len = 0;
623     unsigned int xcb_pad = 0;
624     unsigned int xcb_align_to = 0;
625 
626 
627     xcb_block_len += sizeof(xcb_xvmc_create_subpicture_reply_t);
628     xcb_tmp += xcb_block_len;
629     xcb_buffer_len += xcb_block_len;
630     xcb_block_len = 0;
631     /* priv_data */
632     xcb_block_len += _aux->length * sizeof(uint32_t);
633     xcb_tmp += xcb_block_len;
634     xcb_align_to = ALIGNOF(uint32_t);
635     /* insert padding */
636     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
637     xcb_buffer_len += xcb_block_len + xcb_pad;
638     if (0 != xcb_pad) {
639         xcb_tmp += xcb_pad;
640         xcb_pad = 0;
641     }
642     xcb_block_len = 0;
643 
644     return xcb_buffer_len;
645 }
646 
647 xcb_xvmc_create_subpicture_cookie_t
xcb_xvmc_create_subpicture(xcb_connection_t * c,xcb_xvmc_subpicture_t subpicture_id,xcb_xvmc_context_t context,uint32_t xvimage_id,uint16_t width,uint16_t height)648 xcb_xvmc_create_subpicture (xcb_connection_t      *c,
649                             xcb_xvmc_subpicture_t  subpicture_id,
650                             xcb_xvmc_context_t     context,
651                             uint32_t               xvimage_id,
652                             uint16_t               width,
653                             uint16_t               height)
654 {
655     static const xcb_protocol_request_t xcb_req = {
656         .count = 2,
657         .ext = &xcb_xvmc_id,
658         .opcode = XCB_XVMC_CREATE_SUBPICTURE,
659         .isvoid = 0
660     };
661 
662     struct iovec xcb_parts[4];
663     xcb_xvmc_create_subpicture_cookie_t xcb_ret;
664     xcb_xvmc_create_subpicture_request_t xcb_out;
665 
666     xcb_out.subpicture_id = subpicture_id;
667     xcb_out.context = context;
668     xcb_out.xvimage_id = xvimage_id;
669     xcb_out.width = width;
670     xcb_out.height = height;
671 
672     xcb_parts[2].iov_base = (char *) &xcb_out;
673     xcb_parts[2].iov_len = sizeof(xcb_out);
674     xcb_parts[3].iov_base = 0;
675     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
676 
677     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
678     return xcb_ret;
679 }
680 
681 xcb_xvmc_create_subpicture_cookie_t
xcb_xvmc_create_subpicture_unchecked(xcb_connection_t * c,xcb_xvmc_subpicture_t subpicture_id,xcb_xvmc_context_t context,uint32_t xvimage_id,uint16_t width,uint16_t height)682 xcb_xvmc_create_subpicture_unchecked (xcb_connection_t      *c,
683                                       xcb_xvmc_subpicture_t  subpicture_id,
684                                       xcb_xvmc_context_t     context,
685                                       uint32_t               xvimage_id,
686                                       uint16_t               width,
687                                       uint16_t               height)
688 {
689     static const xcb_protocol_request_t xcb_req = {
690         .count = 2,
691         .ext = &xcb_xvmc_id,
692         .opcode = XCB_XVMC_CREATE_SUBPICTURE,
693         .isvoid = 0
694     };
695 
696     struct iovec xcb_parts[4];
697     xcb_xvmc_create_subpicture_cookie_t xcb_ret;
698     xcb_xvmc_create_subpicture_request_t xcb_out;
699 
700     xcb_out.subpicture_id = subpicture_id;
701     xcb_out.context = context;
702     xcb_out.xvimage_id = xvimage_id;
703     xcb_out.width = width;
704     xcb_out.height = height;
705 
706     xcb_parts[2].iov_base = (char *) &xcb_out;
707     xcb_parts[2].iov_len = sizeof(xcb_out);
708     xcb_parts[3].iov_base = 0;
709     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
710 
711     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
712     return xcb_ret;
713 }
714 
715 uint32_t *
xcb_xvmc_create_subpicture_priv_data(const xcb_xvmc_create_subpicture_reply_t * R)716 xcb_xvmc_create_subpicture_priv_data (const xcb_xvmc_create_subpicture_reply_t *R)
717 {
718     return (uint32_t *) (R + 1);
719 }
720 
721 int
xcb_xvmc_create_subpicture_priv_data_length(const xcb_xvmc_create_subpicture_reply_t * R)722 xcb_xvmc_create_subpicture_priv_data_length (const xcb_xvmc_create_subpicture_reply_t *R)
723 {
724     return R->length;
725 }
726 
727 xcb_generic_iterator_t
xcb_xvmc_create_subpicture_priv_data_end(const xcb_xvmc_create_subpicture_reply_t * R)728 xcb_xvmc_create_subpicture_priv_data_end (const xcb_xvmc_create_subpicture_reply_t *R)
729 {
730     xcb_generic_iterator_t i;
731     i.data = ((uint32_t *) (R + 1)) + (R->length);
732     i.rem = 0;
733     i.index = (char *) i.data - (char *) R;
734     return i;
735 }
736 
737 xcb_xvmc_create_subpicture_reply_t *
xcb_xvmc_create_subpicture_reply(xcb_connection_t * c,xcb_xvmc_create_subpicture_cookie_t cookie,xcb_generic_error_t ** e)738 xcb_xvmc_create_subpicture_reply (xcb_connection_t                     *c,
739                                   xcb_xvmc_create_subpicture_cookie_t   cookie  /**< */,
740                                   xcb_generic_error_t                 **e)
741 {
742     return (xcb_xvmc_create_subpicture_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
743 }
744 
745 xcb_void_cookie_t
xcb_xvmc_destroy_subpicture_checked(xcb_connection_t * c,xcb_xvmc_subpicture_t subpicture_id)746 xcb_xvmc_destroy_subpicture_checked (xcb_connection_t      *c,
747                                      xcb_xvmc_subpicture_t  subpicture_id)
748 {
749     static const xcb_protocol_request_t xcb_req = {
750         .count = 2,
751         .ext = &xcb_xvmc_id,
752         .opcode = XCB_XVMC_DESTROY_SUBPICTURE,
753         .isvoid = 1
754     };
755 
756     struct iovec xcb_parts[4];
757     xcb_void_cookie_t xcb_ret;
758     xcb_xvmc_destroy_subpicture_request_t xcb_out;
759 
760     xcb_out.subpicture_id = subpicture_id;
761 
762     xcb_parts[2].iov_base = (char *) &xcb_out;
763     xcb_parts[2].iov_len = sizeof(xcb_out);
764     xcb_parts[3].iov_base = 0;
765     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
766 
767     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
768     return xcb_ret;
769 }
770 
771 xcb_void_cookie_t
xcb_xvmc_destroy_subpicture(xcb_connection_t * c,xcb_xvmc_subpicture_t subpicture_id)772 xcb_xvmc_destroy_subpicture (xcb_connection_t      *c,
773                              xcb_xvmc_subpicture_t  subpicture_id)
774 {
775     static const xcb_protocol_request_t xcb_req = {
776         .count = 2,
777         .ext = &xcb_xvmc_id,
778         .opcode = XCB_XVMC_DESTROY_SUBPICTURE,
779         .isvoid = 1
780     };
781 
782     struct iovec xcb_parts[4];
783     xcb_void_cookie_t xcb_ret;
784     xcb_xvmc_destroy_subpicture_request_t xcb_out;
785 
786     xcb_out.subpicture_id = subpicture_id;
787 
788     xcb_parts[2].iov_base = (char *) &xcb_out;
789     xcb_parts[2].iov_len = sizeof(xcb_out);
790     xcb_parts[3].iov_base = 0;
791     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
792 
793     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
794     return xcb_ret;
795 }
796 
797 int
xcb_xvmc_list_subpicture_types_sizeof(const void * _buffer)798 xcb_xvmc_list_subpicture_types_sizeof (const void  *_buffer)
799 {
800     char *xcb_tmp = (char *)_buffer;
801     const xcb_xvmc_list_subpicture_types_reply_t *_aux = (xcb_xvmc_list_subpicture_types_reply_t *)_buffer;
802     unsigned int xcb_buffer_len = 0;
803     unsigned int xcb_block_len = 0;
804     unsigned int xcb_pad = 0;
805     unsigned int xcb_align_to = 0;
806 
807 
808     xcb_block_len += sizeof(xcb_xvmc_list_subpicture_types_reply_t);
809     xcb_tmp += xcb_block_len;
810     xcb_buffer_len += xcb_block_len;
811     xcb_block_len = 0;
812     /* types */
813     xcb_block_len += _aux->num * sizeof(xcb_xv_image_format_info_t);
814     xcb_tmp += xcb_block_len;
815     xcb_align_to = ALIGNOF(xcb_xv_image_format_info_t);
816     /* insert padding */
817     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
818     xcb_buffer_len += xcb_block_len + xcb_pad;
819     if (0 != xcb_pad) {
820         xcb_tmp += xcb_pad;
821         xcb_pad = 0;
822     }
823     xcb_block_len = 0;
824 
825     return xcb_buffer_len;
826 }
827 
828 xcb_xvmc_list_subpicture_types_cookie_t
xcb_xvmc_list_subpicture_types(xcb_connection_t * c,xcb_xv_port_t port_id,xcb_xvmc_surface_t surface_id)829 xcb_xvmc_list_subpicture_types (xcb_connection_t   *c,
830                                 xcb_xv_port_t       port_id,
831                                 xcb_xvmc_surface_t  surface_id)
832 {
833     static const xcb_protocol_request_t xcb_req = {
834         .count = 2,
835         .ext = &xcb_xvmc_id,
836         .opcode = XCB_XVMC_LIST_SUBPICTURE_TYPES,
837         .isvoid = 0
838     };
839 
840     struct iovec xcb_parts[4];
841     xcb_xvmc_list_subpicture_types_cookie_t xcb_ret;
842     xcb_xvmc_list_subpicture_types_request_t xcb_out;
843 
844     xcb_out.port_id = port_id;
845     xcb_out.surface_id = surface_id;
846 
847     xcb_parts[2].iov_base = (char *) &xcb_out;
848     xcb_parts[2].iov_len = sizeof(xcb_out);
849     xcb_parts[3].iov_base = 0;
850     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
851 
852     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
853     return xcb_ret;
854 }
855 
856 xcb_xvmc_list_subpicture_types_cookie_t
xcb_xvmc_list_subpicture_types_unchecked(xcb_connection_t * c,xcb_xv_port_t port_id,xcb_xvmc_surface_t surface_id)857 xcb_xvmc_list_subpicture_types_unchecked (xcb_connection_t   *c,
858                                           xcb_xv_port_t       port_id,
859                                           xcb_xvmc_surface_t  surface_id)
860 {
861     static const xcb_protocol_request_t xcb_req = {
862         .count = 2,
863         .ext = &xcb_xvmc_id,
864         .opcode = XCB_XVMC_LIST_SUBPICTURE_TYPES,
865         .isvoid = 0
866     };
867 
868     struct iovec xcb_parts[4];
869     xcb_xvmc_list_subpicture_types_cookie_t xcb_ret;
870     xcb_xvmc_list_subpicture_types_request_t xcb_out;
871 
872     xcb_out.port_id = port_id;
873     xcb_out.surface_id = surface_id;
874 
875     xcb_parts[2].iov_base = (char *) &xcb_out;
876     xcb_parts[2].iov_len = sizeof(xcb_out);
877     xcb_parts[3].iov_base = 0;
878     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
879 
880     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
881     return xcb_ret;
882 }
883 
884 xcb_xv_image_format_info_t *
xcb_xvmc_list_subpicture_types_types(const xcb_xvmc_list_subpicture_types_reply_t * R)885 xcb_xvmc_list_subpicture_types_types (const xcb_xvmc_list_subpicture_types_reply_t *R)
886 {
887     return (xcb_xv_image_format_info_t *) (R + 1);
888 }
889 
890 int
xcb_xvmc_list_subpicture_types_types_length(const xcb_xvmc_list_subpicture_types_reply_t * R)891 xcb_xvmc_list_subpicture_types_types_length (const xcb_xvmc_list_subpicture_types_reply_t *R)
892 {
893     return R->num;
894 }
895 
896 xcb_xv_image_format_info_iterator_t
xcb_xvmc_list_subpicture_types_types_iterator(const xcb_xvmc_list_subpicture_types_reply_t * R)897 xcb_xvmc_list_subpicture_types_types_iterator (const xcb_xvmc_list_subpicture_types_reply_t *R)
898 {
899     xcb_xv_image_format_info_iterator_t i;
900     i.data = (xcb_xv_image_format_info_t *) (R + 1);
901     i.rem = R->num;
902     i.index = (char *) i.data - (char *) R;
903     return i;
904 }
905 
906 xcb_xvmc_list_subpicture_types_reply_t *
xcb_xvmc_list_subpicture_types_reply(xcb_connection_t * c,xcb_xvmc_list_subpicture_types_cookie_t cookie,xcb_generic_error_t ** e)907 xcb_xvmc_list_subpicture_types_reply (xcb_connection_t                         *c,
908                                       xcb_xvmc_list_subpicture_types_cookie_t   cookie  /**< */,
909                                       xcb_generic_error_t                     **e)
910 {
911     return (xcb_xvmc_list_subpicture_types_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
912 }
913 
914