xref: /trunk/main/x11_extensions/inc/randrproto.h (revision 5d328669834268fa077da8fd0d9b44cc5ce2793b)
1*cdf0e10cSrcweir /*
2*cdf0e10cSrcweir  * $XFree86: xc/include/extensions/randrproto.h,v 1.6 2002/09/29 23:39:43 keithp Exp $
3*cdf0e10cSrcweir  *
4*cdf0e10cSrcweir  * Copyright © 2000 Compaq Computer Corporation
5*cdf0e10cSrcweir  * Copyright © 2002 Hewlett-Packard Company
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * Permission to use, copy, modify, distribute, and sell this software and its
8*cdf0e10cSrcweir  * documentation for any purpose is hereby granted without fee, provided that
9*cdf0e10cSrcweir  * the above copyright notice appear in all copies and that both that
10*cdf0e10cSrcweir  * copyright notice and this permission notice appear in supporting
11*cdf0e10cSrcweir  * documentation, and that the name of Compaq or HP not be used in advertising
12*cdf0e10cSrcweir  * or publicity pertaining to distribution of the software without specific,
13*cdf0e10cSrcweir  * written prior permission.  Compaq and HP makes no representations about the
14*cdf0e10cSrcweir  * suitability of this software for any purpose.  It is provided "as is"
15*cdf0e10cSrcweir  * without express or implied warranty.
16*cdf0e10cSrcweir  *
17*cdf0e10cSrcweir  * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
18*cdf0e10cSrcweir  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
19*cdf0e10cSrcweir  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20*cdf0e10cSrcweir  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
21*cdf0e10cSrcweir  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
22*cdf0e10cSrcweir  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23*cdf0e10cSrcweir  *
24*cdf0e10cSrcweir  * Author:  Jim Gettys, Hewlett-Packard Company, Inc.
25*cdf0e10cSrcweir  */
26*cdf0e10cSrcweir 
27*cdf0e10cSrcweir /* note that RANDR 1.0 is incompatible with version 0.0, or 0.1 */
28*cdf0e10cSrcweir /* V1.0 removes depth switching from the protocol */
29*cdf0e10cSrcweir #ifndef _XRANDRP_H_
30*cdf0e10cSrcweir #define _XRANDRP_H_
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir #include <X11/extensions/randr.h>
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir #define Window CARD32
35*cdf0e10cSrcweir #define Drawable CARD32
36*cdf0e10cSrcweir #define Font CARD32
37*cdf0e10cSrcweir #define Pixmap CARD32
38*cdf0e10cSrcweir #define Cursor CARD32
39*cdf0e10cSrcweir #define Colormap CARD32
40*cdf0e10cSrcweir #define GContext CARD32
41*cdf0e10cSrcweir #define Atom CARD32
42*cdf0e10cSrcweir #define Time CARD32
43*cdf0e10cSrcweir #define KeyCode CARD8
44*cdf0e10cSrcweir #define KeySym CARD32
45*cdf0e10cSrcweir 
46*cdf0e10cSrcweir #define Rotation CARD16
47*cdf0e10cSrcweir #define SizeID CARD16
48*cdf0e10cSrcweir #define SubpixelOrder CARD16
49*cdf0e10cSrcweir 
50*cdf0e10cSrcweir /*
51*cdf0e10cSrcweir  * data structures
52*cdf0e10cSrcweir  */
53*cdf0e10cSrcweir 
54*cdf0e10cSrcweir typedef struct {
55*cdf0e10cSrcweir     CARD16 widthInPixels B16;
56*cdf0e10cSrcweir     CARD16 heightInPixels B16;
57*cdf0e10cSrcweir     CARD16 widthInMillimeters B16;
58*cdf0e10cSrcweir     CARD16 heightInMillimeters B16;
59*cdf0e10cSrcweir } xScreenSizes;
60*cdf0e10cSrcweir #define sz_xScreenSizes 8
61*cdf0e10cSrcweir 
62*cdf0e10cSrcweir /*
63*cdf0e10cSrcweir  * requests and replies
64*cdf0e10cSrcweir  */
65*cdf0e10cSrcweir 
66*cdf0e10cSrcweir typedef struct {
67*cdf0e10cSrcweir     CARD8   reqType;
68*cdf0e10cSrcweir     CARD8   randrReqType;
69*cdf0e10cSrcweir     CARD16  length B16;
70*cdf0e10cSrcweir     CARD32  majorVersion B32;
71*cdf0e10cSrcweir     CARD32  minorVersion B32;
72*cdf0e10cSrcweir } xRRQueryVersionReq;
73*cdf0e10cSrcweir #define sz_xRRQueryVersionReq   12
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir typedef struct {
76*cdf0e10cSrcweir     BYTE    type;   /* X_Reply */
77*cdf0e10cSrcweir     BYTE    pad1;
78*cdf0e10cSrcweir     CARD16  sequenceNumber B16;
79*cdf0e10cSrcweir     CARD32  length B32;
80*cdf0e10cSrcweir     CARD32  majorVersion B32;
81*cdf0e10cSrcweir     CARD32  minorVersion B32;
82*cdf0e10cSrcweir     CARD32  pad2 B32;
83*cdf0e10cSrcweir     CARD32  pad3 B32;
84*cdf0e10cSrcweir     CARD32  pad4 B32;
85*cdf0e10cSrcweir     CARD32  pad5 B32;
86*cdf0e10cSrcweir } xRRQueryVersionReply;
87*cdf0e10cSrcweir #define sz_xRRQueryVersionReply 32
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir typedef struct {
90*cdf0e10cSrcweir     CARD8   reqType;
91*cdf0e10cSrcweir     CARD8   randrReqType;
92*cdf0e10cSrcweir     CARD16  length B16;
93*cdf0e10cSrcweir     Window  window B32;
94*cdf0e10cSrcweir } xRRGetScreenInfoReq;
95*cdf0e10cSrcweir #define sz_xRRGetScreenInfoReq   8
96*cdf0e10cSrcweir 
97*cdf0e10cSrcweir /*
98*cdf0e10cSrcweir  * the xRRScreenInfoReply structure is followed by:
99*cdf0e10cSrcweir  *
100*cdf0e10cSrcweir  * the size information
101*cdf0e10cSrcweir  */
102*cdf0e10cSrcweir 
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir typedef struct {
105*cdf0e10cSrcweir     BYTE    type;   /* X_Reply */
106*cdf0e10cSrcweir     BYTE    setOfRotations;
107*cdf0e10cSrcweir     CARD16  sequenceNumber B16;
108*cdf0e10cSrcweir     CARD32  length B32;
109*cdf0e10cSrcweir     Window  root B32;
110*cdf0e10cSrcweir     Time    timestamp B32;
111*cdf0e10cSrcweir     Time    configTimestamp B32;
112*cdf0e10cSrcweir     CARD16  nSizes B16;
113*cdf0e10cSrcweir     SizeID  sizeID B16;
114*cdf0e10cSrcweir     Rotation  rotation B16;
115*cdf0e10cSrcweir     CARD16  rate B16;
116*cdf0e10cSrcweir     CARD16  nrateEnts B16;
117*cdf0e10cSrcweir     CARD16  pad B16;
118*cdf0e10cSrcweir } xRRGetScreenInfoReply;
119*cdf0e10cSrcweir #define sz_xRRGetScreenInfoReply    32
120*cdf0e10cSrcweir 
121*cdf0e10cSrcweir typedef struct {
122*cdf0e10cSrcweir     CARD8    reqType;
123*cdf0e10cSrcweir     CARD8    randrReqType;
124*cdf0e10cSrcweir     CARD16   length B16;
125*cdf0e10cSrcweir     Drawable drawable B32;
126*cdf0e10cSrcweir     Time     timestamp B32;
127*cdf0e10cSrcweir     Time     configTimestamp B32;
128*cdf0e10cSrcweir     SizeID   sizeID B16;
129*cdf0e10cSrcweir     Rotation rotation B16;
130*cdf0e10cSrcweir } xRR1_0SetScreenConfigReq;
131*cdf0e10cSrcweir #define sz_xRR1_0SetScreenConfigReq   20
132*cdf0e10cSrcweir 
133*cdf0e10cSrcweir typedef struct {
134*cdf0e10cSrcweir     CARD8    reqType;
135*cdf0e10cSrcweir     CARD8    randrReqType;
136*cdf0e10cSrcweir     CARD16   length B16;
137*cdf0e10cSrcweir     Drawable drawable B32;
138*cdf0e10cSrcweir     Time     timestamp B32;
139*cdf0e10cSrcweir     Time     configTimestamp B32;
140*cdf0e10cSrcweir     SizeID   sizeID B16;
141*cdf0e10cSrcweir     Rotation rotation B16;
142*cdf0e10cSrcweir     CARD16   rate B16;
143*cdf0e10cSrcweir     CARD16   pad B16;
144*cdf0e10cSrcweir } xRRSetScreenConfigReq;
145*cdf0e10cSrcweir #define sz_xRRSetScreenConfigReq   24
146*cdf0e10cSrcweir 
147*cdf0e10cSrcweir typedef struct {
148*cdf0e10cSrcweir     BYTE    type;   /* X_Reply */
149*cdf0e10cSrcweir     CARD8   status;
150*cdf0e10cSrcweir     CARD16  sequenceNumber B16;
151*cdf0e10cSrcweir     CARD32  length B32;
152*cdf0e10cSrcweir     Time    newTimestamp B32;
153*cdf0e10cSrcweir     Time    newConfigTimestamp B32;
154*cdf0e10cSrcweir     Window  root;
155*cdf0e10cSrcweir     CARD16  subpixelOrder B16;
156*cdf0e10cSrcweir     CARD16  pad4 B16;
157*cdf0e10cSrcweir     CARD32  pad5 B32;
158*cdf0e10cSrcweir     CARD32  pad6 B32;
159*cdf0e10cSrcweir } xRRSetScreenConfigReply;
160*cdf0e10cSrcweir #define sz_xRRSetScreenConfigReply 32
161*cdf0e10cSrcweir 
162*cdf0e10cSrcweir typedef struct {
163*cdf0e10cSrcweir     CARD8   reqType;
164*cdf0e10cSrcweir     CARD8   randrReqType;
165*cdf0e10cSrcweir     CARD16  length B16;
166*cdf0e10cSrcweir     Window  window B32;
167*cdf0e10cSrcweir     CARD16  enable B16;
168*cdf0e10cSrcweir     CARD16  pad2 B16;
169*cdf0e10cSrcweir } xRRSelectInputReq;
170*cdf0e10cSrcweir #define sz_xRRSelectInputReq   12
171*cdf0e10cSrcweir 
172*cdf0e10cSrcweir #define sz_xRRSelectInputReq   12
173*cdf0e10cSrcweir 
174*cdf0e10cSrcweir /*
175*cdf0e10cSrcweir  * event
176*cdf0e10cSrcweir  */
177*cdf0e10cSrcweir typedef struct {
178*cdf0e10cSrcweir     CARD8 type;             /* always evBase + ScreenChangeNotify */
179*cdf0e10cSrcweir     CARD8 rotation;         /* new rotation */
180*cdf0e10cSrcweir     CARD16 sequenceNumber B16;
181*cdf0e10cSrcweir     Time timestamp B32;         /* time screen was changed */
182*cdf0e10cSrcweir     Time configTimestamp B32;       /* time config data was changed */
183*cdf0e10cSrcweir     Window root B32;            /* root window */
184*cdf0e10cSrcweir     Window window B32;          /* window requesting notification */
185*cdf0e10cSrcweir     SizeID sizeID B16;          /* new size ID */
186*cdf0e10cSrcweir     CARD16 subpixelOrder B16;       /* subpixel order */
187*cdf0e10cSrcweir     CARD16 widthInPixels B16;       /* new size */
188*cdf0e10cSrcweir     CARD16 heightInPixels B16;
189*cdf0e10cSrcweir     CARD16 widthInMillimeters B16;
190*cdf0e10cSrcweir     CARD16 heightInMillimeters B16;
191*cdf0e10cSrcweir } xRRScreenChangeNotifyEvent;
192*cdf0e10cSrcweir #define sz_xRRScreenChangeNotifyEvent   32
193*cdf0e10cSrcweir 
194*cdf0e10cSrcweir #undef Window
195*cdf0e10cSrcweir #undef Drawable
196*cdf0e10cSrcweir #undef Font
197*cdf0e10cSrcweir #undef Pixmap
198*cdf0e10cSrcweir #undef Cursor
199*cdf0e10cSrcweir #undef Colormap
200*cdf0e10cSrcweir #undef GContext
201*cdf0e10cSrcweir #undef Atom
202*cdf0e10cSrcweir #undef Time
203*cdf0e10cSrcweir #undef KeyCode
204*cdf0e10cSrcweir #undef KeySym
205*cdf0e10cSrcweir #undef Rotation
206*cdf0e10cSrcweir #undef SizeID
207*cdf0e10cSrcweir #undef SubpixelOrder
208*cdf0e10cSrcweir 
209*cdf0e10cSrcweir #endif /* _XRANDRP_H_ */
210