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