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