panoramiXproto.h revision 17ca54c3
1/*****************************************************************
2Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and associated documentation files (the "Software"), to deal
5in the Software without restriction, including without limitation the rights
6to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7copies of the Software.
8
9The above copyright notice and this permission notice shall be included in
10all copies or substantial portions of the Software.
11
12THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
15DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
16BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
17WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
18IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
20Except as contained in this notice, the name of Digital Equipment Corporation
21shall not be used in advertising or otherwise to promote the sale, use or other
22dealings in this Software without prior written authorization from Digital
23Equipment Corporation.
24******************************************************************/
25
26/* THIS IS NOT AN X PROJECT TEAM SPECIFICATION */
27
28#ifndef _PANORAMIXPROTO_H_
29#define _PANORAMIXPROTO_H_
30
31#define PANORAMIX_MAJOR_VERSION         1       /* current version number */
32#define PANORAMIX_MINOR_VERSION         1
33
34#define PANORAMIX_PROTOCOL_NAME "XINERAMA"
35
36#define X_PanoramiXQueryVersion		0
37#define X_PanoramiXGetState		1
38#define X_PanoramiXGetScreenCount	2
39#define X_PanoramiXGetScreenSize	3
40
41#define X_XineramaIsActive		4
42#define X_XineramaQueryScreens		5
43
44typedef struct _PanoramiXQueryVersion {
45	CARD8	reqType;		/* always PanoramiXReqCode */
46	CARD8	panoramiXReqType;	/* always X_PanoramiXQueryVersion */
47	CARD16	length B16;
48	CARD8	clientMajor;
49	CARD8	clientMinor;
50	CARD16	unused B16;
51} xPanoramiXQueryVersionReq;
52
53#define sz_xPanoramiXQueryVersionReq	8
54
55typedef struct {
56	CARD8	type;			/* must be X_Reply */
57	CARD8	pad1;			/* unused	*/
58	CARD16	sequenceNumber  B16;	/* last sequence number */
59	CARD32	length  B32;		/* 0 */
60	CARD16	majorVersion  B16;
61	CARD16	minorVersion  B16;
62	CARD32	pad2	B32;		/* unused */
63	CARD32	pad3	B32;		/* unused */
64	CARD32	pad4	B32;		/* unused */
65	CARD32	pad5	B32;		/* unused */
66	CARD32	pad6	B32;		/* unused */
67} xPanoramiXQueryVersionReply;
68
69#define sz_xPanoramiXQueryVersionReply	32
70
71
72typedef	struct	_PanoramiXGetState {
73        CARD8   reqType;	        /* always PanoramiXReqCode */
74        CARD8   panoramiXReqType;    	/* always X_PanoramiXGetState */
75        CARD16  length B16;
76	CARD32  window B32;
77} xPanoramiXGetStateReq;
78#define sz_xPanoramiXGetStateReq	8
79
80typedef struct {
81	BYTE	type;
82	BYTE	state;
83	CARD16	sequenceNumber B16;
84	CARD32	length	B32;
85	CARD32  window  B32;
86	CARD32	pad1	B32;		/* unused */
87	CARD32	pad2	B32;		/* unused */
88	CARD32	pad3	B32;		/* unused */
89	CARD32	pad4	B32;		/* unused */
90	CARD32	pad5	B32;		/* unused */
91} xPanoramiXGetStateReply;
92
93#define sz_panoramiXGetStateReply	32
94
95typedef	struct	_PanoramiXGetScreenCount {
96        CARD8   reqType;             /* always PanoramiXReqCode */
97        CARD8   panoramiXReqType;    /* always X_PanoramiXGetScreenCount */
98        CARD16  length B16;
99	CARD32  window B32;
100} xPanoramiXGetScreenCountReq;
101#define sz_xPanoramiXGetScreenCountReq	8
102
103typedef struct {
104	BYTE	type;
105	BYTE	ScreenCount;
106	CARD16	sequenceNumber B16;
107	CARD32	length B32;
108	CARD32  window  B32;
109	CARD32	pad1	B32;		/* unused */
110	CARD32	pad2	B32;		/* unused */
111	CARD32	pad3	B32;		/* unused */
112	CARD32	pad4	B32;		/* unused */
113	CARD32	pad5	B32;		/* unused */
114} xPanoramiXGetScreenCountReply;
115#define sz_panoramiXGetScreenCountReply	32
116
117typedef	struct	_PanoramiXGetScreenSize {
118        CARD8   reqType;                /* always PanoramiXReqCode */
119        CARD8   panoramiXReqType;	/* always X_PanoramiXGetState */
120        CARD16  length B16;
121	CARD32  window B32;
122	CARD32	screen B32;
123} xPanoramiXGetScreenSizeReq;
124#define sz_xPanoramiXGetScreenSizeReq	12
125
126typedef struct {
127	BYTE	type;
128	CARD8	pad1;
129	CARD16	sequenceNumber B16;
130	CARD32	length	B32;
131	CARD32	width	B32;
132	CARD32	height	B32;
133	CARD32  window  B32;
134	CARD32  screen  B32;
135	CARD32	pad2	B32;		/* unused */
136	CARD32	pad3	B32;		/* unused */
137} xPanoramiXGetScreenSizeReply;
138#define sz_panoramiXGetScreenSizeReply 32
139
140/************  Alternate protocol  ******************/
141
142typedef struct {
143        CARD8   reqType;
144        CARD8   panoramiXReqType;
145        CARD16  length B16;
146} xXineramaIsActiveReq;
147#define sz_xXineramaIsActiveReq 4
148
149typedef struct {
150	BYTE	type;
151	CARD8	pad1;
152	CARD16	sequenceNumber B16;
153	CARD32	length	B32;
154	CARD32	state	B32;
155	CARD32	pad2	B32;
156	CARD32  pad3  	B32;
157	CARD32  pad4  	B32;
158	CARD32	pad5	B32;
159	CARD32	pad6	B32;
160} xXineramaIsActiveReply;
161#define sz_XineramaIsActiveReply 32
162
163
164typedef struct {
165        CARD8   reqType;
166        CARD8   panoramiXReqType;
167        CARD16  length B16;
168} xXineramaQueryScreensReq;
169#define sz_xXineramaQueryScreensReq 4
170
171typedef struct {
172	BYTE	type;
173	CARD8	pad1;
174	CARD16	sequenceNumber B16;
175	CARD32	length	B32;
176	CARD32	number	B32;
177	CARD32	pad2	B32;
178	CARD32  pad3  	B32;
179	CARD32  pad4  	B32;
180	CARD32	pad5	B32;
181	CARD32	pad6	B32;
182} xXineramaQueryScreensReply;
183#define sz_XineramaQueryScreensReply 32
184
185typedef struct {
186	INT16   x_org   B16;
187	INT16   y_org   B16;
188	CARD16  width   B16;
189	CARD16  height  B16;
190} xXineramaScreenInfo;
191#define sz_XineramaScreenInfo 8
192
193#endif
194