Home | History | Annotate | Line # | Download | only in extensions
      1 /*****************************************************************
      2 Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
      3 Permission is hereby granted, free of charge, to any person obtaining a copy
      4 of this software and associated documentation files (the "Software"), to deal
      5 in the Software without restriction, including without limitation the rights
      6 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      7 copies of the Software.
      8 
      9 The above copyright notice and this permission notice shall be included in
     10 all copies or substantial portions of the Software.
     11 
     12 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     13 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     14 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     15 DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
     16 BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
     17 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
     18 IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     19 
     20 Except as contained in this notice, the name of Digital Equipment Corporation
     21 shall not be used in advertising or otherwise to promote the sale, use or other
     22 dealings in this Software without prior written authorization from Digital
     23 Equipment 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 
     44 typedef 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 
     55 typedef 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 
     72 typedef	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 
     80 typedef 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 
     95 typedef	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 
    103 typedef 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 
    117 typedef	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 
    126 typedef 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 
    142 typedef struct {
    143         CARD8   reqType;
    144         CARD8   panoramiXReqType;
    145         CARD16  length;
    146 } xXineramaIsActiveReq;
    147 #define sz_xXineramaIsActiveReq 4
    148 
    149 typedef 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 
    164 typedef struct {
    165         CARD8   reqType;
    166         CARD8   panoramiXReqType;
    167         CARD16  length;
    168 } xXineramaQueryScreensReq;
    169 #define sz_xXineramaQueryScreensReq 4
    170 
    171 typedef 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 
    185 typedef 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