upgrade for xorg-server 1.12.99.905 (for 1.13 RC)
[framework/uifw/xorg/proto/x11proto-randr.git] / randrproto.h
1 /*
2  * Copyright © 2000 Compaq Computer Corporation
3  * Copyright © 2002 Hewlett-Packard Company
4  * Copyright © 2006 Intel Corporation
5  * Copyright © 2008 Red Hat, Inc.
6  *
7  * Permission to use, copy, modify, distribute, and sell this software and its
8  * documentation for any purpose is hereby granted without fee, provided that
9  * the above copyright notice appear in all copies and that both that copyright
10  * notice and this permission notice appear in supporting documentation, and
11  * that the name of the copyright holders not be used in advertising or
12  * publicity pertaining to distribution of the software without specific,
13  * written prior permission.  The copyright holders make no representations
14  * about the suitability of this software for any purpose.  It is provided "as
15  * is" without express or implied warranty.
16  *
17  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
18  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
19  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
20  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
22  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
23  * OF THIS SOFTWARE.
24  *
25  * Author:  Jim Gettys, Hewlett-Packard Company, Inc.
26  *          Keith Packard, Intel Corporation
27  */
28
29 /* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */
30 /* V1.0 removes depth switching from the protocol */
31 #ifndef _XRANDRP_H_
32 #define _XRANDRP_H_
33
34 #include <X11/extensions/randr.h>
35 #include <X11/extensions/renderproto.h>
36
37 #define Window CARD32
38 #define Drawable CARD32
39 #define Font CARD32
40 #define Pixmap CARD32
41 #define Cursor CARD32
42 #define Colormap CARD32
43 #define GContext CARD32
44 #define Atom CARD32
45 #define Time CARD32
46 #define KeyCode CARD8
47 #define KeySym CARD32
48 #define RROutput CARD32
49 #define RRMode CARD32
50 #define RRCrtc CARD32
51 #define RRProvider CARD32
52 #define RRModeFlags CARD32
53
54 #define Rotation CARD16
55 #define SizeID CARD16
56 #define SubpixelOrder CARD16
57
58 /*
59  * data structures
60  */
61
62 typedef struct {
63     CARD16 widthInPixels B16;
64     CARD16 heightInPixels B16;
65     CARD16 widthInMillimeters B16;
66     CARD16 heightInMillimeters B16;
67 } xScreenSizes;
68 #define sz_xScreenSizes 8
69
70 /* 
71  * requests and replies
72  */
73
74 typedef struct {
75     CARD8   reqType;
76     CARD8   randrReqType;
77     CARD16  length B16;
78     CARD32  majorVersion B32;
79     CARD32  minorVersion B32;
80 } xRRQueryVersionReq;
81 #define sz_xRRQueryVersionReq   12
82
83 typedef struct {
84     BYTE    type;   /* X_Reply */
85     BYTE    pad1;
86     CARD16  sequenceNumber B16;
87     CARD32  length B32;
88     CARD32  majorVersion B32;
89     CARD32  minorVersion B32;
90     CARD32  pad2 B32;
91     CARD32  pad3 B32;
92     CARD32  pad4 B32;
93     CARD32  pad5 B32;
94 } xRRQueryVersionReply;
95 #define sz_xRRQueryVersionReply 32
96
97 typedef struct {
98     CARD8   reqType;
99     CARD8   randrReqType;
100     CARD16  length B16;
101     Window  window B32;
102 } xRRGetScreenInfoReq;
103 #define sz_xRRGetScreenInfoReq   8
104
105 /* 
106  * the xRRScreenInfoReply structure is followed by:
107  *
108  * the size information
109  */
110
111
112 typedef struct {
113     BYTE    type;   /* X_Reply */
114     BYTE    setOfRotations;
115     CARD16  sequenceNumber B16;
116     CARD32  length B32;
117     Window  root B32;
118     Time    timestamp B32;
119     Time    configTimestamp B32;
120     CARD16  nSizes B16;
121     SizeID  sizeID B16;
122     Rotation  rotation B16;
123     CARD16  rate B16;
124     CARD16  nrateEnts B16;
125     CARD16  pad B16;
126 } xRRGetScreenInfoReply;
127 #define sz_xRRGetScreenInfoReply        32
128
129 typedef struct {
130     CARD8    reqType;
131     CARD8    randrReqType;
132     CARD16   length B16;
133     Drawable drawable B32;
134     Time     timestamp B32;
135     Time     configTimestamp B32;
136     SizeID   sizeID B16;
137     Rotation rotation B16;
138 } xRR1_0SetScreenConfigReq;
139 #define sz_xRR1_0SetScreenConfigReq   20
140
141 typedef struct {
142     CARD8    reqType;
143     CARD8    randrReqType;
144     CARD16   length B16;
145     Drawable drawable B32;
146     Time     timestamp B32;
147     Time     configTimestamp B32;
148     SizeID   sizeID B16;
149     Rotation rotation B16;
150     CARD16   rate B16;
151     CARD16   pad B16;
152 } xRRSetScreenConfigReq;
153 #define sz_xRRSetScreenConfigReq   24
154
155 typedef struct {
156     BYTE    type;   /* X_Reply */
157     CARD8   status;
158     CARD16  sequenceNumber B16;
159     CARD32  length B32;
160     Time    newTimestamp B32;  
161     Time    newConfigTimestamp B32;
162     Window  root;
163     CARD16  subpixelOrder B16;
164     CARD16  pad4 B16;
165     CARD32  pad5 B32;
166     CARD32  pad6 B32;
167 } xRRSetScreenConfigReply;
168 #define sz_xRRSetScreenConfigReply 32
169
170 typedef struct {
171     CARD8   reqType;
172     CARD8   randrReqType;
173     CARD16  length B16;
174     Window  window B32;
175     CARD16  enable B16;
176     CARD16  pad2 B16;
177 } xRRSelectInputReq;
178 #define sz_xRRSelectInputReq   12
179
180 /*
181  * Additions for version 1.2
182  */
183
184 typedef struct _xRRModeInfo {
185     RRMode              id B32;
186     CARD16              width B16;
187     CARD16              height B16;
188     CARD32              dotClock B32;
189     CARD16              hSyncStart B16;
190     CARD16              hSyncEnd B16;
191     CARD16              hTotal B16;
192     CARD16              hSkew B16;
193     CARD16              vSyncStart B16;
194     CARD16              vSyncEnd B16;
195     CARD16              vTotal B16;
196     CARD16              nameLength B16;
197     RRModeFlags         modeFlags B32;
198 } xRRModeInfo;
199 #define sz_xRRModeInfo              32
200
201 typedef struct {
202     CARD8   reqType;
203     CARD8   randrReqType;
204     CARD16  length B16;
205     Window  window B32;
206 } xRRGetScreenSizeRangeReq;
207 #define sz_xRRGetScreenSizeRangeReq 8
208
209 typedef struct {
210     BYTE    type;   /* X_Reply */
211     CARD8   pad;
212     CARD16  sequenceNumber B16;
213     CARD32  length B32;
214     CARD16  minWidth B16;
215     CARD16  minHeight B16;
216     CARD16  maxWidth B16;
217     CARD16  maxHeight B16;
218     CARD32  pad0 B32;
219     CARD32  pad1 B32;
220     CARD32  pad2 B32;
221     CARD32  pad3 B32;
222 } xRRGetScreenSizeRangeReply;
223 #define sz_xRRGetScreenSizeRangeReply 32
224
225 typedef struct {
226     CARD8   reqType;
227     CARD8   randrReqType;
228     CARD16  length B16;
229     Window  window B32;
230     CARD16  width B16;
231     CARD16  height B16;
232     CARD32  widthInMillimeters B32;
233     CARD32  heightInMillimeters B32;
234 } xRRSetScreenSizeReq;
235 #define sz_xRRSetScreenSizeReq      20
236
237 typedef struct {
238     CARD8   reqType;
239     CARD8   randrReqType;
240     CARD16  length B16;
241     Window  window B32;
242 } xRRGetScreenResourcesReq;
243 #define sz_xRRGetScreenResourcesReq 8
244
245 typedef struct {
246     BYTE        type;
247     CARD8       pad;
248     CARD16      sequenceNumber B16;
249     CARD32      length B32;
250     Time        timestamp B32;
251     Time        configTimestamp B32;
252     CARD16      nCrtcs B16;
253     CARD16      nOutputs B16;
254     CARD16      nModes B16;
255     CARD16      nbytesNames B16;
256     CARD32      pad1 B32;
257     CARD32      pad2 B32;
258 } xRRGetScreenResourcesReply;
259 #define sz_xRRGetScreenResourcesReply   32
260
261 typedef struct {
262     CARD8       reqType;
263     CARD8       randrReqType;
264     CARD16      length B16;
265     RROutput    output B32;
266     Time        configTimestamp B32;
267 } xRRGetOutputInfoReq;
268 #define sz_xRRGetOutputInfoReq          12
269
270 typedef struct {
271     BYTE        type;
272     CARD8       status;
273     CARD16      sequenceNumber B16;
274     CARD32      length B32;
275     Time        timestamp B32;
276     RRCrtc      crtc B32;
277     CARD32      mmWidth B32;
278     CARD32      mmHeight B32;
279     CARD8       connection;
280     CARD8       subpixelOrder;
281     CARD16      nCrtcs B16;
282     CARD16      nModes B16;
283     CARD16      nPreferred B16;
284     CARD16      nClones B16;
285     CARD16      nameLength B16;
286 } xRRGetOutputInfoReply;
287 #define sz_xRRGetOutputInfoReply        36
288
289 typedef struct {
290     CARD8       reqType;
291     CARD8       randrReqType;
292     CARD16      length B16;
293     RROutput    output B32;
294 } xRRListOutputPropertiesReq; 
295 #define sz_xRRListOutputPropertiesReq   8
296
297 typedef struct {
298     BYTE        type;
299     CARD8       pad0;
300     CARD16      sequenceNumber B16;
301     CARD32      length B32;
302     CARD16      nAtoms B16;
303     CARD16      pad1 B16;
304     CARD32      pad2 B32;
305     CARD32      pad3 B32;
306     CARD32      pad4 B32;
307     CARD32      pad5 B32;
308     CARD32      pad6 B32;
309 } xRRListOutputPropertiesReply;
310 #define sz_xRRListOutputPropertiesReply 32
311
312 typedef struct {
313     CARD8       reqType;
314     CARD8       randrReqType;
315     CARD16      length B16;
316     RROutput    output B32;
317     Atom        property B32;
318 } xRRQueryOutputPropertyReq; 
319 #define sz_xRRQueryOutputPropertyReq    12
320
321 typedef struct {
322     BYTE        type;
323     BYTE        pad0;
324     CARD16      sequenceNumber B16;
325     CARD32      length B32;
326     BOOL        pending;
327     BOOL        range;
328     BOOL        immutable;
329     BYTE        pad1;
330     CARD32      pad2 B32;
331     CARD32      pad3 B32;
332     CARD32      pad4 B32;
333     CARD32      pad5 B32;
334     CARD32      pad6 B32;
335 } xRRQueryOutputPropertyReply;
336 #define sz_xRRQueryOutputPropertyReply  32
337
338 typedef struct {
339     CARD8       reqType;
340     CARD8       randrReqType;
341     CARD16      length B16;
342     RROutput    output B32;
343     Atom        property B32;
344     BOOL        pending;
345     BOOL        range;
346     CARD16      pad B16;
347 } xRRConfigureOutputPropertyReq; 
348 #define sz_xRRConfigureOutputPropertyReq        16
349
350 typedef struct {
351     CARD8       reqType;
352     CARD8       randrReqType;
353     CARD16      length B16;
354     RROutput    output B32;
355     Atom        property B32;
356     Atom        type B32;
357     CARD8       format;
358     CARD8       mode;
359     CARD16      pad;
360     CARD32      nUnits B32;
361 } xRRChangeOutputPropertyReq;
362 #define sz_xRRChangeOutputPropertyReq   24
363
364 typedef struct {
365     CARD8       reqType;
366     CARD8       randrReqType;
367     CARD16      length B16;
368     RROutput    output B32;
369     Atom        property B32;
370 } xRRDeleteOutputPropertyReq;
371 #define sz_xRRDeleteOutputPropertyReq   12
372
373 typedef struct {
374     CARD8       reqType;
375     CARD8       randrReqType;
376     CARD16      length B16;
377     RROutput    output B32;
378     Atom        property B32;
379     Atom        type B32;
380     CARD32      longOffset B32;
381     CARD32      longLength B32;
382 #ifdef __cplusplus
383     BOOL        _delete;
384 #else
385     BOOL        delete;
386 #endif
387     BOOL        pending;
388     CARD16      pad1 B16;
389 } xRRGetOutputPropertyReq;
390 #define sz_xRRGetOutputPropertyReq      28
391
392 typedef struct {
393     BYTE        type;
394     CARD8       format;
395     CARD16      sequenceNumber B16;
396     CARD32      length B32;
397     Atom        propertyType B32;
398     CARD32      bytesAfter B32;
399     CARD32      nItems B32;
400     CARD32      pad1 B32;
401     CARD32      pad2 B32;
402     CARD32      pad3 B32;
403 } xRRGetOutputPropertyReply;
404 #define sz_xRRGetOutputPropertyReply    32
405
406 typedef struct {
407     CARD8       reqType;
408     CARD8       randrReqType;
409     CARD16      length B16;
410     Window      window B32;
411     xRRModeInfo modeInfo;
412 } xRRCreateModeReq; 
413 #define sz_xRRCreateModeReq             40
414
415 typedef struct {
416     BYTE        type;
417     CARD8       pad0;
418     CARD16      sequenceNumber B16;
419     CARD32      length B32;
420     RRMode      mode B32;
421     CARD32      pad1 B32;
422     CARD32      pad2 B32;
423     CARD32      pad3 B32;
424     CARD32      pad4 B32;
425     CARD32      pad5 B32;
426 } xRRCreateModeReply;
427 #define sz_xRRCreateModeReply           32
428
429 typedef struct {
430     CARD8       reqType;
431     CARD8       randrReqType;
432     CARD16      length B16;
433     RRMode      mode B32;
434 } xRRDestroyModeReq;
435 #define sz_xRRDestroyModeReq            8
436
437 typedef struct {
438     CARD8       reqType;
439     CARD8       randrReqType;
440     CARD16      length B16;
441     RROutput    output B32;
442     RRMode      mode B32;
443 } xRRAddOutputModeReq;
444 #define sz_xRRAddOutputModeReq          12
445
446 typedef struct {
447     CARD8       reqType;
448     CARD8       randrReqType;
449     CARD16      length B16;
450     RROutput    output B32;
451     RRMode      mode B32;
452 } xRRDeleteOutputModeReq;
453 #define sz_xRRDeleteOutputModeReq       12
454
455 typedef struct {
456     CARD8       reqType;
457     CARD8       randrReqType;
458     CARD16      length B16;
459     RRCrtc      crtc B32;
460     Time        configTimestamp B32;
461 } xRRGetCrtcInfoReq; 
462 #define sz_xRRGetCrtcInfoReq            12
463
464 typedef struct {
465     BYTE        type;
466     CARD8       status;
467     CARD16      sequenceNumber B16;
468     CARD32      length B32;
469     Time        timestamp B32;
470     INT16       x B16;
471     INT16       y B16;
472     CARD16      width B16;
473     CARD16      height B16;
474     RRMode      mode B32;
475     Rotation    rotation B16;
476     Rotation    rotations B16;
477     CARD16      nOutput B16;
478     CARD16      nPossibleOutput B16;
479 } xRRGetCrtcInfoReply;
480 #define sz_xRRGetCrtcInfoReply          32
481
482 typedef struct {
483     CARD8       reqType;
484     CARD8       randrReqType;
485     CARD16      length B16;
486     RRCrtc      crtc B32;
487     Time        timestamp B32;
488     Time        configTimestamp B32;
489     INT16       x B16;
490     INT16       y B16;
491     RRMode      mode B32;
492     Rotation    rotation B16;
493     CARD16      pad B16;
494 } xRRSetCrtcConfigReq; 
495 #define sz_xRRSetCrtcConfigReq          28
496
497 typedef struct {
498     BYTE        type;
499     CARD8       status;
500     CARD16      sequenceNumber B16;
501     CARD32      length B32;
502     Time        newTimestamp B32;
503     CARD32      pad1 B32;
504     CARD32      pad2 B16;
505     CARD32      pad3 B32;
506     CARD32      pad4 B32;
507     CARD32      pad5 B32;
508 } xRRSetCrtcConfigReply;
509 #define sz_xRRSetCrtcConfigReply        32
510
511 typedef struct {
512     CARD8       reqType;
513     CARD8       randrReqType;
514     CARD16      length B16;
515     RRCrtc      crtc B32;
516 } xRRGetCrtcGammaSizeReq; 
517 #define sz_xRRGetCrtcGammaSizeReq       8
518
519 typedef struct {
520     BYTE        type;
521     CARD8       status;
522     CARD16      sequenceNumber B16;
523     CARD32      length B32;
524     CARD16      size B16;
525     CARD16      pad1 B16;
526     CARD32      pad2 B32;
527     CARD32      pad3 B32;
528     CARD32      pad4 B32;
529     CARD32      pad5 B32;
530     CARD32      pad6 B32;
531 } xRRGetCrtcGammaSizeReply;
532 #define sz_xRRGetCrtcGammaSizeReply     32
533
534 typedef struct {
535     CARD8       reqType;
536     CARD8       randrReqType;
537     CARD16      length B16;
538     RRCrtc      crtc B32;
539 } xRRGetCrtcGammaReq; 
540 #define sz_xRRGetCrtcGammaReq           8
541
542 typedef struct {
543     BYTE        type;
544     CARD8       status;
545     CARD16      sequenceNumber B16;
546     CARD32      length B32;
547     CARD16      size B16;
548     CARD16      pad1 B16;
549     CARD32      pad2 B32;
550     CARD32      pad3 B32;
551     CARD32      pad4 B32;
552     CARD32      pad5 B32;
553     CARD32      pad6 B32;
554 } xRRGetCrtcGammaReply;
555 #define sz_xRRGetCrtcGammaReply         32
556
557 typedef struct {
558     CARD8       reqType;
559     CARD8       randrReqType;
560     CARD16      length B16;
561     RRCrtc      crtc B32;
562     CARD16      size B16;
563     CARD16      pad1 B16;
564 } xRRSetCrtcGammaReq;
565 #define sz_xRRSetCrtcGammaReq           12
566
567 /*
568  * Additions for V1.3
569  */
570
571 typedef xRRGetScreenResourcesReq xRRGetScreenResourcesCurrentReq;
572
573 #define sz_xRRGetScreenResourcesCurrentReq sz_xRRGetScreenResourcesReq
574
575 typedef xRRGetScreenResourcesReply xRRGetScreenResourcesCurrentReply;
576 #define sz_xRRGetScreenResourcesCurrentReply    sz_xRRGetScreenResourcesReply
577
578 typedef struct {
579     CARD8               reqType;
580     CARD8               randrReqType;
581     CARD16              length B16;
582     RRCrtc              crtc B32;
583     xRenderTransform    transform;
584     CARD16              nbytesFilter;   /* number of bytes in filter name */
585     CARD16              pad B16;
586 } xRRSetCrtcTransformReq;
587
588 #define sz_xRRSetCrtcTransformReq       48
589
590 typedef struct {
591     CARD8               reqType;
592     CARD8               randrReqType;
593     CARD16              length B16;
594     RRCrtc              crtc B32;
595 } xRRGetCrtcTransformReq;
596
597 #define sz_xRRGetCrtcTransformReq       8
598
599 typedef struct {
600     BYTE                type;
601     CARD8               status;
602     CARD16              sequenceNumber B16;
603     CARD32              length B32;
604     xRenderTransform    pendingTransform;
605     BYTE                hasTransforms;
606     CARD8               pad0;
607     CARD16              pad1 B16;
608     xRenderTransform    currentTransform;
609     CARD32              pad2 B32;
610     CARD16              pendingNbytesFilter B16;    /* number of bytes in filter name */
611     CARD16              pendingNparamsFilter B16;   /* number of filter params */
612     CARD16              currentNbytesFilter B16;    /* number of bytes in filter name */
613     CARD16              currentNparamsFilter B16;   /* number of filter params */
614 } xRRGetCrtcTransformReply;
615
616 #define sz_xRRGetCrtcTransformReply     96
617
618 typedef struct {
619     CARD8       reqType;
620     CARD8       randrReqType;
621     CARD16      length B16;
622     Window      window B32;
623     RROutput    output B32;
624 } xRRSetOutputPrimaryReq;
625 #define sz_xRRSetOutputPrimaryReq       12
626
627 typedef struct {
628     CARD8       reqType;
629     CARD8       randrReqType;
630     CARD16      length B16;
631     Window      window B32;
632 } xRRGetOutputPrimaryReq;
633 #define sz_xRRGetOutputPrimaryReq       8
634
635 typedef struct {
636     BYTE        type;
637     CARD8       pad;
638     CARD16      sequenceNumber B16;
639     CARD32      length B32;
640     RROutput    output B32;
641     CARD32      pad1 B32;
642     CARD32      pad2 B32;
643     CARD32      pad3 B32;
644     CARD32      pad4 B32;
645     CARD32      pad5 B32;
646 } xRRGetOutputPrimaryReply;
647 #define sz_xRRGetOutputPrimaryReply     32
648
649 /*
650  * Additions for V1.4
651  */
652
653 typedef struct {
654     CARD8       reqType;
655     CARD8       randrReqType;
656     CARD16      length B16;
657     Window      window B32;
658 } xRRGetProvidersReq;
659 #define sz_xRRGetProvidersReq 8
660
661 typedef struct {
662     BYTE        type;
663     CARD8       pad;
664     CARD16      sequenceNumber B16;
665     CARD32      length B32;
666     Time        timestamp B32;
667     CARD16      nProviders;
668     CARD16      pad1 B16;
669     CARD32      pad2 B32;
670     CARD32      pad3 B32;
671     CARD32      pad4 B32;
672     CARD32      pad5 B32;
673 } xRRGetProvidersReply;
674 #define sz_xRRGetProvidersReply 32
675
676 typedef struct {
677     CARD8       reqType;
678     CARD8       randrReqType;
679     CARD16      length B16;
680     RRProvider  provider B32;
681     Time        configTimestamp B32;
682 } xRRGetProviderInfoReq;
683 #define sz_xRRGetProviderInfoReq 12
684
685 typedef struct {
686     BYTE        type;
687     CARD8       status;
688     CARD16      sequenceNumber B16;
689     CARD32      length B32;
690     Time        timestamp B32;
691     CARD32      capabilities B32;
692     CARD16      nCrtcs B16;
693     CARD16      nOutputs B16;
694     CARD16      nAssociatedProviders B16;
695     CARD16      nameLength B16;
696     CARD32      pad1 B32;
697     CARD32      pad2 B32;
698 } xRRGetProviderInfoReply;
699 #define sz_xRRGetProviderInfoReply 32
700
701 typedef struct {
702     CARD8       reqType;
703     CARD8       randrReqType;
704     CARD16      length B16;
705     RRProvider  provider B32;
706     RRProvider  source_provider B32;
707     Time        configTimestamp B32;
708 } xRRSetProviderOutputSourceReq;
709 #define sz_xRRSetProviderOutputSourceReq 16
710
711 typedef struct {
712     CARD8       reqType;
713     CARD8       randrReqType;
714     CARD16      length B16;
715     RRProvider  provider B32;
716     RRProvider  sink_provider B32;
717     Time        configTimestamp B32;
718 } xRRSetProviderOffloadSinkReq;
719 #define sz_xRRSetProviderOffloadSinkReq 16
720
721 typedef struct {
722     CARD8       reqType;
723     CARD8       randrReqType;
724     CARD16      length B16;
725     RRProvider  provider B32;
726 } xRRListProviderPropertiesReq; 
727 #define sz_xRRListProviderPropertiesReq 8
728
729 typedef struct {
730     BYTE        type;
731     CARD8       pad0;
732     CARD16      sequenceNumber B16;
733     CARD32      length B32;
734     CARD16      nAtoms B16;
735     CARD16      pad1 B16;
736     CARD32      pad2 B32;
737     CARD32      pad3 B32;
738     CARD32      pad4 B32;
739     CARD32      pad5 B32;
740     CARD32      pad6 B32;
741 } xRRListProviderPropertiesReply;
742 #define sz_xRRListProviderPropertiesReply       32
743
744 typedef struct {
745     CARD8       reqType;
746     CARD8       randrReqType;
747     CARD16      length B16;
748     RRProvider  provider B32;
749     Atom        property B32;
750 } xRRQueryProviderPropertyReq; 
751 #define sz_xRRQueryProviderPropertyReq  12
752
753 typedef struct {
754     BYTE        type;
755     BYTE        pad0;
756     CARD16      sequenceNumber B16;
757     CARD32      length B32;
758     BOOL        pending;
759     BOOL        range;
760     BOOL        immutable;
761     BYTE        pad1;
762     CARD32      pad2 B32;
763     CARD32      pad3 B32;
764     CARD32      pad4 B32;
765     CARD32      pad5 B32;
766     CARD32      pad6 B32;
767 } xRRQueryProviderPropertyReply;
768 #define sz_xRRQueryProviderPropertyReply        32
769
770 typedef struct {
771     CARD8       reqType;
772     CARD8       randrReqType;
773     CARD16      length B16;
774     RRProvider  provider B32;
775     Atom        property B32;
776     BOOL        pending;
777     BOOL        range;
778     CARD16      pad B16;
779 } xRRConfigureProviderPropertyReq; 
780 #define sz_xRRConfigureProviderPropertyReq      16
781
782 typedef struct {
783     CARD8       reqType;
784     CARD8       randrReqType;
785     CARD16      length B16;
786     RRProvider  provider B32;
787     Atom        property B32;
788     Atom        type B32;
789     CARD8       format;
790     CARD8       mode;
791     CARD16      pad;
792     CARD32      nUnits B32;
793 } xRRChangeProviderPropertyReq;
794 #define sz_xRRChangeProviderPropertyReq 24
795
796 typedef struct {
797     CARD8       reqType;
798     CARD8       randrReqType;
799     CARD16      length B16;
800     RRProvider  provider B32;
801     Atom        property B32;
802 } xRRDeleteProviderPropertyReq;
803 #define sz_xRRDeleteProviderPropertyReq 12
804
805 typedef struct {
806     CARD8       reqType;
807     CARD8       randrReqType;
808     CARD16      length B16;
809     RRProvider  provider B32;
810     Atom        property B32;
811     Atom        type B32;
812     CARD32      longOffset B32;
813     CARD32      longLength B32;
814 #ifdef __cplusplus
815     BOOL        _delete;
816 #else
817     BOOL        delete;
818 #endif
819     BOOL        pending;
820     CARD16      pad1 B16;
821 } xRRGetProviderPropertyReq;
822 #define sz_xRRGetProviderPropertyReq    28
823
824 typedef struct {
825     BYTE        type;
826     CARD8       format;
827     CARD16      sequenceNumber B16;
828     CARD32      length B32;
829     Atom        propertyType B32;
830     CARD32      bytesAfter B32;
831     CARD32      nItems B32;
832     CARD32      pad1 B32;
833     CARD32      pad2 B32;
834     CARD32      pad3 B32;
835 } xRRGetProviderPropertyReply;
836 #define sz_xRRGetProviderPropertyReply  32
837
838 /*
839  * event
840  */
841 typedef struct {
842     CARD8 type;                         /* always evBase + ScreenChangeNotify */
843     CARD8 rotation;                     /* new rotation */
844     CARD16 sequenceNumber B16;
845     Time timestamp B32;                 /* time screen was changed */
846     Time configTimestamp B32;           /* time config data was changed */
847     Window root B32;                    /* root window */
848     Window window B32;                  /* window requesting notification */
849     SizeID sizeID B16;                  /* new size ID */
850     CARD16 subpixelOrder B16;           /* subpixel order */
851     CARD16 widthInPixels B16;           /* new size */
852     CARD16 heightInPixels B16;
853     CARD16 widthInMillimeters B16;
854     CARD16 heightInMillimeters B16;
855 } xRRScreenChangeNotifyEvent;
856 #define sz_xRRScreenChangeNotifyEvent   32
857
858 typedef struct {
859     CARD8 type;                         /* always evBase + RRNotify */
860     CARD8 subCode;                      /* RRNotify_CrtcChange */
861     CARD16 sequenceNumber B16;
862     Time timestamp B32;                 /* time crtc was changed */
863     Window window B32;                  /* window requesting notification */
864     RRCrtc crtc B32;                    /* affected CRTC */
865     RRMode mode B32;                    /* current mode */
866     CARD16 rotation B16;                /* rotation and reflection */
867     CARD16 pad1 B16;                    /* unused */
868     INT16 x B16;                        /* new location */
869     INT16 y B16;
870     CARD16 width B16;                   /* new size */
871     CARD16 height B16;
872 } xRRCrtcChangeNotifyEvent;
873 #define sz_xRRCrtcChangeNotifyEvent     32
874
875 typedef struct {
876     CARD8 type;                         /* always evBase + RRNotify */
877     CARD8 subCode;                      /* RRNotify_OutputChange */
878     CARD16 sequenceNumber B16;
879     Time timestamp B32;                 /* time output was changed */
880     Time configTimestamp B32;           /* time config was changed */
881     Window window B32;                  /* window requesting notification */
882     RROutput output B32;                /* affected output */
883     RRCrtc crtc B32;                    /* current crtc */
884     RRMode mode B32;                    /* current mode */
885     CARD16 rotation B16;                /* rotation and reflection */
886     CARD8 connection;                   /* connection status */
887     CARD8 subpixelOrder;                /* subpixel order */
888 } xRROutputChangeNotifyEvent;
889 #define sz_xRROutputChangeNotifyEvent   32
890
891 typedef struct {
892     CARD8 type;                         /* always evBase + RRNotify */
893     CARD8 subCode;                      /* RRNotify_OutputProperty */
894     CARD16 sequenceNumber B16;
895     Window window B32;                  /* window requesting notification */
896     RROutput output B32;                /* affected output */
897     Atom atom B32;                      /* property name */
898     Time timestamp B32;                 /* time crtc was changed */
899     CARD8 state;                        /* NewValue or Deleted */
900     CARD8 pad1;
901     CARD16 pad2 B16;
902     CARD32 pad3 B32;
903     CARD32 pad4 B32;
904 } xRROutputPropertyNotifyEvent;
905 #define sz_xRROutputPropertyNotifyEvent 32
906
907 typedef struct {
908     CARD8 type;                         /* always evBase + RRNotify */
909     CARD8 subCode;                      /* RRNotify_ProviderChange */
910     CARD16 sequenceNumber B16;
911     Time timestamp B32;                 /* time provider was changed */
912     Window window B32;                  /* window requesting notification */
913     RRProvider provider B32;            /* affected provider */
914     CARD32 pad1 B32;
915     CARD32 pad2 B32;
916     CARD32 pad3 B32;
917     CARD32 pad4 B32;
918 } xRRProviderChangeNotifyEvent;
919 #define sz_xRRProviderChangeNotifyEvent 32
920
921 typedef struct {
922     CARD8 type;                         /* always evBase + RRNotify */
923     CARD8 subCode;                      /* RRNotify_ProviderProperty */
924     CARD16 sequenceNumber B16;
925     Window window B32;                  /* window requesting notification */
926     RRProvider provider B32;            /* affected provider */
927     Atom atom B32;                      /* property name */
928     Time timestamp B32;                 /* time provider was changed */
929     CARD8 state;                        /* NewValue or Deleted */
930     CARD8 pad1;
931     CARD16 pad2 B16;
932     CARD32 pad3 B32;
933     CARD32 pad4 B32;
934 } xRRProviderPropertyNotifyEvent;
935 #define sz_xRRProviderPropertyNotifyEvent       32
936
937 typedef struct {
938     CARD8 type;                         /* always evBase + RRNotify */
939     CARD8 subCode;                      /* RRNotify_ResourceChange */
940     CARD16 sequenceNumber B16;
941     Time timestamp B32;                 /* time resource was changed */
942     Window window B32;                  /* window requesting notification */
943     CARD32 pad1 B32;
944     CARD32 pad2 B32;
945     CARD32 pad3 B32;
946     CARD32 pad4 B32;
947     CARD32 pad5 B32;
948 } xRRResourceChangeNotifyEvent;
949 #define sz_xRRResourceChangeNotifyEvent 32
950
951 typedef struct {
952     CARD8       reqType;
953     CARD8       randrReqType;
954     CARD16      length B16;
955     RRCrtc      crtc B32;
956 } xRRGetPanningReq; 
957 #define sz_xRRGetPanningReq             8
958
959 typedef struct {
960     BYTE        type;
961     CARD8       status;
962     CARD16      sequenceNumber B16;
963     CARD32      length B32;
964     Time        timestamp B32;
965     CARD16      left B16;
966     CARD16      top B16;
967     CARD16      width B16;
968     CARD16      height B16;
969     CARD16      track_left B16;
970     CARD16      track_top B16;
971     CARD16      track_width B16;
972     CARD16      track_height B16;
973     INT16       border_left B16;
974     INT16       border_top B16;
975     INT16       border_right B16;
976     INT16       border_bottom B16;
977 } xRRGetPanningReply;
978 #define sz_xRRGetPanningReply           36
979
980 typedef struct {
981     CARD8       reqType;
982     CARD8       randrReqType;
983     CARD16      length B16;
984     RRCrtc      crtc B32;
985     Time        timestamp B32;
986     CARD16      left B16;
987     CARD16      top B16;
988     CARD16      width B16;
989     CARD16      height B16;
990     CARD16      track_left B16;
991     CARD16      track_top B16;
992     CARD16      track_width B16;
993     CARD16      track_height B16;
994     INT16       border_left B16;
995     INT16       border_top B16;
996     INT16       border_right B16;
997     INT16       border_bottom B16;
998 } xRRSetPanningReq; 
999 #define sz_xRRSetPanningReq             36
1000
1001 typedef struct {
1002     BYTE        type;
1003     CARD8       status;
1004     CARD16      sequenceNumber B16;
1005     CARD32      length B32;
1006     Time        newTimestamp B32;
1007     CARD32      pad1 B32;
1008     CARD32      pad2 B32;
1009     CARD32      pad3 B32;
1010     CARD32      pad4 B32;
1011     CARD32      pad5 B32;
1012 } xRRSetPanningReply;
1013 #define sz_xRRSetPanningReply   32
1014
1015 #undef RRModeFlags
1016 #undef RRCrtc
1017 #undef RRMode
1018 #undef RROutput
1019 #undef RRMode
1020 #undef RRCrtc
1021 #undef RRProvider
1022 #undef Drawable
1023 #undef Window
1024 #undef Font
1025 #undef Pixmap
1026 #undef Cursor
1027 #undef Colormap
1028 #undef GContext
1029 #undef Atom
1030 #undef Time
1031 #undef KeyCode
1032 #undef KeySym
1033 #undef Rotation
1034 #undef SizeID
1035 #undef SubpixelOrder
1036
1037 #endif /* _XRANDRP_H_ */