xref: /minix/external/mit/xorg/lib/libxcb/files/xv.c (revision 0a6a1f1d)
1 /*
2  * This file generated automatically from xv.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 "xv.h"
15 
16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
17 #include "xproto.h"
18 #include "shm.h"
19 
20 xcb_extension_t xcb_xv_id = { "XVideo", 0 };
21 
22 void
xcb_xv_port_next(xcb_xv_port_iterator_t * i)23 xcb_xv_port_next (xcb_xv_port_iterator_t *i  /**< */)
24 {
25     --i->rem;
26     ++i->data;
27     i->index += sizeof(xcb_xv_port_t);
28 }
29 
30 xcb_generic_iterator_t
xcb_xv_port_end(xcb_xv_port_iterator_t i)31 xcb_xv_port_end (xcb_xv_port_iterator_t i  /**< */)
32 {
33     xcb_generic_iterator_t ret;
34     ret.data = i.data + i.rem;
35     ret.index = i.index + ((char *) ret.data - (char *) i.data);
36     ret.rem = 0;
37     return ret;
38 }
39 
40 void
xcb_xv_encoding_next(xcb_xv_encoding_iterator_t * i)41 xcb_xv_encoding_next (xcb_xv_encoding_iterator_t *i  /**< */)
42 {
43     --i->rem;
44     ++i->data;
45     i->index += sizeof(xcb_xv_encoding_t);
46 }
47 
48 xcb_generic_iterator_t
xcb_xv_encoding_end(xcb_xv_encoding_iterator_t i)49 xcb_xv_encoding_end (xcb_xv_encoding_iterator_t i  /**< */)
50 {
51     xcb_generic_iterator_t ret;
52     ret.data = i.data + i.rem;
53     ret.index = i.index + ((char *) ret.data - (char *) i.data);
54     ret.rem = 0;
55     return ret;
56 }
57 
58 void
xcb_xv_rational_next(xcb_xv_rational_iterator_t * i)59 xcb_xv_rational_next (xcb_xv_rational_iterator_t *i  /**< */)
60 {
61     --i->rem;
62     ++i->data;
63     i->index += sizeof(xcb_xv_rational_t);
64 }
65 
66 xcb_generic_iterator_t
xcb_xv_rational_end(xcb_xv_rational_iterator_t i)67 xcb_xv_rational_end (xcb_xv_rational_iterator_t i  /**< */)
68 {
69     xcb_generic_iterator_t ret;
70     ret.data = i.data + i.rem;
71     ret.index = i.index + ((char *) ret.data - (char *) i.data);
72     ret.rem = 0;
73     return ret;
74 }
75 
76 void
xcb_xv_format_next(xcb_xv_format_iterator_t * i)77 xcb_xv_format_next (xcb_xv_format_iterator_t *i  /**< */)
78 {
79     --i->rem;
80     ++i->data;
81     i->index += sizeof(xcb_xv_format_t);
82 }
83 
84 xcb_generic_iterator_t
xcb_xv_format_end(xcb_xv_format_iterator_t i)85 xcb_xv_format_end (xcb_xv_format_iterator_t i  /**< */)
86 {
87     xcb_generic_iterator_t ret;
88     ret.data = i.data + i.rem;
89     ret.index = i.index + ((char *) ret.data - (char *) i.data);
90     ret.rem = 0;
91     return ret;
92 }
93 
94 int
xcb_xv_adaptor_info_sizeof(const void * _buffer)95 xcb_xv_adaptor_info_sizeof (const void  *_buffer  /**< */)
96 {
97     char *xcb_tmp = (char *)_buffer;
98     const xcb_xv_adaptor_info_t *_aux = (xcb_xv_adaptor_info_t *)_buffer;
99     unsigned int xcb_buffer_len = 0;
100     unsigned int xcb_block_len = 0;
101     unsigned int xcb_pad = 0;
102     unsigned int xcb_align_to = 0;
103 
104 
105     xcb_block_len += sizeof(xcb_xv_adaptor_info_t);
106     xcb_tmp += xcb_block_len;
107     xcb_buffer_len += xcb_block_len;
108     xcb_block_len = 0;
109     /* name */
110     xcb_block_len += _aux->name_size * sizeof(char);
111     xcb_tmp += xcb_block_len;
112     xcb_align_to = ALIGNOF(char);
113     xcb_align_to = 4;
114     /* insert padding */
115     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
116     xcb_buffer_len += xcb_block_len + xcb_pad;
117     if (0 != xcb_pad) {
118         xcb_tmp += xcb_pad;
119         xcb_pad = 0;
120     }
121     xcb_block_len = 0;
122     /* insert padding */
123     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
124     xcb_buffer_len += xcb_block_len + xcb_pad;
125     if (0 != xcb_pad) {
126         xcb_tmp += xcb_pad;
127         xcb_pad = 0;
128     }
129     xcb_block_len = 0;
130     /* formats */
131     xcb_block_len += _aux->num_formats * sizeof(xcb_xv_format_t);
132     xcb_tmp += xcb_block_len;
133     xcb_align_to = ALIGNOF(xcb_xv_format_t);
134     /* insert padding */
135     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
136     xcb_buffer_len += xcb_block_len + xcb_pad;
137     if (0 != xcb_pad) {
138         xcb_tmp += xcb_pad;
139         xcb_pad = 0;
140     }
141     xcb_block_len = 0;
142 
143     return xcb_buffer_len;
144 }
145 
146 char *
xcb_xv_adaptor_info_name(const xcb_xv_adaptor_info_t * R)147 xcb_xv_adaptor_info_name (const xcb_xv_adaptor_info_t *R  /**< */)
148 {
149     return (char *) (R + 1);
150 }
151 
152 int
xcb_xv_adaptor_info_name_length(const xcb_xv_adaptor_info_t * R)153 xcb_xv_adaptor_info_name_length (const xcb_xv_adaptor_info_t *R  /**< */)
154 {
155     return R->name_size;
156 }
157 
158 xcb_generic_iterator_t
xcb_xv_adaptor_info_name_end(const xcb_xv_adaptor_info_t * R)159 xcb_xv_adaptor_info_name_end (const xcb_xv_adaptor_info_t *R  /**< */)
160 {
161     xcb_generic_iterator_t i;
162     i.data = ((char *) (R + 1)) + (R->name_size);
163     i.rem = 0;
164     i.index = (char *) i.data - (char *) R;
165     return i;
166 }
167 
168 xcb_xv_format_t *
xcb_xv_adaptor_info_formats(const xcb_xv_adaptor_info_t * R)169 xcb_xv_adaptor_info_formats (const xcb_xv_adaptor_info_t *R  /**< */)
170 {
171     xcb_generic_iterator_t prev = xcb_xv_adaptor_info_name_end(R);
172     return (xcb_xv_format_t *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0);
173 }
174 
175 int
xcb_xv_adaptor_info_formats_length(const xcb_xv_adaptor_info_t * R)176 xcb_xv_adaptor_info_formats_length (const xcb_xv_adaptor_info_t *R  /**< */)
177 {
178     return R->num_formats;
179 }
180 
181 xcb_xv_format_iterator_t
xcb_xv_adaptor_info_formats_iterator(const xcb_xv_adaptor_info_t * R)182 xcb_xv_adaptor_info_formats_iterator (const xcb_xv_adaptor_info_t *R  /**< */)
183 {
184     xcb_xv_format_iterator_t i;
185     xcb_generic_iterator_t prev = xcb_xv_adaptor_info_name_end(R);
186     i.data = (xcb_xv_format_t *) ((char *) prev.data + ((-prev.index) & (4 - 1)));
187     i.rem = R->num_formats;
188     i.index = (char *) i.data - (char *) R;
189     return i;
190 }
191 
192 void
xcb_xv_adaptor_info_next(xcb_xv_adaptor_info_iterator_t * i)193 xcb_xv_adaptor_info_next (xcb_xv_adaptor_info_iterator_t *i  /**< */)
194 {
195     xcb_xv_adaptor_info_t *R = i->data;
196     xcb_generic_iterator_t child;
197     child.data = (xcb_xv_adaptor_info_t *)(((char *)R) + xcb_xv_adaptor_info_sizeof(R));
198     i->index = (char *) child.data - (char *) i->data;
199     --i->rem;
200     i->data = (xcb_xv_adaptor_info_t *) child.data;
201 }
202 
203 xcb_generic_iterator_t
xcb_xv_adaptor_info_end(xcb_xv_adaptor_info_iterator_t i)204 xcb_xv_adaptor_info_end (xcb_xv_adaptor_info_iterator_t i  /**< */)
205 {
206     xcb_generic_iterator_t ret;
207     while(i.rem > 0)
208         xcb_xv_adaptor_info_next(&i);
209     ret.data = i.data;
210     ret.rem = i.rem;
211     ret.index = i.index;
212     return ret;
213 }
214 
215 int
xcb_xv_encoding_info_sizeof(const void * _buffer)216 xcb_xv_encoding_info_sizeof (const void  *_buffer  /**< */)
217 {
218     char *xcb_tmp = (char *)_buffer;
219     const xcb_xv_encoding_info_t *_aux = (xcb_xv_encoding_info_t *)_buffer;
220     unsigned int xcb_buffer_len = 0;
221     unsigned int xcb_block_len = 0;
222     unsigned int xcb_pad = 0;
223     unsigned int xcb_align_to = 0;
224 
225 
226     xcb_block_len += sizeof(xcb_xv_encoding_info_t);
227     xcb_tmp += xcb_block_len;
228     xcb_buffer_len += xcb_block_len;
229     xcb_block_len = 0;
230     /* name */
231     xcb_block_len += _aux->name_size * sizeof(char);
232     xcb_tmp += xcb_block_len;
233     xcb_align_to = ALIGNOF(char);
234     /* insert padding */
235     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
236     xcb_buffer_len += xcb_block_len + xcb_pad;
237     if (0 != xcb_pad) {
238         xcb_tmp += xcb_pad;
239         xcb_pad = 0;
240     }
241     xcb_block_len = 0;
242 
243     return xcb_buffer_len;
244 }
245 
246 char *
xcb_xv_encoding_info_name(const xcb_xv_encoding_info_t * R)247 xcb_xv_encoding_info_name (const xcb_xv_encoding_info_t *R  /**< */)
248 {
249     return (char *) (R + 1);
250 }
251 
252 int
xcb_xv_encoding_info_name_length(const xcb_xv_encoding_info_t * R)253 xcb_xv_encoding_info_name_length (const xcb_xv_encoding_info_t *R  /**< */)
254 {
255     return R->name_size;
256 }
257 
258 xcb_generic_iterator_t
xcb_xv_encoding_info_name_end(const xcb_xv_encoding_info_t * R)259 xcb_xv_encoding_info_name_end (const xcb_xv_encoding_info_t *R  /**< */)
260 {
261     xcb_generic_iterator_t i;
262     i.data = ((char *) (R + 1)) + (R->name_size);
263     i.rem = 0;
264     i.index = (char *) i.data - (char *) R;
265     return i;
266 }
267 
268 void
xcb_xv_encoding_info_next(xcb_xv_encoding_info_iterator_t * i)269 xcb_xv_encoding_info_next (xcb_xv_encoding_info_iterator_t *i  /**< */)
270 {
271     xcb_xv_encoding_info_t *R = i->data;
272     xcb_generic_iterator_t child;
273     child.data = (xcb_xv_encoding_info_t *)(((char *)R) + xcb_xv_encoding_info_sizeof(R));
274     i->index = (char *) child.data - (char *) i->data;
275     --i->rem;
276     i->data = (xcb_xv_encoding_info_t *) child.data;
277 }
278 
279 xcb_generic_iterator_t
xcb_xv_encoding_info_end(xcb_xv_encoding_info_iterator_t i)280 xcb_xv_encoding_info_end (xcb_xv_encoding_info_iterator_t i  /**< */)
281 {
282     xcb_generic_iterator_t ret;
283     while(i.rem > 0)
284         xcb_xv_encoding_info_next(&i);
285     ret.data = i.data;
286     ret.rem = i.rem;
287     ret.index = i.index;
288     return ret;
289 }
290 
291 int
xcb_xv_image_sizeof(const void * _buffer)292 xcb_xv_image_sizeof (const void  *_buffer  /**< */)
293 {
294     char *xcb_tmp = (char *)_buffer;
295     const xcb_xv_image_t *_aux = (xcb_xv_image_t *)_buffer;
296     unsigned int xcb_buffer_len = 0;
297     unsigned int xcb_block_len = 0;
298     unsigned int xcb_pad = 0;
299     unsigned int xcb_align_to = 0;
300 
301 
302     xcb_block_len += sizeof(xcb_xv_image_t);
303     xcb_tmp += xcb_block_len;
304     xcb_buffer_len += xcb_block_len;
305     xcb_block_len = 0;
306     /* pitches */
307     xcb_block_len += _aux->num_planes * sizeof(uint32_t);
308     xcb_tmp += xcb_block_len;
309     xcb_align_to = ALIGNOF(uint32_t);
310     /* insert padding */
311     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
312     xcb_buffer_len += xcb_block_len + xcb_pad;
313     if (0 != xcb_pad) {
314         xcb_tmp += xcb_pad;
315         xcb_pad = 0;
316     }
317     xcb_block_len = 0;
318     /* offsets */
319     xcb_block_len += _aux->num_planes * sizeof(uint32_t);
320     xcb_tmp += xcb_block_len;
321     xcb_align_to = ALIGNOF(uint32_t);
322     /* insert padding */
323     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
324     xcb_buffer_len += xcb_block_len + xcb_pad;
325     if (0 != xcb_pad) {
326         xcb_tmp += xcb_pad;
327         xcb_pad = 0;
328     }
329     xcb_block_len = 0;
330     /* data */
331     xcb_block_len += _aux->data_size * sizeof(uint8_t);
332     xcb_tmp += xcb_block_len;
333     xcb_align_to = ALIGNOF(uint8_t);
334     /* insert padding */
335     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
336     xcb_buffer_len += xcb_block_len + xcb_pad;
337     if (0 != xcb_pad) {
338         xcb_tmp += xcb_pad;
339         xcb_pad = 0;
340     }
341     xcb_block_len = 0;
342 
343     return xcb_buffer_len;
344 }
345 
346 uint32_t *
xcb_xv_image_pitches(const xcb_xv_image_t * R)347 xcb_xv_image_pitches (const xcb_xv_image_t *R  /**< */)
348 {
349     return (uint32_t *) (R + 1);
350 }
351 
352 int
xcb_xv_image_pitches_length(const xcb_xv_image_t * R)353 xcb_xv_image_pitches_length (const xcb_xv_image_t *R  /**< */)
354 {
355     return R->num_planes;
356 }
357 
358 xcb_generic_iterator_t
xcb_xv_image_pitches_end(const xcb_xv_image_t * R)359 xcb_xv_image_pitches_end (const xcb_xv_image_t *R  /**< */)
360 {
361     xcb_generic_iterator_t i;
362     i.data = ((uint32_t *) (R + 1)) + (R->num_planes);
363     i.rem = 0;
364     i.index = (char *) i.data - (char *) R;
365     return i;
366 }
367 
368 uint32_t *
xcb_xv_image_offsets(const xcb_xv_image_t * R)369 xcb_xv_image_offsets (const xcb_xv_image_t *R  /**< */)
370 {
371     xcb_generic_iterator_t prev = xcb_xv_image_pitches_end(R);
372     return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
373 }
374 
375 int
xcb_xv_image_offsets_length(const xcb_xv_image_t * R)376 xcb_xv_image_offsets_length (const xcb_xv_image_t *R  /**< */)
377 {
378     return R->num_planes;
379 }
380 
381 xcb_generic_iterator_t
xcb_xv_image_offsets_end(const xcb_xv_image_t * R)382 xcb_xv_image_offsets_end (const xcb_xv_image_t *R  /**< */)
383 {
384     xcb_generic_iterator_t i;
385     xcb_generic_iterator_t child = xcb_xv_image_pitches_end(R);
386     i.data = ((uint32_t *) child.data) + (R->num_planes);
387     i.rem = 0;
388     i.index = (char *) i.data - (char *) R;
389     return i;
390 }
391 
392 uint8_t *
xcb_xv_image_data(const xcb_xv_image_t * R)393 xcb_xv_image_data (const xcb_xv_image_t *R  /**< */)
394 {
395     xcb_generic_iterator_t prev = xcb_xv_image_offsets_end(R);
396     return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0);
397 }
398 
399 int
xcb_xv_image_data_length(const xcb_xv_image_t * R)400 xcb_xv_image_data_length (const xcb_xv_image_t *R  /**< */)
401 {
402     return R->data_size;
403 }
404 
405 xcb_generic_iterator_t
xcb_xv_image_data_end(const xcb_xv_image_t * R)406 xcb_xv_image_data_end (const xcb_xv_image_t *R  /**< */)
407 {
408     xcb_generic_iterator_t i;
409     xcb_generic_iterator_t child = xcb_xv_image_offsets_end(R);
410     i.data = ((uint8_t *) child.data) + (R->data_size);
411     i.rem = 0;
412     i.index = (char *) i.data - (char *) R;
413     return i;
414 }
415 
416 void
xcb_xv_image_next(xcb_xv_image_iterator_t * i)417 xcb_xv_image_next (xcb_xv_image_iterator_t *i  /**< */)
418 {
419     xcb_xv_image_t *R = i->data;
420     xcb_generic_iterator_t child;
421     child.data = (xcb_xv_image_t *)(((char *)R) + xcb_xv_image_sizeof(R));
422     i->index = (char *) child.data - (char *) i->data;
423     --i->rem;
424     i->data = (xcb_xv_image_t *) child.data;
425 }
426 
427 xcb_generic_iterator_t
xcb_xv_image_end(xcb_xv_image_iterator_t i)428 xcb_xv_image_end (xcb_xv_image_iterator_t i  /**< */)
429 {
430     xcb_generic_iterator_t ret;
431     while(i.rem > 0)
432         xcb_xv_image_next(&i);
433     ret.data = i.data;
434     ret.rem = i.rem;
435     ret.index = i.index;
436     return ret;
437 }
438 
439 int
xcb_xv_attribute_info_sizeof(const void * _buffer)440 xcb_xv_attribute_info_sizeof (const void  *_buffer  /**< */)
441 {
442     char *xcb_tmp = (char *)_buffer;
443     const xcb_xv_attribute_info_t *_aux = (xcb_xv_attribute_info_t *)_buffer;
444     unsigned int xcb_buffer_len = 0;
445     unsigned int xcb_block_len = 0;
446     unsigned int xcb_pad = 0;
447     unsigned int xcb_align_to = 0;
448 
449 
450     xcb_block_len += sizeof(xcb_xv_attribute_info_t);
451     xcb_tmp += xcb_block_len;
452     xcb_buffer_len += xcb_block_len;
453     xcb_block_len = 0;
454     /* name */
455     xcb_block_len += _aux->size * sizeof(char);
456     xcb_tmp += xcb_block_len;
457     xcb_align_to = ALIGNOF(char);
458     /* insert padding */
459     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
460     xcb_buffer_len += xcb_block_len + xcb_pad;
461     if (0 != xcb_pad) {
462         xcb_tmp += xcb_pad;
463         xcb_pad = 0;
464     }
465     xcb_block_len = 0;
466 
467     return xcb_buffer_len;
468 }
469 
470 char *
xcb_xv_attribute_info_name(const xcb_xv_attribute_info_t * R)471 xcb_xv_attribute_info_name (const xcb_xv_attribute_info_t *R  /**< */)
472 {
473     return (char *) (R + 1);
474 }
475 
476 int
xcb_xv_attribute_info_name_length(const xcb_xv_attribute_info_t * R)477 xcb_xv_attribute_info_name_length (const xcb_xv_attribute_info_t *R  /**< */)
478 {
479     return R->size;
480 }
481 
482 xcb_generic_iterator_t
xcb_xv_attribute_info_name_end(const xcb_xv_attribute_info_t * R)483 xcb_xv_attribute_info_name_end (const xcb_xv_attribute_info_t *R  /**< */)
484 {
485     xcb_generic_iterator_t i;
486     i.data = ((char *) (R + 1)) + (R->size);
487     i.rem = 0;
488     i.index = (char *) i.data - (char *) R;
489     return i;
490 }
491 
492 void
xcb_xv_attribute_info_next(xcb_xv_attribute_info_iterator_t * i)493 xcb_xv_attribute_info_next (xcb_xv_attribute_info_iterator_t *i  /**< */)
494 {
495     xcb_xv_attribute_info_t *R = i->data;
496     xcb_generic_iterator_t child;
497     child.data = (xcb_xv_attribute_info_t *)(((char *)R) + xcb_xv_attribute_info_sizeof(R));
498     i->index = (char *) child.data - (char *) i->data;
499     --i->rem;
500     i->data = (xcb_xv_attribute_info_t *) child.data;
501 }
502 
503 xcb_generic_iterator_t
xcb_xv_attribute_info_end(xcb_xv_attribute_info_iterator_t i)504 xcb_xv_attribute_info_end (xcb_xv_attribute_info_iterator_t i  /**< */)
505 {
506     xcb_generic_iterator_t ret;
507     while(i.rem > 0)
508         xcb_xv_attribute_info_next(&i);
509     ret.data = i.data;
510     ret.rem = i.rem;
511     ret.index = i.index;
512     return ret;
513 }
514 
515 void
xcb_xv_image_format_info_next(xcb_xv_image_format_info_iterator_t * i)516 xcb_xv_image_format_info_next (xcb_xv_image_format_info_iterator_t *i  /**< */)
517 {
518     --i->rem;
519     ++i->data;
520     i->index += sizeof(xcb_xv_image_format_info_t);
521 }
522 
523 xcb_generic_iterator_t
xcb_xv_image_format_info_end(xcb_xv_image_format_info_iterator_t i)524 xcb_xv_image_format_info_end (xcb_xv_image_format_info_iterator_t i  /**< */)
525 {
526     xcb_generic_iterator_t ret;
527     ret.data = i.data + i.rem;
528     ret.index = i.index + ((char *) ret.data - (char *) i.data);
529     ret.rem = 0;
530     return ret;
531 }
532 
533 xcb_xv_query_extension_cookie_t
xcb_xv_query_extension(xcb_connection_t * c)534 xcb_xv_query_extension (xcb_connection_t *c  /**< */)
535 {
536     static const xcb_protocol_request_t xcb_req = {
537         /* count */ 2,
538         /* ext */ &xcb_xv_id,
539         /* opcode */ XCB_XV_QUERY_EXTENSION,
540         /* isvoid */ 0
541     };
542 
543     struct iovec xcb_parts[4];
544     xcb_xv_query_extension_cookie_t xcb_ret;
545     xcb_xv_query_extension_request_t xcb_out;
546 
547 
548     xcb_parts[2].iov_base = (char *) &xcb_out;
549     xcb_parts[2].iov_len = sizeof(xcb_out);
550     xcb_parts[3].iov_base = 0;
551     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
552 
553     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
554     return xcb_ret;
555 }
556 
557 xcb_xv_query_extension_cookie_t
xcb_xv_query_extension_unchecked(xcb_connection_t * c)558 xcb_xv_query_extension_unchecked (xcb_connection_t *c  /**< */)
559 {
560     static const xcb_protocol_request_t xcb_req = {
561         /* count */ 2,
562         /* ext */ &xcb_xv_id,
563         /* opcode */ XCB_XV_QUERY_EXTENSION,
564         /* isvoid */ 0
565     };
566 
567     struct iovec xcb_parts[4];
568     xcb_xv_query_extension_cookie_t xcb_ret;
569     xcb_xv_query_extension_request_t xcb_out;
570 
571 
572     xcb_parts[2].iov_base = (char *) &xcb_out;
573     xcb_parts[2].iov_len = sizeof(xcb_out);
574     xcb_parts[3].iov_base = 0;
575     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
576 
577     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
578     return xcb_ret;
579 }
580 
581 xcb_xv_query_extension_reply_t *
xcb_xv_query_extension_reply(xcb_connection_t * c,xcb_xv_query_extension_cookie_t cookie,xcb_generic_error_t ** e)582 xcb_xv_query_extension_reply (xcb_connection_t                 *c  /**< */,
583                               xcb_xv_query_extension_cookie_t   cookie  /**< */,
584                               xcb_generic_error_t             **e  /**< */)
585 {
586     return (xcb_xv_query_extension_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
587 }
588 
589 int
xcb_xv_query_adaptors_sizeof(const void * _buffer)590 xcb_xv_query_adaptors_sizeof (const void  *_buffer  /**< */)
591 {
592     char *xcb_tmp = (char *)_buffer;
593     const xcb_xv_query_adaptors_reply_t *_aux = (xcb_xv_query_adaptors_reply_t *)_buffer;
594     unsigned int xcb_buffer_len = 0;
595     unsigned int xcb_block_len = 0;
596     unsigned int xcb_pad = 0;
597     unsigned int xcb_align_to = 0;
598 
599     unsigned int i;
600     unsigned int xcb_tmp_len;
601 
602     xcb_block_len += sizeof(xcb_xv_query_adaptors_reply_t);
603     xcb_tmp += xcb_block_len;
604     xcb_buffer_len += xcb_block_len;
605     xcb_block_len = 0;
606     /* info */
607     for(i=0; i<_aux->num_adaptors; i++) {
608         xcb_tmp_len = xcb_xv_adaptor_info_sizeof(xcb_tmp);
609         xcb_block_len += xcb_tmp_len;
610         xcb_tmp += xcb_tmp_len;
611     }
612     xcb_align_to = ALIGNOF(xcb_xv_adaptor_info_t);
613     /* insert padding */
614     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
615     xcb_buffer_len += xcb_block_len + xcb_pad;
616     if (0 != xcb_pad) {
617         xcb_tmp += xcb_pad;
618         xcb_pad = 0;
619     }
620     xcb_block_len = 0;
621 
622     return xcb_buffer_len;
623 }
624 
625 xcb_xv_query_adaptors_cookie_t
xcb_xv_query_adaptors(xcb_connection_t * c,xcb_window_t window)626 xcb_xv_query_adaptors (xcb_connection_t *c  /**< */,
627                        xcb_window_t      window  /**< */)
628 {
629     static const xcb_protocol_request_t xcb_req = {
630         /* count */ 2,
631         /* ext */ &xcb_xv_id,
632         /* opcode */ XCB_XV_QUERY_ADAPTORS,
633         /* isvoid */ 0
634     };
635 
636     struct iovec xcb_parts[4];
637     xcb_xv_query_adaptors_cookie_t xcb_ret;
638     xcb_xv_query_adaptors_request_t xcb_out;
639 
640     xcb_out.window = window;
641 
642     xcb_parts[2].iov_base = (char *) &xcb_out;
643     xcb_parts[2].iov_len = sizeof(xcb_out);
644     xcb_parts[3].iov_base = 0;
645     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
646 
647     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
648     return xcb_ret;
649 }
650 
651 xcb_xv_query_adaptors_cookie_t
xcb_xv_query_adaptors_unchecked(xcb_connection_t * c,xcb_window_t window)652 xcb_xv_query_adaptors_unchecked (xcb_connection_t *c  /**< */,
653                                  xcb_window_t      window  /**< */)
654 {
655     static const xcb_protocol_request_t xcb_req = {
656         /* count */ 2,
657         /* ext */ &xcb_xv_id,
658         /* opcode */ XCB_XV_QUERY_ADAPTORS,
659         /* isvoid */ 0
660     };
661 
662     struct iovec xcb_parts[4];
663     xcb_xv_query_adaptors_cookie_t xcb_ret;
664     xcb_xv_query_adaptors_request_t xcb_out;
665 
666     xcb_out.window = window;
667 
668     xcb_parts[2].iov_base = (char *) &xcb_out;
669     xcb_parts[2].iov_len = sizeof(xcb_out);
670     xcb_parts[3].iov_base = 0;
671     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
672 
673     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
674     return xcb_ret;
675 }
676 
677 int
xcb_xv_query_adaptors_info_length(const xcb_xv_query_adaptors_reply_t * R)678 xcb_xv_query_adaptors_info_length (const xcb_xv_query_adaptors_reply_t *R  /**< */)
679 {
680     return R->num_adaptors;
681 }
682 
683 xcb_xv_adaptor_info_iterator_t
xcb_xv_query_adaptors_info_iterator(const xcb_xv_query_adaptors_reply_t * R)684 xcb_xv_query_adaptors_info_iterator (const xcb_xv_query_adaptors_reply_t *R  /**< */)
685 {
686     xcb_xv_adaptor_info_iterator_t i;
687     i.data = (xcb_xv_adaptor_info_t *) (R + 1);
688     i.rem = R->num_adaptors;
689     i.index = (char *) i.data - (char *) R;
690     return i;
691 }
692 
693 xcb_xv_query_adaptors_reply_t *
xcb_xv_query_adaptors_reply(xcb_connection_t * c,xcb_xv_query_adaptors_cookie_t cookie,xcb_generic_error_t ** e)694 xcb_xv_query_adaptors_reply (xcb_connection_t                *c  /**< */,
695                              xcb_xv_query_adaptors_cookie_t   cookie  /**< */,
696                              xcb_generic_error_t            **e  /**< */)
697 {
698     return (xcb_xv_query_adaptors_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
699 }
700 
701 int
xcb_xv_query_encodings_sizeof(const void * _buffer)702 xcb_xv_query_encodings_sizeof (const void  *_buffer  /**< */)
703 {
704     char *xcb_tmp = (char *)_buffer;
705     const xcb_xv_query_encodings_reply_t *_aux = (xcb_xv_query_encodings_reply_t *)_buffer;
706     unsigned int xcb_buffer_len = 0;
707     unsigned int xcb_block_len = 0;
708     unsigned int xcb_pad = 0;
709     unsigned int xcb_align_to = 0;
710 
711     unsigned int i;
712     unsigned int xcb_tmp_len;
713 
714     xcb_block_len += sizeof(xcb_xv_query_encodings_reply_t);
715     xcb_tmp += xcb_block_len;
716     xcb_buffer_len += xcb_block_len;
717     xcb_block_len = 0;
718     /* info */
719     for(i=0; i<_aux->num_encodings; i++) {
720         xcb_tmp_len = xcb_xv_encoding_info_sizeof(xcb_tmp);
721         xcb_block_len += xcb_tmp_len;
722         xcb_tmp += xcb_tmp_len;
723     }
724     xcb_align_to = ALIGNOF(xcb_xv_encoding_info_t);
725     /* insert padding */
726     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
727     xcb_buffer_len += xcb_block_len + xcb_pad;
728     if (0 != xcb_pad) {
729         xcb_tmp += xcb_pad;
730         xcb_pad = 0;
731     }
732     xcb_block_len = 0;
733 
734     return xcb_buffer_len;
735 }
736 
737 xcb_xv_query_encodings_cookie_t
xcb_xv_query_encodings(xcb_connection_t * c,xcb_xv_port_t port)738 xcb_xv_query_encodings (xcb_connection_t *c  /**< */,
739                         xcb_xv_port_t     port  /**< */)
740 {
741     static const xcb_protocol_request_t xcb_req = {
742         /* count */ 2,
743         /* ext */ &xcb_xv_id,
744         /* opcode */ XCB_XV_QUERY_ENCODINGS,
745         /* isvoid */ 0
746     };
747 
748     struct iovec xcb_parts[4];
749     xcb_xv_query_encodings_cookie_t xcb_ret;
750     xcb_xv_query_encodings_request_t xcb_out;
751 
752     xcb_out.port = port;
753 
754     xcb_parts[2].iov_base = (char *) &xcb_out;
755     xcb_parts[2].iov_len = sizeof(xcb_out);
756     xcb_parts[3].iov_base = 0;
757     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
758 
759     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
760     return xcb_ret;
761 }
762 
763 xcb_xv_query_encodings_cookie_t
xcb_xv_query_encodings_unchecked(xcb_connection_t * c,xcb_xv_port_t port)764 xcb_xv_query_encodings_unchecked (xcb_connection_t *c  /**< */,
765                                   xcb_xv_port_t     port  /**< */)
766 {
767     static const xcb_protocol_request_t xcb_req = {
768         /* count */ 2,
769         /* ext */ &xcb_xv_id,
770         /* opcode */ XCB_XV_QUERY_ENCODINGS,
771         /* isvoid */ 0
772     };
773 
774     struct iovec xcb_parts[4];
775     xcb_xv_query_encodings_cookie_t xcb_ret;
776     xcb_xv_query_encodings_request_t xcb_out;
777 
778     xcb_out.port = port;
779 
780     xcb_parts[2].iov_base = (char *) &xcb_out;
781     xcb_parts[2].iov_len = sizeof(xcb_out);
782     xcb_parts[3].iov_base = 0;
783     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
784 
785     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
786     return xcb_ret;
787 }
788 
789 int
xcb_xv_query_encodings_info_length(const xcb_xv_query_encodings_reply_t * R)790 xcb_xv_query_encodings_info_length (const xcb_xv_query_encodings_reply_t *R  /**< */)
791 {
792     return R->num_encodings;
793 }
794 
795 xcb_xv_encoding_info_iterator_t
xcb_xv_query_encodings_info_iterator(const xcb_xv_query_encodings_reply_t * R)796 xcb_xv_query_encodings_info_iterator (const xcb_xv_query_encodings_reply_t *R  /**< */)
797 {
798     xcb_xv_encoding_info_iterator_t i;
799     i.data = (xcb_xv_encoding_info_t *) (R + 1);
800     i.rem = R->num_encodings;
801     i.index = (char *) i.data - (char *) R;
802     return i;
803 }
804 
805 xcb_xv_query_encodings_reply_t *
xcb_xv_query_encodings_reply(xcb_connection_t * c,xcb_xv_query_encodings_cookie_t cookie,xcb_generic_error_t ** e)806 xcb_xv_query_encodings_reply (xcb_connection_t                 *c  /**< */,
807                               xcb_xv_query_encodings_cookie_t   cookie  /**< */,
808                               xcb_generic_error_t             **e  /**< */)
809 {
810     return (xcb_xv_query_encodings_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
811 }
812 
813 xcb_xv_grab_port_cookie_t
xcb_xv_grab_port(xcb_connection_t * c,xcb_xv_port_t port,xcb_timestamp_t time)814 xcb_xv_grab_port (xcb_connection_t *c  /**< */,
815                   xcb_xv_port_t     port  /**< */,
816                   xcb_timestamp_t   time  /**< */)
817 {
818     static const xcb_protocol_request_t xcb_req = {
819         /* count */ 2,
820         /* ext */ &xcb_xv_id,
821         /* opcode */ XCB_XV_GRAB_PORT,
822         /* isvoid */ 0
823     };
824 
825     struct iovec xcb_parts[4];
826     xcb_xv_grab_port_cookie_t xcb_ret;
827     xcb_xv_grab_port_request_t xcb_out;
828 
829     xcb_out.port = port;
830     xcb_out.time = time;
831 
832     xcb_parts[2].iov_base = (char *) &xcb_out;
833     xcb_parts[2].iov_len = sizeof(xcb_out);
834     xcb_parts[3].iov_base = 0;
835     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
836 
837     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
838     return xcb_ret;
839 }
840 
841 xcb_xv_grab_port_cookie_t
xcb_xv_grab_port_unchecked(xcb_connection_t * c,xcb_xv_port_t port,xcb_timestamp_t time)842 xcb_xv_grab_port_unchecked (xcb_connection_t *c  /**< */,
843                             xcb_xv_port_t     port  /**< */,
844                             xcb_timestamp_t   time  /**< */)
845 {
846     static const xcb_protocol_request_t xcb_req = {
847         /* count */ 2,
848         /* ext */ &xcb_xv_id,
849         /* opcode */ XCB_XV_GRAB_PORT,
850         /* isvoid */ 0
851     };
852 
853     struct iovec xcb_parts[4];
854     xcb_xv_grab_port_cookie_t xcb_ret;
855     xcb_xv_grab_port_request_t xcb_out;
856 
857     xcb_out.port = port;
858     xcb_out.time = time;
859 
860     xcb_parts[2].iov_base = (char *) &xcb_out;
861     xcb_parts[2].iov_len = sizeof(xcb_out);
862     xcb_parts[3].iov_base = 0;
863     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
864 
865     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
866     return xcb_ret;
867 }
868 
869 xcb_xv_grab_port_reply_t *
xcb_xv_grab_port_reply(xcb_connection_t * c,xcb_xv_grab_port_cookie_t cookie,xcb_generic_error_t ** e)870 xcb_xv_grab_port_reply (xcb_connection_t           *c  /**< */,
871                         xcb_xv_grab_port_cookie_t   cookie  /**< */,
872                         xcb_generic_error_t       **e  /**< */)
873 {
874     return (xcb_xv_grab_port_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
875 }
876 
877 xcb_void_cookie_t
xcb_xv_ungrab_port_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_timestamp_t time)878 xcb_xv_ungrab_port_checked (xcb_connection_t *c  /**< */,
879                             xcb_xv_port_t     port  /**< */,
880                             xcb_timestamp_t   time  /**< */)
881 {
882     static const xcb_protocol_request_t xcb_req = {
883         /* count */ 2,
884         /* ext */ &xcb_xv_id,
885         /* opcode */ XCB_XV_UNGRAB_PORT,
886         /* isvoid */ 1
887     };
888 
889     struct iovec xcb_parts[4];
890     xcb_void_cookie_t xcb_ret;
891     xcb_xv_ungrab_port_request_t xcb_out;
892 
893     xcb_out.port = port;
894     xcb_out.time = time;
895 
896     xcb_parts[2].iov_base = (char *) &xcb_out;
897     xcb_parts[2].iov_len = sizeof(xcb_out);
898     xcb_parts[3].iov_base = 0;
899     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
900 
901     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
902     return xcb_ret;
903 }
904 
905 xcb_void_cookie_t
xcb_xv_ungrab_port(xcb_connection_t * c,xcb_xv_port_t port,xcb_timestamp_t time)906 xcb_xv_ungrab_port (xcb_connection_t *c  /**< */,
907                     xcb_xv_port_t     port  /**< */,
908                     xcb_timestamp_t   time  /**< */)
909 {
910     static const xcb_protocol_request_t xcb_req = {
911         /* count */ 2,
912         /* ext */ &xcb_xv_id,
913         /* opcode */ XCB_XV_UNGRAB_PORT,
914         /* isvoid */ 1
915     };
916 
917     struct iovec xcb_parts[4];
918     xcb_void_cookie_t xcb_ret;
919     xcb_xv_ungrab_port_request_t xcb_out;
920 
921     xcb_out.port = port;
922     xcb_out.time = time;
923 
924     xcb_parts[2].iov_base = (char *) &xcb_out;
925     xcb_parts[2].iov_len = sizeof(xcb_out);
926     xcb_parts[3].iov_base = 0;
927     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
928 
929     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
930     return xcb_ret;
931 }
932 
933 xcb_void_cookie_t
xcb_xv_put_video_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)934 xcb_xv_put_video_checked (xcb_connection_t *c  /**< */,
935                           xcb_xv_port_t     port  /**< */,
936                           xcb_drawable_t    drawable  /**< */,
937                           xcb_gcontext_t    gc  /**< */,
938                           int16_t           vid_x  /**< */,
939                           int16_t           vid_y  /**< */,
940                           uint16_t          vid_w  /**< */,
941                           uint16_t          vid_h  /**< */,
942                           int16_t           drw_x  /**< */,
943                           int16_t           drw_y  /**< */,
944                           uint16_t          drw_w  /**< */,
945                           uint16_t          drw_h  /**< */)
946 {
947     static const xcb_protocol_request_t xcb_req = {
948         /* count */ 2,
949         /* ext */ &xcb_xv_id,
950         /* opcode */ XCB_XV_PUT_VIDEO,
951         /* isvoid */ 1
952     };
953 
954     struct iovec xcb_parts[4];
955     xcb_void_cookie_t xcb_ret;
956     xcb_xv_put_video_request_t xcb_out;
957 
958     xcb_out.port = port;
959     xcb_out.drawable = drawable;
960     xcb_out.gc = gc;
961     xcb_out.vid_x = vid_x;
962     xcb_out.vid_y = vid_y;
963     xcb_out.vid_w = vid_w;
964     xcb_out.vid_h = vid_h;
965     xcb_out.drw_x = drw_x;
966     xcb_out.drw_y = drw_y;
967     xcb_out.drw_w = drw_w;
968     xcb_out.drw_h = drw_h;
969 
970     xcb_parts[2].iov_base = (char *) &xcb_out;
971     xcb_parts[2].iov_len = sizeof(xcb_out);
972     xcb_parts[3].iov_base = 0;
973     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
974 
975     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
976     return xcb_ret;
977 }
978 
979 xcb_void_cookie_t
xcb_xv_put_video(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)980 xcb_xv_put_video (xcb_connection_t *c  /**< */,
981                   xcb_xv_port_t     port  /**< */,
982                   xcb_drawable_t    drawable  /**< */,
983                   xcb_gcontext_t    gc  /**< */,
984                   int16_t           vid_x  /**< */,
985                   int16_t           vid_y  /**< */,
986                   uint16_t          vid_w  /**< */,
987                   uint16_t          vid_h  /**< */,
988                   int16_t           drw_x  /**< */,
989                   int16_t           drw_y  /**< */,
990                   uint16_t          drw_w  /**< */,
991                   uint16_t          drw_h  /**< */)
992 {
993     static const xcb_protocol_request_t xcb_req = {
994         /* count */ 2,
995         /* ext */ &xcb_xv_id,
996         /* opcode */ XCB_XV_PUT_VIDEO,
997         /* isvoid */ 1
998     };
999 
1000     struct iovec xcb_parts[4];
1001     xcb_void_cookie_t xcb_ret;
1002     xcb_xv_put_video_request_t xcb_out;
1003 
1004     xcb_out.port = port;
1005     xcb_out.drawable = drawable;
1006     xcb_out.gc = gc;
1007     xcb_out.vid_x = vid_x;
1008     xcb_out.vid_y = vid_y;
1009     xcb_out.vid_w = vid_w;
1010     xcb_out.vid_h = vid_h;
1011     xcb_out.drw_x = drw_x;
1012     xcb_out.drw_y = drw_y;
1013     xcb_out.drw_w = drw_w;
1014     xcb_out.drw_h = drw_h;
1015 
1016     xcb_parts[2].iov_base = (char *) &xcb_out;
1017     xcb_parts[2].iov_len = sizeof(xcb_out);
1018     xcb_parts[3].iov_base = 0;
1019     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1020 
1021     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1022     return xcb_ret;
1023 }
1024 
1025 xcb_void_cookie_t
xcb_xv_put_still_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)1026 xcb_xv_put_still_checked (xcb_connection_t *c  /**< */,
1027                           xcb_xv_port_t     port  /**< */,
1028                           xcb_drawable_t    drawable  /**< */,
1029                           xcb_gcontext_t    gc  /**< */,
1030                           int16_t           vid_x  /**< */,
1031                           int16_t           vid_y  /**< */,
1032                           uint16_t          vid_w  /**< */,
1033                           uint16_t          vid_h  /**< */,
1034                           int16_t           drw_x  /**< */,
1035                           int16_t           drw_y  /**< */,
1036                           uint16_t          drw_w  /**< */,
1037                           uint16_t          drw_h  /**< */)
1038 {
1039     static const xcb_protocol_request_t xcb_req = {
1040         /* count */ 2,
1041         /* ext */ &xcb_xv_id,
1042         /* opcode */ XCB_XV_PUT_STILL,
1043         /* isvoid */ 1
1044     };
1045 
1046     struct iovec xcb_parts[4];
1047     xcb_void_cookie_t xcb_ret;
1048     xcb_xv_put_still_request_t xcb_out;
1049 
1050     xcb_out.port = port;
1051     xcb_out.drawable = drawable;
1052     xcb_out.gc = gc;
1053     xcb_out.vid_x = vid_x;
1054     xcb_out.vid_y = vid_y;
1055     xcb_out.vid_w = vid_w;
1056     xcb_out.vid_h = vid_h;
1057     xcb_out.drw_x = drw_x;
1058     xcb_out.drw_y = drw_y;
1059     xcb_out.drw_w = drw_w;
1060     xcb_out.drw_h = drw_h;
1061 
1062     xcb_parts[2].iov_base = (char *) &xcb_out;
1063     xcb_parts[2].iov_len = sizeof(xcb_out);
1064     xcb_parts[3].iov_base = 0;
1065     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1066 
1067     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1068     return xcb_ret;
1069 }
1070 
1071 xcb_void_cookie_t
xcb_xv_put_still(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)1072 xcb_xv_put_still (xcb_connection_t *c  /**< */,
1073                   xcb_xv_port_t     port  /**< */,
1074                   xcb_drawable_t    drawable  /**< */,
1075                   xcb_gcontext_t    gc  /**< */,
1076                   int16_t           vid_x  /**< */,
1077                   int16_t           vid_y  /**< */,
1078                   uint16_t          vid_w  /**< */,
1079                   uint16_t          vid_h  /**< */,
1080                   int16_t           drw_x  /**< */,
1081                   int16_t           drw_y  /**< */,
1082                   uint16_t          drw_w  /**< */,
1083                   uint16_t          drw_h  /**< */)
1084 {
1085     static const xcb_protocol_request_t xcb_req = {
1086         /* count */ 2,
1087         /* ext */ &xcb_xv_id,
1088         /* opcode */ XCB_XV_PUT_STILL,
1089         /* isvoid */ 1
1090     };
1091 
1092     struct iovec xcb_parts[4];
1093     xcb_void_cookie_t xcb_ret;
1094     xcb_xv_put_still_request_t xcb_out;
1095 
1096     xcb_out.port = port;
1097     xcb_out.drawable = drawable;
1098     xcb_out.gc = gc;
1099     xcb_out.vid_x = vid_x;
1100     xcb_out.vid_y = vid_y;
1101     xcb_out.vid_w = vid_w;
1102     xcb_out.vid_h = vid_h;
1103     xcb_out.drw_x = drw_x;
1104     xcb_out.drw_y = drw_y;
1105     xcb_out.drw_w = drw_w;
1106     xcb_out.drw_h = drw_h;
1107 
1108     xcb_parts[2].iov_base = (char *) &xcb_out;
1109     xcb_parts[2].iov_len = sizeof(xcb_out);
1110     xcb_parts[3].iov_base = 0;
1111     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1112 
1113     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1114     return xcb_ret;
1115 }
1116 
1117 xcb_void_cookie_t
xcb_xv_get_video_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)1118 xcb_xv_get_video_checked (xcb_connection_t *c  /**< */,
1119                           xcb_xv_port_t     port  /**< */,
1120                           xcb_drawable_t    drawable  /**< */,
1121                           xcb_gcontext_t    gc  /**< */,
1122                           int16_t           vid_x  /**< */,
1123                           int16_t           vid_y  /**< */,
1124                           uint16_t          vid_w  /**< */,
1125                           uint16_t          vid_h  /**< */,
1126                           int16_t           drw_x  /**< */,
1127                           int16_t           drw_y  /**< */,
1128                           uint16_t          drw_w  /**< */,
1129                           uint16_t          drw_h  /**< */)
1130 {
1131     static const xcb_protocol_request_t xcb_req = {
1132         /* count */ 2,
1133         /* ext */ &xcb_xv_id,
1134         /* opcode */ XCB_XV_GET_VIDEO,
1135         /* isvoid */ 1
1136     };
1137 
1138     struct iovec xcb_parts[4];
1139     xcb_void_cookie_t xcb_ret;
1140     xcb_xv_get_video_request_t xcb_out;
1141 
1142     xcb_out.port = port;
1143     xcb_out.drawable = drawable;
1144     xcb_out.gc = gc;
1145     xcb_out.vid_x = vid_x;
1146     xcb_out.vid_y = vid_y;
1147     xcb_out.vid_w = vid_w;
1148     xcb_out.vid_h = vid_h;
1149     xcb_out.drw_x = drw_x;
1150     xcb_out.drw_y = drw_y;
1151     xcb_out.drw_w = drw_w;
1152     xcb_out.drw_h = drw_h;
1153 
1154     xcb_parts[2].iov_base = (char *) &xcb_out;
1155     xcb_parts[2].iov_len = sizeof(xcb_out);
1156     xcb_parts[3].iov_base = 0;
1157     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1158 
1159     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1160     return xcb_ret;
1161 }
1162 
1163 xcb_void_cookie_t
xcb_xv_get_video(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)1164 xcb_xv_get_video (xcb_connection_t *c  /**< */,
1165                   xcb_xv_port_t     port  /**< */,
1166                   xcb_drawable_t    drawable  /**< */,
1167                   xcb_gcontext_t    gc  /**< */,
1168                   int16_t           vid_x  /**< */,
1169                   int16_t           vid_y  /**< */,
1170                   uint16_t          vid_w  /**< */,
1171                   uint16_t          vid_h  /**< */,
1172                   int16_t           drw_x  /**< */,
1173                   int16_t           drw_y  /**< */,
1174                   uint16_t          drw_w  /**< */,
1175                   uint16_t          drw_h  /**< */)
1176 {
1177     static const xcb_protocol_request_t xcb_req = {
1178         /* count */ 2,
1179         /* ext */ &xcb_xv_id,
1180         /* opcode */ XCB_XV_GET_VIDEO,
1181         /* isvoid */ 1
1182     };
1183 
1184     struct iovec xcb_parts[4];
1185     xcb_void_cookie_t xcb_ret;
1186     xcb_xv_get_video_request_t xcb_out;
1187 
1188     xcb_out.port = port;
1189     xcb_out.drawable = drawable;
1190     xcb_out.gc = gc;
1191     xcb_out.vid_x = vid_x;
1192     xcb_out.vid_y = vid_y;
1193     xcb_out.vid_w = vid_w;
1194     xcb_out.vid_h = vid_h;
1195     xcb_out.drw_x = drw_x;
1196     xcb_out.drw_y = drw_y;
1197     xcb_out.drw_w = drw_w;
1198     xcb_out.drw_h = drw_h;
1199 
1200     xcb_parts[2].iov_base = (char *) &xcb_out;
1201     xcb_parts[2].iov_len = sizeof(xcb_out);
1202     xcb_parts[3].iov_base = 0;
1203     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1204 
1205     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1206     return xcb_ret;
1207 }
1208 
1209 xcb_void_cookie_t
xcb_xv_get_still_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)1210 xcb_xv_get_still_checked (xcb_connection_t *c  /**< */,
1211                           xcb_xv_port_t     port  /**< */,
1212                           xcb_drawable_t    drawable  /**< */,
1213                           xcb_gcontext_t    gc  /**< */,
1214                           int16_t           vid_x  /**< */,
1215                           int16_t           vid_y  /**< */,
1216                           uint16_t          vid_w  /**< */,
1217                           uint16_t          vid_h  /**< */,
1218                           int16_t           drw_x  /**< */,
1219                           int16_t           drw_y  /**< */,
1220                           uint16_t          drw_w  /**< */,
1221                           uint16_t          drw_h  /**< */)
1222 {
1223     static const xcb_protocol_request_t xcb_req = {
1224         /* count */ 2,
1225         /* ext */ &xcb_xv_id,
1226         /* opcode */ XCB_XV_GET_STILL,
1227         /* isvoid */ 1
1228     };
1229 
1230     struct iovec xcb_parts[4];
1231     xcb_void_cookie_t xcb_ret;
1232     xcb_xv_get_still_request_t xcb_out;
1233 
1234     xcb_out.port = port;
1235     xcb_out.drawable = drawable;
1236     xcb_out.gc = gc;
1237     xcb_out.vid_x = vid_x;
1238     xcb_out.vid_y = vid_y;
1239     xcb_out.vid_w = vid_w;
1240     xcb_out.vid_h = vid_h;
1241     xcb_out.drw_x = drw_x;
1242     xcb_out.drw_y = drw_y;
1243     xcb_out.drw_w = drw_w;
1244     xcb_out.drw_h = drw_h;
1245 
1246     xcb_parts[2].iov_base = (char *) &xcb_out;
1247     xcb_parts[2].iov_len = sizeof(xcb_out);
1248     xcb_parts[3].iov_base = 0;
1249     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1250 
1251     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1252     return xcb_ret;
1253 }
1254 
1255 xcb_void_cookie_t
xcb_xv_get_still(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,int16_t vid_x,int16_t vid_y,uint16_t vid_w,uint16_t vid_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h)1256 xcb_xv_get_still (xcb_connection_t *c  /**< */,
1257                   xcb_xv_port_t     port  /**< */,
1258                   xcb_drawable_t    drawable  /**< */,
1259                   xcb_gcontext_t    gc  /**< */,
1260                   int16_t           vid_x  /**< */,
1261                   int16_t           vid_y  /**< */,
1262                   uint16_t          vid_w  /**< */,
1263                   uint16_t          vid_h  /**< */,
1264                   int16_t           drw_x  /**< */,
1265                   int16_t           drw_y  /**< */,
1266                   uint16_t          drw_w  /**< */,
1267                   uint16_t          drw_h  /**< */)
1268 {
1269     static const xcb_protocol_request_t xcb_req = {
1270         /* count */ 2,
1271         /* ext */ &xcb_xv_id,
1272         /* opcode */ XCB_XV_GET_STILL,
1273         /* isvoid */ 1
1274     };
1275 
1276     struct iovec xcb_parts[4];
1277     xcb_void_cookie_t xcb_ret;
1278     xcb_xv_get_still_request_t xcb_out;
1279 
1280     xcb_out.port = port;
1281     xcb_out.drawable = drawable;
1282     xcb_out.gc = gc;
1283     xcb_out.vid_x = vid_x;
1284     xcb_out.vid_y = vid_y;
1285     xcb_out.vid_w = vid_w;
1286     xcb_out.vid_h = vid_h;
1287     xcb_out.drw_x = drw_x;
1288     xcb_out.drw_y = drw_y;
1289     xcb_out.drw_w = drw_w;
1290     xcb_out.drw_h = drw_h;
1291 
1292     xcb_parts[2].iov_base = (char *) &xcb_out;
1293     xcb_parts[2].iov_len = sizeof(xcb_out);
1294     xcb_parts[3].iov_base = 0;
1295     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1296 
1297     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1298     return xcb_ret;
1299 }
1300 
1301 xcb_void_cookie_t
xcb_xv_stop_video_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable)1302 xcb_xv_stop_video_checked (xcb_connection_t *c  /**< */,
1303                            xcb_xv_port_t     port  /**< */,
1304                            xcb_drawable_t    drawable  /**< */)
1305 {
1306     static const xcb_protocol_request_t xcb_req = {
1307         /* count */ 2,
1308         /* ext */ &xcb_xv_id,
1309         /* opcode */ XCB_XV_STOP_VIDEO,
1310         /* isvoid */ 1
1311     };
1312 
1313     struct iovec xcb_parts[4];
1314     xcb_void_cookie_t xcb_ret;
1315     xcb_xv_stop_video_request_t xcb_out;
1316 
1317     xcb_out.port = port;
1318     xcb_out.drawable = drawable;
1319 
1320     xcb_parts[2].iov_base = (char *) &xcb_out;
1321     xcb_parts[2].iov_len = sizeof(xcb_out);
1322     xcb_parts[3].iov_base = 0;
1323     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1324 
1325     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1326     return xcb_ret;
1327 }
1328 
1329 xcb_void_cookie_t
xcb_xv_stop_video(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable)1330 xcb_xv_stop_video (xcb_connection_t *c  /**< */,
1331                    xcb_xv_port_t     port  /**< */,
1332                    xcb_drawable_t    drawable  /**< */)
1333 {
1334     static const xcb_protocol_request_t xcb_req = {
1335         /* count */ 2,
1336         /* ext */ &xcb_xv_id,
1337         /* opcode */ XCB_XV_STOP_VIDEO,
1338         /* isvoid */ 1
1339     };
1340 
1341     struct iovec xcb_parts[4];
1342     xcb_void_cookie_t xcb_ret;
1343     xcb_xv_stop_video_request_t xcb_out;
1344 
1345     xcb_out.port = port;
1346     xcb_out.drawable = drawable;
1347 
1348     xcb_parts[2].iov_base = (char *) &xcb_out;
1349     xcb_parts[2].iov_len = sizeof(xcb_out);
1350     xcb_parts[3].iov_base = 0;
1351     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1352 
1353     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1354     return xcb_ret;
1355 }
1356 
1357 xcb_void_cookie_t
xcb_xv_select_video_notify_checked(xcb_connection_t * c,xcb_drawable_t drawable,uint8_t onoff)1358 xcb_xv_select_video_notify_checked (xcb_connection_t *c  /**< */,
1359                                     xcb_drawable_t    drawable  /**< */,
1360                                     uint8_t           onoff  /**< */)
1361 {
1362     static const xcb_protocol_request_t xcb_req = {
1363         /* count */ 2,
1364         /* ext */ &xcb_xv_id,
1365         /* opcode */ XCB_XV_SELECT_VIDEO_NOTIFY,
1366         /* isvoid */ 1
1367     };
1368 
1369     struct iovec xcb_parts[4];
1370     xcb_void_cookie_t xcb_ret;
1371     xcb_xv_select_video_notify_request_t xcb_out;
1372 
1373     xcb_out.drawable = drawable;
1374     xcb_out.onoff = onoff;
1375     memset(xcb_out.pad0, 0, 3);
1376 
1377     xcb_parts[2].iov_base = (char *) &xcb_out;
1378     xcb_parts[2].iov_len = sizeof(xcb_out);
1379     xcb_parts[3].iov_base = 0;
1380     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1381 
1382     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1383     return xcb_ret;
1384 }
1385 
1386 xcb_void_cookie_t
xcb_xv_select_video_notify(xcb_connection_t * c,xcb_drawable_t drawable,uint8_t onoff)1387 xcb_xv_select_video_notify (xcb_connection_t *c  /**< */,
1388                             xcb_drawable_t    drawable  /**< */,
1389                             uint8_t           onoff  /**< */)
1390 {
1391     static const xcb_protocol_request_t xcb_req = {
1392         /* count */ 2,
1393         /* ext */ &xcb_xv_id,
1394         /* opcode */ XCB_XV_SELECT_VIDEO_NOTIFY,
1395         /* isvoid */ 1
1396     };
1397 
1398     struct iovec xcb_parts[4];
1399     xcb_void_cookie_t xcb_ret;
1400     xcb_xv_select_video_notify_request_t xcb_out;
1401 
1402     xcb_out.drawable = drawable;
1403     xcb_out.onoff = onoff;
1404     memset(xcb_out.pad0, 0, 3);
1405 
1406     xcb_parts[2].iov_base = (char *) &xcb_out;
1407     xcb_parts[2].iov_len = sizeof(xcb_out);
1408     xcb_parts[3].iov_base = 0;
1409     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1410 
1411     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1412     return xcb_ret;
1413 }
1414 
1415 xcb_void_cookie_t
xcb_xv_select_port_notify_checked(xcb_connection_t * c,xcb_xv_port_t port,uint8_t onoff)1416 xcb_xv_select_port_notify_checked (xcb_connection_t *c  /**< */,
1417                                    xcb_xv_port_t     port  /**< */,
1418                                    uint8_t           onoff  /**< */)
1419 {
1420     static const xcb_protocol_request_t xcb_req = {
1421         /* count */ 2,
1422         /* ext */ &xcb_xv_id,
1423         /* opcode */ XCB_XV_SELECT_PORT_NOTIFY,
1424         /* isvoid */ 1
1425     };
1426 
1427     struct iovec xcb_parts[4];
1428     xcb_void_cookie_t xcb_ret;
1429     xcb_xv_select_port_notify_request_t xcb_out;
1430 
1431     xcb_out.port = port;
1432     xcb_out.onoff = onoff;
1433     memset(xcb_out.pad0, 0, 3);
1434 
1435     xcb_parts[2].iov_base = (char *) &xcb_out;
1436     xcb_parts[2].iov_len = sizeof(xcb_out);
1437     xcb_parts[3].iov_base = 0;
1438     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1439 
1440     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1441     return xcb_ret;
1442 }
1443 
1444 xcb_void_cookie_t
xcb_xv_select_port_notify(xcb_connection_t * c,xcb_xv_port_t port,uint8_t onoff)1445 xcb_xv_select_port_notify (xcb_connection_t *c  /**< */,
1446                            xcb_xv_port_t     port  /**< */,
1447                            uint8_t           onoff  /**< */)
1448 {
1449     static const xcb_protocol_request_t xcb_req = {
1450         /* count */ 2,
1451         /* ext */ &xcb_xv_id,
1452         /* opcode */ XCB_XV_SELECT_PORT_NOTIFY,
1453         /* isvoid */ 1
1454     };
1455 
1456     struct iovec xcb_parts[4];
1457     xcb_void_cookie_t xcb_ret;
1458     xcb_xv_select_port_notify_request_t xcb_out;
1459 
1460     xcb_out.port = port;
1461     xcb_out.onoff = onoff;
1462     memset(xcb_out.pad0, 0, 3);
1463 
1464     xcb_parts[2].iov_base = (char *) &xcb_out;
1465     xcb_parts[2].iov_len = sizeof(xcb_out);
1466     xcb_parts[3].iov_base = 0;
1467     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1468 
1469     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1470     return xcb_ret;
1471 }
1472 
1473 xcb_xv_query_best_size_cookie_t
xcb_xv_query_best_size(xcb_connection_t * c,xcb_xv_port_t port,uint16_t vid_w,uint16_t vid_h,uint16_t drw_w,uint16_t drw_h,uint8_t motion)1474 xcb_xv_query_best_size (xcb_connection_t *c  /**< */,
1475                         xcb_xv_port_t     port  /**< */,
1476                         uint16_t          vid_w  /**< */,
1477                         uint16_t          vid_h  /**< */,
1478                         uint16_t          drw_w  /**< */,
1479                         uint16_t          drw_h  /**< */,
1480                         uint8_t           motion  /**< */)
1481 {
1482     static const xcb_protocol_request_t xcb_req = {
1483         /* count */ 2,
1484         /* ext */ &xcb_xv_id,
1485         /* opcode */ XCB_XV_QUERY_BEST_SIZE,
1486         /* isvoid */ 0
1487     };
1488 
1489     struct iovec xcb_parts[4];
1490     xcb_xv_query_best_size_cookie_t xcb_ret;
1491     xcb_xv_query_best_size_request_t xcb_out;
1492 
1493     xcb_out.port = port;
1494     xcb_out.vid_w = vid_w;
1495     xcb_out.vid_h = vid_h;
1496     xcb_out.drw_w = drw_w;
1497     xcb_out.drw_h = drw_h;
1498     xcb_out.motion = motion;
1499     memset(xcb_out.pad0, 0, 3);
1500 
1501     xcb_parts[2].iov_base = (char *) &xcb_out;
1502     xcb_parts[2].iov_len = sizeof(xcb_out);
1503     xcb_parts[3].iov_base = 0;
1504     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1505 
1506     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1507     return xcb_ret;
1508 }
1509 
1510 xcb_xv_query_best_size_cookie_t
xcb_xv_query_best_size_unchecked(xcb_connection_t * c,xcb_xv_port_t port,uint16_t vid_w,uint16_t vid_h,uint16_t drw_w,uint16_t drw_h,uint8_t motion)1511 xcb_xv_query_best_size_unchecked (xcb_connection_t *c  /**< */,
1512                                   xcb_xv_port_t     port  /**< */,
1513                                   uint16_t          vid_w  /**< */,
1514                                   uint16_t          vid_h  /**< */,
1515                                   uint16_t          drw_w  /**< */,
1516                                   uint16_t          drw_h  /**< */,
1517                                   uint8_t           motion  /**< */)
1518 {
1519     static const xcb_protocol_request_t xcb_req = {
1520         /* count */ 2,
1521         /* ext */ &xcb_xv_id,
1522         /* opcode */ XCB_XV_QUERY_BEST_SIZE,
1523         /* isvoid */ 0
1524     };
1525 
1526     struct iovec xcb_parts[4];
1527     xcb_xv_query_best_size_cookie_t xcb_ret;
1528     xcb_xv_query_best_size_request_t xcb_out;
1529 
1530     xcb_out.port = port;
1531     xcb_out.vid_w = vid_w;
1532     xcb_out.vid_h = vid_h;
1533     xcb_out.drw_w = drw_w;
1534     xcb_out.drw_h = drw_h;
1535     xcb_out.motion = motion;
1536     memset(xcb_out.pad0, 0, 3);
1537 
1538     xcb_parts[2].iov_base = (char *) &xcb_out;
1539     xcb_parts[2].iov_len = sizeof(xcb_out);
1540     xcb_parts[3].iov_base = 0;
1541     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1542 
1543     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1544     return xcb_ret;
1545 }
1546 
1547 xcb_xv_query_best_size_reply_t *
xcb_xv_query_best_size_reply(xcb_connection_t * c,xcb_xv_query_best_size_cookie_t cookie,xcb_generic_error_t ** e)1548 xcb_xv_query_best_size_reply (xcb_connection_t                 *c  /**< */,
1549                               xcb_xv_query_best_size_cookie_t   cookie  /**< */,
1550                               xcb_generic_error_t             **e  /**< */)
1551 {
1552     return (xcb_xv_query_best_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1553 }
1554 
1555 xcb_void_cookie_t
xcb_xv_set_port_attribute_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_atom_t attribute,int32_t value)1556 xcb_xv_set_port_attribute_checked (xcb_connection_t *c  /**< */,
1557                                    xcb_xv_port_t     port  /**< */,
1558                                    xcb_atom_t        attribute  /**< */,
1559                                    int32_t           value  /**< */)
1560 {
1561     static const xcb_protocol_request_t xcb_req = {
1562         /* count */ 2,
1563         /* ext */ &xcb_xv_id,
1564         /* opcode */ XCB_XV_SET_PORT_ATTRIBUTE,
1565         /* isvoid */ 1
1566     };
1567 
1568     struct iovec xcb_parts[4];
1569     xcb_void_cookie_t xcb_ret;
1570     xcb_xv_set_port_attribute_request_t xcb_out;
1571 
1572     xcb_out.port = port;
1573     xcb_out.attribute = attribute;
1574     xcb_out.value = value;
1575 
1576     xcb_parts[2].iov_base = (char *) &xcb_out;
1577     xcb_parts[2].iov_len = sizeof(xcb_out);
1578     xcb_parts[3].iov_base = 0;
1579     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1580 
1581     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1582     return xcb_ret;
1583 }
1584 
1585 xcb_void_cookie_t
xcb_xv_set_port_attribute(xcb_connection_t * c,xcb_xv_port_t port,xcb_atom_t attribute,int32_t value)1586 xcb_xv_set_port_attribute (xcb_connection_t *c  /**< */,
1587                            xcb_xv_port_t     port  /**< */,
1588                            xcb_atom_t        attribute  /**< */,
1589                            int32_t           value  /**< */)
1590 {
1591     static const xcb_protocol_request_t xcb_req = {
1592         /* count */ 2,
1593         /* ext */ &xcb_xv_id,
1594         /* opcode */ XCB_XV_SET_PORT_ATTRIBUTE,
1595         /* isvoid */ 1
1596     };
1597 
1598     struct iovec xcb_parts[4];
1599     xcb_void_cookie_t xcb_ret;
1600     xcb_xv_set_port_attribute_request_t xcb_out;
1601 
1602     xcb_out.port = port;
1603     xcb_out.attribute = attribute;
1604     xcb_out.value = value;
1605 
1606     xcb_parts[2].iov_base = (char *) &xcb_out;
1607     xcb_parts[2].iov_len = sizeof(xcb_out);
1608     xcb_parts[3].iov_base = 0;
1609     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1610 
1611     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1612     return xcb_ret;
1613 }
1614 
1615 xcb_xv_get_port_attribute_cookie_t
xcb_xv_get_port_attribute(xcb_connection_t * c,xcb_xv_port_t port,xcb_atom_t attribute)1616 xcb_xv_get_port_attribute (xcb_connection_t *c  /**< */,
1617                            xcb_xv_port_t     port  /**< */,
1618                            xcb_atom_t        attribute  /**< */)
1619 {
1620     static const xcb_protocol_request_t xcb_req = {
1621         /* count */ 2,
1622         /* ext */ &xcb_xv_id,
1623         /* opcode */ XCB_XV_GET_PORT_ATTRIBUTE,
1624         /* isvoid */ 0
1625     };
1626 
1627     struct iovec xcb_parts[4];
1628     xcb_xv_get_port_attribute_cookie_t xcb_ret;
1629     xcb_xv_get_port_attribute_request_t xcb_out;
1630 
1631     xcb_out.port = port;
1632     xcb_out.attribute = attribute;
1633 
1634     xcb_parts[2].iov_base = (char *) &xcb_out;
1635     xcb_parts[2].iov_len = sizeof(xcb_out);
1636     xcb_parts[3].iov_base = 0;
1637     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1638 
1639     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1640     return xcb_ret;
1641 }
1642 
1643 xcb_xv_get_port_attribute_cookie_t
xcb_xv_get_port_attribute_unchecked(xcb_connection_t * c,xcb_xv_port_t port,xcb_atom_t attribute)1644 xcb_xv_get_port_attribute_unchecked (xcb_connection_t *c  /**< */,
1645                                      xcb_xv_port_t     port  /**< */,
1646                                      xcb_atom_t        attribute  /**< */)
1647 {
1648     static const xcb_protocol_request_t xcb_req = {
1649         /* count */ 2,
1650         /* ext */ &xcb_xv_id,
1651         /* opcode */ XCB_XV_GET_PORT_ATTRIBUTE,
1652         /* isvoid */ 0
1653     };
1654 
1655     struct iovec xcb_parts[4];
1656     xcb_xv_get_port_attribute_cookie_t xcb_ret;
1657     xcb_xv_get_port_attribute_request_t xcb_out;
1658 
1659     xcb_out.port = port;
1660     xcb_out.attribute = attribute;
1661 
1662     xcb_parts[2].iov_base = (char *) &xcb_out;
1663     xcb_parts[2].iov_len = sizeof(xcb_out);
1664     xcb_parts[3].iov_base = 0;
1665     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1666 
1667     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1668     return xcb_ret;
1669 }
1670 
1671 xcb_xv_get_port_attribute_reply_t *
xcb_xv_get_port_attribute_reply(xcb_connection_t * c,xcb_xv_get_port_attribute_cookie_t cookie,xcb_generic_error_t ** e)1672 xcb_xv_get_port_attribute_reply (xcb_connection_t                    *c  /**< */,
1673                                  xcb_xv_get_port_attribute_cookie_t   cookie  /**< */,
1674                                  xcb_generic_error_t                **e  /**< */)
1675 {
1676     return (xcb_xv_get_port_attribute_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1677 }
1678 
1679 int
xcb_xv_query_port_attributes_sizeof(const void * _buffer)1680 xcb_xv_query_port_attributes_sizeof (const void  *_buffer  /**< */)
1681 {
1682     char *xcb_tmp = (char *)_buffer;
1683     const xcb_xv_query_port_attributes_reply_t *_aux = (xcb_xv_query_port_attributes_reply_t *)_buffer;
1684     unsigned int xcb_buffer_len = 0;
1685     unsigned int xcb_block_len = 0;
1686     unsigned int xcb_pad = 0;
1687     unsigned int xcb_align_to = 0;
1688 
1689     unsigned int i;
1690     unsigned int xcb_tmp_len;
1691 
1692     xcb_block_len += sizeof(xcb_xv_query_port_attributes_reply_t);
1693     xcb_tmp += xcb_block_len;
1694     xcb_buffer_len += xcb_block_len;
1695     xcb_block_len = 0;
1696     /* attributes */
1697     for(i=0; i<_aux->num_attributes; i++) {
1698         xcb_tmp_len = xcb_xv_attribute_info_sizeof(xcb_tmp);
1699         xcb_block_len += xcb_tmp_len;
1700         xcb_tmp += xcb_tmp_len;
1701     }
1702     xcb_align_to = ALIGNOF(xcb_xv_attribute_info_t);
1703     /* insert padding */
1704     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1705     xcb_buffer_len += xcb_block_len + xcb_pad;
1706     if (0 != xcb_pad) {
1707         xcb_tmp += xcb_pad;
1708         xcb_pad = 0;
1709     }
1710     xcb_block_len = 0;
1711 
1712     return xcb_buffer_len;
1713 }
1714 
1715 xcb_xv_query_port_attributes_cookie_t
xcb_xv_query_port_attributes(xcb_connection_t * c,xcb_xv_port_t port)1716 xcb_xv_query_port_attributes (xcb_connection_t *c  /**< */,
1717                               xcb_xv_port_t     port  /**< */)
1718 {
1719     static const xcb_protocol_request_t xcb_req = {
1720         /* count */ 2,
1721         /* ext */ &xcb_xv_id,
1722         /* opcode */ XCB_XV_QUERY_PORT_ATTRIBUTES,
1723         /* isvoid */ 0
1724     };
1725 
1726     struct iovec xcb_parts[4];
1727     xcb_xv_query_port_attributes_cookie_t xcb_ret;
1728     xcb_xv_query_port_attributes_request_t xcb_out;
1729 
1730     xcb_out.port = port;
1731 
1732     xcb_parts[2].iov_base = (char *) &xcb_out;
1733     xcb_parts[2].iov_len = sizeof(xcb_out);
1734     xcb_parts[3].iov_base = 0;
1735     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1736 
1737     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1738     return xcb_ret;
1739 }
1740 
1741 xcb_xv_query_port_attributes_cookie_t
xcb_xv_query_port_attributes_unchecked(xcb_connection_t * c,xcb_xv_port_t port)1742 xcb_xv_query_port_attributes_unchecked (xcb_connection_t *c  /**< */,
1743                                         xcb_xv_port_t     port  /**< */)
1744 {
1745     static const xcb_protocol_request_t xcb_req = {
1746         /* count */ 2,
1747         /* ext */ &xcb_xv_id,
1748         /* opcode */ XCB_XV_QUERY_PORT_ATTRIBUTES,
1749         /* isvoid */ 0
1750     };
1751 
1752     struct iovec xcb_parts[4];
1753     xcb_xv_query_port_attributes_cookie_t xcb_ret;
1754     xcb_xv_query_port_attributes_request_t xcb_out;
1755 
1756     xcb_out.port = port;
1757 
1758     xcb_parts[2].iov_base = (char *) &xcb_out;
1759     xcb_parts[2].iov_len = sizeof(xcb_out);
1760     xcb_parts[3].iov_base = 0;
1761     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1762 
1763     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1764     return xcb_ret;
1765 }
1766 
1767 int
xcb_xv_query_port_attributes_attributes_length(const xcb_xv_query_port_attributes_reply_t * R)1768 xcb_xv_query_port_attributes_attributes_length (const xcb_xv_query_port_attributes_reply_t *R  /**< */)
1769 {
1770     return R->num_attributes;
1771 }
1772 
1773 xcb_xv_attribute_info_iterator_t
xcb_xv_query_port_attributes_attributes_iterator(const xcb_xv_query_port_attributes_reply_t * R)1774 xcb_xv_query_port_attributes_attributes_iterator (const xcb_xv_query_port_attributes_reply_t *R  /**< */)
1775 {
1776     xcb_xv_attribute_info_iterator_t i;
1777     i.data = (xcb_xv_attribute_info_t *) (R + 1);
1778     i.rem = R->num_attributes;
1779     i.index = (char *) i.data - (char *) R;
1780     return i;
1781 }
1782 
1783 xcb_xv_query_port_attributes_reply_t *
xcb_xv_query_port_attributes_reply(xcb_connection_t * c,xcb_xv_query_port_attributes_cookie_t cookie,xcb_generic_error_t ** e)1784 xcb_xv_query_port_attributes_reply (xcb_connection_t                       *c  /**< */,
1785                                     xcb_xv_query_port_attributes_cookie_t   cookie  /**< */,
1786                                     xcb_generic_error_t                   **e  /**< */)
1787 {
1788     return (xcb_xv_query_port_attributes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1789 }
1790 
1791 int
xcb_xv_list_image_formats_sizeof(const void * _buffer)1792 xcb_xv_list_image_formats_sizeof (const void  *_buffer  /**< */)
1793 {
1794     char *xcb_tmp = (char *)_buffer;
1795     const xcb_xv_list_image_formats_reply_t *_aux = (xcb_xv_list_image_formats_reply_t *)_buffer;
1796     unsigned int xcb_buffer_len = 0;
1797     unsigned int xcb_block_len = 0;
1798     unsigned int xcb_pad = 0;
1799     unsigned int xcb_align_to = 0;
1800 
1801 
1802     xcb_block_len += sizeof(xcb_xv_list_image_formats_reply_t);
1803     xcb_tmp += xcb_block_len;
1804     xcb_buffer_len += xcb_block_len;
1805     xcb_block_len = 0;
1806     /* format */
1807     xcb_block_len += _aux->num_formats * sizeof(xcb_xv_image_format_info_t);
1808     xcb_tmp += xcb_block_len;
1809     xcb_align_to = ALIGNOF(xcb_xv_image_format_info_t);
1810     /* insert padding */
1811     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1812     xcb_buffer_len += xcb_block_len + xcb_pad;
1813     if (0 != xcb_pad) {
1814         xcb_tmp += xcb_pad;
1815         xcb_pad = 0;
1816     }
1817     xcb_block_len = 0;
1818 
1819     return xcb_buffer_len;
1820 }
1821 
1822 xcb_xv_list_image_formats_cookie_t
xcb_xv_list_image_formats(xcb_connection_t * c,xcb_xv_port_t port)1823 xcb_xv_list_image_formats (xcb_connection_t *c  /**< */,
1824                            xcb_xv_port_t     port  /**< */)
1825 {
1826     static const xcb_protocol_request_t xcb_req = {
1827         /* count */ 2,
1828         /* ext */ &xcb_xv_id,
1829         /* opcode */ XCB_XV_LIST_IMAGE_FORMATS,
1830         /* isvoid */ 0
1831     };
1832 
1833     struct iovec xcb_parts[4];
1834     xcb_xv_list_image_formats_cookie_t xcb_ret;
1835     xcb_xv_list_image_formats_request_t xcb_out;
1836 
1837     xcb_out.port = port;
1838 
1839     xcb_parts[2].iov_base = (char *) &xcb_out;
1840     xcb_parts[2].iov_len = sizeof(xcb_out);
1841     xcb_parts[3].iov_base = 0;
1842     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1843 
1844     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1845     return xcb_ret;
1846 }
1847 
1848 xcb_xv_list_image_formats_cookie_t
xcb_xv_list_image_formats_unchecked(xcb_connection_t * c,xcb_xv_port_t port)1849 xcb_xv_list_image_formats_unchecked (xcb_connection_t *c  /**< */,
1850                                      xcb_xv_port_t     port  /**< */)
1851 {
1852     static const xcb_protocol_request_t xcb_req = {
1853         /* count */ 2,
1854         /* ext */ &xcb_xv_id,
1855         /* opcode */ XCB_XV_LIST_IMAGE_FORMATS,
1856         /* isvoid */ 0
1857     };
1858 
1859     struct iovec xcb_parts[4];
1860     xcb_xv_list_image_formats_cookie_t xcb_ret;
1861     xcb_xv_list_image_formats_request_t xcb_out;
1862 
1863     xcb_out.port = port;
1864 
1865     xcb_parts[2].iov_base = (char *) &xcb_out;
1866     xcb_parts[2].iov_len = sizeof(xcb_out);
1867     xcb_parts[3].iov_base = 0;
1868     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1869 
1870     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
1871     return xcb_ret;
1872 }
1873 
1874 xcb_xv_image_format_info_t *
xcb_xv_list_image_formats_format(const xcb_xv_list_image_formats_reply_t * R)1875 xcb_xv_list_image_formats_format (const xcb_xv_list_image_formats_reply_t *R  /**< */)
1876 {
1877     return (xcb_xv_image_format_info_t *) (R + 1);
1878 }
1879 
1880 int
xcb_xv_list_image_formats_format_length(const xcb_xv_list_image_formats_reply_t * R)1881 xcb_xv_list_image_formats_format_length (const xcb_xv_list_image_formats_reply_t *R  /**< */)
1882 {
1883     return R->num_formats;
1884 }
1885 
1886 xcb_xv_image_format_info_iterator_t
xcb_xv_list_image_formats_format_iterator(const xcb_xv_list_image_formats_reply_t * R)1887 xcb_xv_list_image_formats_format_iterator (const xcb_xv_list_image_formats_reply_t *R  /**< */)
1888 {
1889     xcb_xv_image_format_info_iterator_t i;
1890     i.data = (xcb_xv_image_format_info_t *) (R + 1);
1891     i.rem = R->num_formats;
1892     i.index = (char *) i.data - (char *) R;
1893     return i;
1894 }
1895 
1896 xcb_xv_list_image_formats_reply_t *
xcb_xv_list_image_formats_reply(xcb_connection_t * c,xcb_xv_list_image_formats_cookie_t cookie,xcb_generic_error_t ** e)1897 xcb_xv_list_image_formats_reply (xcb_connection_t                    *c  /**< */,
1898                                  xcb_xv_list_image_formats_cookie_t   cookie  /**< */,
1899                                  xcb_generic_error_t                **e  /**< */)
1900 {
1901     return (xcb_xv_list_image_formats_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
1902 }
1903 
1904 int
xcb_xv_query_image_attributes_sizeof(const void * _buffer)1905 xcb_xv_query_image_attributes_sizeof (const void  *_buffer  /**< */)
1906 {
1907     char *xcb_tmp = (char *)_buffer;
1908     const xcb_xv_query_image_attributes_reply_t *_aux = (xcb_xv_query_image_attributes_reply_t *)_buffer;
1909     unsigned int xcb_buffer_len = 0;
1910     unsigned int xcb_block_len = 0;
1911     unsigned int xcb_pad = 0;
1912     unsigned int xcb_align_to = 0;
1913 
1914 
1915     xcb_block_len += sizeof(xcb_xv_query_image_attributes_reply_t);
1916     xcb_tmp += xcb_block_len;
1917     xcb_buffer_len += xcb_block_len;
1918     xcb_block_len = 0;
1919     /* pitches */
1920     xcb_block_len += _aux->num_planes * sizeof(uint32_t);
1921     xcb_tmp += xcb_block_len;
1922     xcb_align_to = ALIGNOF(uint32_t);
1923     /* insert padding */
1924     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1925     xcb_buffer_len += xcb_block_len + xcb_pad;
1926     if (0 != xcb_pad) {
1927         xcb_tmp += xcb_pad;
1928         xcb_pad = 0;
1929     }
1930     xcb_block_len = 0;
1931     /* offsets */
1932     xcb_block_len += _aux->num_planes * sizeof(uint32_t);
1933     xcb_tmp += xcb_block_len;
1934     xcb_align_to = ALIGNOF(uint32_t);
1935     /* insert padding */
1936     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
1937     xcb_buffer_len += xcb_block_len + xcb_pad;
1938     if (0 != xcb_pad) {
1939         xcb_tmp += xcb_pad;
1940         xcb_pad = 0;
1941     }
1942     xcb_block_len = 0;
1943 
1944     return xcb_buffer_len;
1945 }
1946 
1947 xcb_xv_query_image_attributes_cookie_t
xcb_xv_query_image_attributes(xcb_connection_t * c,xcb_xv_port_t port,uint32_t id,uint16_t width,uint16_t height)1948 xcb_xv_query_image_attributes (xcb_connection_t *c  /**< */,
1949                                xcb_xv_port_t     port  /**< */,
1950                                uint32_t          id  /**< */,
1951                                uint16_t          width  /**< */,
1952                                uint16_t          height  /**< */)
1953 {
1954     static const xcb_protocol_request_t xcb_req = {
1955         /* count */ 2,
1956         /* ext */ &xcb_xv_id,
1957         /* opcode */ XCB_XV_QUERY_IMAGE_ATTRIBUTES,
1958         /* isvoid */ 0
1959     };
1960 
1961     struct iovec xcb_parts[4];
1962     xcb_xv_query_image_attributes_cookie_t xcb_ret;
1963     xcb_xv_query_image_attributes_request_t xcb_out;
1964 
1965     xcb_out.port = port;
1966     xcb_out.id = id;
1967     xcb_out.width = width;
1968     xcb_out.height = height;
1969 
1970     xcb_parts[2].iov_base = (char *) &xcb_out;
1971     xcb_parts[2].iov_len = sizeof(xcb_out);
1972     xcb_parts[3].iov_base = 0;
1973     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
1974 
1975     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
1976     return xcb_ret;
1977 }
1978 
1979 xcb_xv_query_image_attributes_cookie_t
xcb_xv_query_image_attributes_unchecked(xcb_connection_t * c,xcb_xv_port_t port,uint32_t id,uint16_t width,uint16_t height)1980 xcb_xv_query_image_attributes_unchecked (xcb_connection_t *c  /**< */,
1981                                          xcb_xv_port_t     port  /**< */,
1982                                          uint32_t          id  /**< */,
1983                                          uint16_t          width  /**< */,
1984                                          uint16_t          height  /**< */)
1985 {
1986     static const xcb_protocol_request_t xcb_req = {
1987         /* count */ 2,
1988         /* ext */ &xcb_xv_id,
1989         /* opcode */ XCB_XV_QUERY_IMAGE_ATTRIBUTES,
1990         /* isvoid */ 0
1991     };
1992 
1993     struct iovec xcb_parts[4];
1994     xcb_xv_query_image_attributes_cookie_t xcb_ret;
1995     xcb_xv_query_image_attributes_request_t xcb_out;
1996 
1997     xcb_out.port = port;
1998     xcb_out.id = id;
1999     xcb_out.width = width;
2000     xcb_out.height = height;
2001 
2002     xcb_parts[2].iov_base = (char *) &xcb_out;
2003     xcb_parts[2].iov_len = sizeof(xcb_out);
2004     xcb_parts[3].iov_base = 0;
2005     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2006 
2007     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2008     return xcb_ret;
2009 }
2010 
2011 uint32_t *
xcb_xv_query_image_attributes_pitches(const xcb_xv_query_image_attributes_reply_t * R)2012 xcb_xv_query_image_attributes_pitches (const xcb_xv_query_image_attributes_reply_t *R  /**< */)
2013 {
2014     return (uint32_t *) (R + 1);
2015 }
2016 
2017 int
xcb_xv_query_image_attributes_pitches_length(const xcb_xv_query_image_attributes_reply_t * R)2018 xcb_xv_query_image_attributes_pitches_length (const xcb_xv_query_image_attributes_reply_t *R  /**< */)
2019 {
2020     return R->num_planes;
2021 }
2022 
2023 xcb_generic_iterator_t
xcb_xv_query_image_attributes_pitches_end(const xcb_xv_query_image_attributes_reply_t * R)2024 xcb_xv_query_image_attributes_pitches_end (const xcb_xv_query_image_attributes_reply_t *R  /**< */)
2025 {
2026     xcb_generic_iterator_t i;
2027     i.data = ((uint32_t *) (R + 1)) + (R->num_planes);
2028     i.rem = 0;
2029     i.index = (char *) i.data - (char *) R;
2030     return i;
2031 }
2032 
2033 uint32_t *
xcb_xv_query_image_attributes_offsets(const xcb_xv_query_image_attributes_reply_t * R)2034 xcb_xv_query_image_attributes_offsets (const xcb_xv_query_image_attributes_reply_t *R  /**< */)
2035 {
2036     xcb_generic_iterator_t prev = xcb_xv_query_image_attributes_pitches_end(R);
2037     return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0);
2038 }
2039 
2040 int
xcb_xv_query_image_attributes_offsets_length(const xcb_xv_query_image_attributes_reply_t * R)2041 xcb_xv_query_image_attributes_offsets_length (const xcb_xv_query_image_attributes_reply_t *R  /**< */)
2042 {
2043     return R->num_planes;
2044 }
2045 
2046 xcb_generic_iterator_t
xcb_xv_query_image_attributes_offsets_end(const xcb_xv_query_image_attributes_reply_t * R)2047 xcb_xv_query_image_attributes_offsets_end (const xcb_xv_query_image_attributes_reply_t *R  /**< */)
2048 {
2049     xcb_generic_iterator_t i;
2050     xcb_generic_iterator_t child = xcb_xv_query_image_attributes_pitches_end(R);
2051     i.data = ((uint32_t *) child.data) + (R->num_planes);
2052     i.rem = 0;
2053     i.index = (char *) i.data - (char *) R;
2054     return i;
2055 }
2056 
2057 xcb_xv_query_image_attributes_reply_t *
xcb_xv_query_image_attributes_reply(xcb_connection_t * c,xcb_xv_query_image_attributes_cookie_t cookie,xcb_generic_error_t ** e)2058 xcb_xv_query_image_attributes_reply (xcb_connection_t                        *c  /**< */,
2059                                      xcb_xv_query_image_attributes_cookie_t   cookie  /**< */,
2060                                      xcb_generic_error_t                    **e  /**< */)
2061 {
2062     return (xcb_xv_query_image_attributes_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
2063 }
2064 
2065 int
xcb_xv_put_image_sizeof(const void * _buffer,uint32_t data_len)2066 xcb_xv_put_image_sizeof (const void  *_buffer  /**< */,
2067                          uint32_t     data_len  /**< */)
2068 {
2069     char *xcb_tmp = (char *)_buffer;
2070     unsigned int xcb_buffer_len = 0;
2071     unsigned int xcb_block_len = 0;
2072     unsigned int xcb_pad = 0;
2073     unsigned int xcb_align_to = 0;
2074 
2075 
2076     xcb_block_len += sizeof(xcb_xv_put_image_request_t);
2077     xcb_tmp += xcb_block_len;
2078     xcb_buffer_len += xcb_block_len;
2079     xcb_block_len = 0;
2080     /* data */
2081     xcb_block_len += data_len * sizeof(uint8_t);
2082     xcb_tmp += xcb_block_len;
2083     xcb_align_to = ALIGNOF(uint8_t);
2084     /* insert padding */
2085     xcb_pad = -xcb_block_len & (xcb_align_to - 1);
2086     xcb_buffer_len += xcb_block_len + xcb_pad;
2087     if (0 != xcb_pad) {
2088         xcb_tmp += xcb_pad;
2089         xcb_pad = 0;
2090     }
2091     xcb_block_len = 0;
2092 
2093     return xcb_buffer_len;
2094 }
2095 
2096 xcb_void_cookie_t
xcb_xv_put_image_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,uint32_t id,int16_t src_x,int16_t src_y,uint16_t src_w,uint16_t src_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h,uint16_t width,uint16_t height,uint32_t data_len,const uint8_t * data)2097 xcb_xv_put_image_checked (xcb_connection_t *c  /**< */,
2098                           xcb_xv_port_t     port  /**< */,
2099                           xcb_drawable_t    drawable  /**< */,
2100                           xcb_gcontext_t    gc  /**< */,
2101                           uint32_t          id  /**< */,
2102                           int16_t           src_x  /**< */,
2103                           int16_t           src_y  /**< */,
2104                           uint16_t          src_w  /**< */,
2105                           uint16_t          src_h  /**< */,
2106                           int16_t           drw_x  /**< */,
2107                           int16_t           drw_y  /**< */,
2108                           uint16_t          drw_w  /**< */,
2109                           uint16_t          drw_h  /**< */,
2110                           uint16_t          width  /**< */,
2111                           uint16_t          height  /**< */,
2112                           uint32_t          data_len  /**< */,
2113                           const uint8_t    *data  /**< */)
2114 {
2115     static const xcb_protocol_request_t xcb_req = {
2116         /* count */ 4,
2117         /* ext */ &xcb_xv_id,
2118         /* opcode */ XCB_XV_PUT_IMAGE,
2119         /* isvoid */ 1
2120     };
2121 
2122     struct iovec xcb_parts[6];
2123     xcb_void_cookie_t xcb_ret;
2124     xcb_xv_put_image_request_t xcb_out;
2125 
2126     xcb_out.port = port;
2127     xcb_out.drawable = drawable;
2128     xcb_out.gc = gc;
2129     xcb_out.id = id;
2130     xcb_out.src_x = src_x;
2131     xcb_out.src_y = src_y;
2132     xcb_out.src_w = src_w;
2133     xcb_out.src_h = src_h;
2134     xcb_out.drw_x = drw_x;
2135     xcb_out.drw_y = drw_y;
2136     xcb_out.drw_w = drw_w;
2137     xcb_out.drw_h = drw_h;
2138     xcb_out.width = width;
2139     xcb_out.height = height;
2140 
2141     xcb_parts[2].iov_base = (char *) &xcb_out;
2142     xcb_parts[2].iov_len = sizeof(xcb_out);
2143     xcb_parts[3].iov_base = 0;
2144     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2145     /* uint8_t data */
2146     xcb_parts[4].iov_base = (char *) data;
2147     xcb_parts[4].iov_len = data_len * sizeof(uint8_t);
2148     xcb_parts[5].iov_base = 0;
2149     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2150 
2151     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2152     return xcb_ret;
2153 }
2154 
2155 xcb_void_cookie_t
xcb_xv_put_image(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,uint32_t id,int16_t src_x,int16_t src_y,uint16_t src_w,uint16_t src_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h,uint16_t width,uint16_t height,uint32_t data_len,const uint8_t * data)2156 xcb_xv_put_image (xcb_connection_t *c  /**< */,
2157                   xcb_xv_port_t     port  /**< */,
2158                   xcb_drawable_t    drawable  /**< */,
2159                   xcb_gcontext_t    gc  /**< */,
2160                   uint32_t          id  /**< */,
2161                   int16_t           src_x  /**< */,
2162                   int16_t           src_y  /**< */,
2163                   uint16_t          src_w  /**< */,
2164                   uint16_t          src_h  /**< */,
2165                   int16_t           drw_x  /**< */,
2166                   int16_t           drw_y  /**< */,
2167                   uint16_t          drw_w  /**< */,
2168                   uint16_t          drw_h  /**< */,
2169                   uint16_t          width  /**< */,
2170                   uint16_t          height  /**< */,
2171                   uint32_t          data_len  /**< */,
2172                   const uint8_t    *data  /**< */)
2173 {
2174     static const xcb_protocol_request_t xcb_req = {
2175         /* count */ 4,
2176         /* ext */ &xcb_xv_id,
2177         /* opcode */ XCB_XV_PUT_IMAGE,
2178         /* isvoid */ 1
2179     };
2180 
2181     struct iovec xcb_parts[6];
2182     xcb_void_cookie_t xcb_ret;
2183     xcb_xv_put_image_request_t xcb_out;
2184 
2185     xcb_out.port = port;
2186     xcb_out.drawable = drawable;
2187     xcb_out.gc = gc;
2188     xcb_out.id = id;
2189     xcb_out.src_x = src_x;
2190     xcb_out.src_y = src_y;
2191     xcb_out.src_w = src_w;
2192     xcb_out.src_h = src_h;
2193     xcb_out.drw_x = drw_x;
2194     xcb_out.drw_y = drw_y;
2195     xcb_out.drw_w = drw_w;
2196     xcb_out.drw_h = drw_h;
2197     xcb_out.width = width;
2198     xcb_out.height = height;
2199 
2200     xcb_parts[2].iov_base = (char *) &xcb_out;
2201     xcb_parts[2].iov_len = sizeof(xcb_out);
2202     xcb_parts[3].iov_base = 0;
2203     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2204     /* uint8_t data */
2205     xcb_parts[4].iov_base = (char *) data;
2206     xcb_parts[4].iov_len = data_len * sizeof(uint8_t);
2207     xcb_parts[5].iov_base = 0;
2208     xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3;
2209 
2210     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2211     return xcb_ret;
2212 }
2213 
2214 xcb_void_cookie_t
xcb_xv_shm_put_image_checked(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,xcb_shm_seg_t shmseg,uint32_t id,uint32_t offset,int16_t src_x,int16_t src_y,uint16_t src_w,uint16_t src_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h,uint16_t width,uint16_t height,uint8_t send_event)2215 xcb_xv_shm_put_image_checked (xcb_connection_t *c  /**< */,
2216                               xcb_xv_port_t     port  /**< */,
2217                               xcb_drawable_t    drawable  /**< */,
2218                               xcb_gcontext_t    gc  /**< */,
2219                               xcb_shm_seg_t     shmseg  /**< */,
2220                               uint32_t          id  /**< */,
2221                               uint32_t          offset  /**< */,
2222                               int16_t           src_x  /**< */,
2223                               int16_t           src_y  /**< */,
2224                               uint16_t          src_w  /**< */,
2225                               uint16_t          src_h  /**< */,
2226                               int16_t           drw_x  /**< */,
2227                               int16_t           drw_y  /**< */,
2228                               uint16_t          drw_w  /**< */,
2229                               uint16_t          drw_h  /**< */,
2230                               uint16_t          width  /**< */,
2231                               uint16_t          height  /**< */,
2232                               uint8_t           send_event  /**< */)
2233 {
2234     static const xcb_protocol_request_t xcb_req = {
2235         /* count */ 2,
2236         /* ext */ &xcb_xv_id,
2237         /* opcode */ XCB_XV_SHM_PUT_IMAGE,
2238         /* isvoid */ 1
2239     };
2240 
2241     struct iovec xcb_parts[4];
2242     xcb_void_cookie_t xcb_ret;
2243     xcb_xv_shm_put_image_request_t xcb_out;
2244 
2245     xcb_out.port = port;
2246     xcb_out.drawable = drawable;
2247     xcb_out.gc = gc;
2248     xcb_out.shmseg = shmseg;
2249     xcb_out.id = id;
2250     xcb_out.offset = offset;
2251     xcb_out.src_x = src_x;
2252     xcb_out.src_y = src_y;
2253     xcb_out.src_w = src_w;
2254     xcb_out.src_h = src_h;
2255     xcb_out.drw_x = drw_x;
2256     xcb_out.drw_y = drw_y;
2257     xcb_out.drw_w = drw_w;
2258     xcb_out.drw_h = drw_h;
2259     xcb_out.width = width;
2260     xcb_out.height = height;
2261     xcb_out.send_event = send_event;
2262     memset(xcb_out.pad0, 0, 3);
2263 
2264     xcb_parts[2].iov_base = (char *) &xcb_out;
2265     xcb_parts[2].iov_len = sizeof(xcb_out);
2266     xcb_parts[3].iov_base = 0;
2267     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2268 
2269     xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
2270     return xcb_ret;
2271 }
2272 
2273 xcb_void_cookie_t
xcb_xv_shm_put_image(xcb_connection_t * c,xcb_xv_port_t port,xcb_drawable_t drawable,xcb_gcontext_t gc,xcb_shm_seg_t shmseg,uint32_t id,uint32_t offset,int16_t src_x,int16_t src_y,uint16_t src_w,uint16_t src_h,int16_t drw_x,int16_t drw_y,uint16_t drw_w,uint16_t drw_h,uint16_t width,uint16_t height,uint8_t send_event)2274 xcb_xv_shm_put_image (xcb_connection_t *c  /**< */,
2275                       xcb_xv_port_t     port  /**< */,
2276                       xcb_drawable_t    drawable  /**< */,
2277                       xcb_gcontext_t    gc  /**< */,
2278                       xcb_shm_seg_t     shmseg  /**< */,
2279                       uint32_t          id  /**< */,
2280                       uint32_t          offset  /**< */,
2281                       int16_t           src_x  /**< */,
2282                       int16_t           src_y  /**< */,
2283                       uint16_t          src_w  /**< */,
2284                       uint16_t          src_h  /**< */,
2285                       int16_t           drw_x  /**< */,
2286                       int16_t           drw_y  /**< */,
2287                       uint16_t          drw_w  /**< */,
2288                       uint16_t          drw_h  /**< */,
2289                       uint16_t          width  /**< */,
2290                       uint16_t          height  /**< */,
2291                       uint8_t           send_event  /**< */)
2292 {
2293     static const xcb_protocol_request_t xcb_req = {
2294         /* count */ 2,
2295         /* ext */ &xcb_xv_id,
2296         /* opcode */ XCB_XV_SHM_PUT_IMAGE,
2297         /* isvoid */ 1
2298     };
2299 
2300     struct iovec xcb_parts[4];
2301     xcb_void_cookie_t xcb_ret;
2302     xcb_xv_shm_put_image_request_t xcb_out;
2303 
2304     xcb_out.port = port;
2305     xcb_out.drawable = drawable;
2306     xcb_out.gc = gc;
2307     xcb_out.shmseg = shmseg;
2308     xcb_out.id = id;
2309     xcb_out.offset = offset;
2310     xcb_out.src_x = src_x;
2311     xcb_out.src_y = src_y;
2312     xcb_out.src_w = src_w;
2313     xcb_out.src_h = src_h;
2314     xcb_out.drw_x = drw_x;
2315     xcb_out.drw_y = drw_y;
2316     xcb_out.drw_w = drw_w;
2317     xcb_out.drw_h = drw_h;
2318     xcb_out.width = width;
2319     xcb_out.height = height;
2320     xcb_out.send_event = send_event;
2321     memset(xcb_out.pad0, 0, 3);
2322 
2323     xcb_parts[2].iov_base = (char *) &xcb_out;
2324     xcb_parts[2].iov_len = sizeof(xcb_out);
2325     xcb_parts[3].iov_base = 0;
2326     xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
2327 
2328     xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
2329     return xcb_ret;
2330 }
2331 
2332