panoramiXproto.h revision ea1d6981
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;
48	CARD8	clientMajor;
49	CARD8	clientMinor;
50	CARD16	unused;
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;		/* last sequence number */
59	CARD32	length;			/* 0 */
60	CARD16	majorVersion;
61	CARD16	minorVersion;
62	CARD32	pad2;			/* unused */
63	CARD32	pad3;			/* unused */
64	CARD32	pad4;			/* unused */
65	CARD32	pad5;			/* unused */
66	CARD32	pad6;			/* 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;
76        CARD32  window;
77} xPanoramiXGetStateReq;
78#define sz_xPanoramiXGetStateReq	8
79
80typedef struct {
81	BYTE	type;
82	BYTE	state;
83	CARD16	sequenceNumber;
84	CARD32	length;
85	CARD32  window;
86	CARD32	pad1;			/* unused */
87	CARD32	pad2;			/* unused */
88	CARD32	pad3;			/* unused */
89	CARD32	pad4;			/* unused */
90	CARD32	pad5;			/* 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;
99        CARD32  window;
100} xPanoramiXGetScreenCountReq;
101#define sz_xPanoramiXGetScreenCountReq	8
102
103typedef struct {
104	BYTE	type;
105	BYTE	ScreenCount;
106	CARD16	sequenceNumber;
107	CARD32	length;
108	CARD32  window;
109	CARD32	pad1;			/* unused */
110	CARD32	pad2;			/* unused */
111	CARD32	pad3;			/* unused */
112	CARD32	pad4;			/* unused */
113	CARD32	pad5;			/* 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;
121        CARD32  window;
122        CARD32  screen;
123} xPanoramiXGetScreenSizeReq;
124#define sz_xPanoramiXGetScreenSizeReq	12
125
126typedef struct {
127	BYTE	type;
128	CARD8	pad1;
129	CARD16	sequenceNumber;
130	CARD32	length;
131	CARD32	width;
132	CARD32	height;
133	CARD32  window;
134	CARD32  screen;
135	CARD32	pad2;			/* unused */
136	CARD32	pad3;			/* unused */
137} xPanoramiXGetScreenSizeReply;
138#define sz_panoramiXGetScreenSizeReply 32
139
140/************  Alternate protocol  ******************/
141
142typedef struct {
143        CARD8   reqType;
144        CARD8   panoramiXReqType;
145        CARD16  length;
146} xXineramaIsActiveReq;
147#define sz_xXineramaIsActiveReq 4
148
149typedef struct {
150	BYTE	type;
151	CARD8	pad1;
152	CARD16	sequenceNumber;
153	CARD32	length;
154	CARD32	state;
155	CARD32	pad2;
156	CARD32  pad3;
157	CARD32  pad4;
158	CARD32	pad5;
159	CARD32	pad6;
160} xXineramaIsActiveReply;
161#define sz_XineramaIsActiveReply 32
162
163
164typedef struct {
165        CARD8   reqType;
166        CARD8   panoramiXReqType;
167        CARD16  length;
168} xXineramaQueryScreensReq;
169#define sz_xXineramaQueryScreensReq 4
170
171typedef struct {
172	BYTE	type;
173	CARD8	pad1;
174	CARD16	sequenceNumber;
175	CARD32	length;
176	CARD32	number;
177	CARD32	pad2;
178	CARD32  pad3;
179	CARD32  pad4;
180	CARD32	pad5;
181	CARD32	pad6;
182} xXineramaQueryScreensReply;
183#define sz_XineramaQueryScreensReply 32
184
185typedef struct {
186	INT16   x_org;
187	INT16   y_org;
188	CARD16  width;
189	CARD16  height;
190} xXineramaScreenInfo;
191#define sz_XineramaScreenInfo 8
192
193#endif
194