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