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