| 1 | /* | 
|---|
| 2 | * Copyright © 2000 Compaq Computer Corporation | 
|---|
| 3 | * Copyright © 2002 Hewlett Packard Company | 
|---|
| 4 | * Copyright © 2006 Intel Corporation | 
|---|
| 5 | * Copyright © 2008 Red Hat, Inc. | 
|---|
| 6 | * | 
|---|
| 7 | * Permission to use, copy, modify, distribute, and sell this software and its | 
|---|
| 8 | * documentation for any purpose is hereby granted without fee, provided that | 
|---|
| 9 | * the above copyright notice appear in all copies and that both that copyright | 
|---|
| 10 | * notice and this permission notice appear in supporting documentation, and | 
|---|
| 11 | * that the name of the copyright holders not be used in advertising or | 
|---|
| 12 | * publicity pertaining to distribution of the software without specific, | 
|---|
| 13 | * written prior permission.  The copyright holders make no representations | 
|---|
| 14 | * about the suitability of this software for any purpose.  It is provided "as | 
|---|
| 15 | * is" without express or implied warranty. | 
|---|
| 16 | * | 
|---|
| 17 | * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | 
|---|
| 18 | * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO | 
|---|
| 19 | * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR | 
|---|
| 20 | * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | 
|---|
| 21 | * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | 
|---|
| 22 | * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | 
|---|
| 23 | * OF THIS SOFTWARE. | 
|---|
| 24 | * | 
|---|
| 25 | * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc. | 
|---|
| 26 | *	    Keith Packard, Intel Corporation | 
|---|
| 27 | */ | 
|---|
| 28 |  | 
|---|
| 29 | #ifndef _RANDR_H_ | 
|---|
| 30 | #define _RANDR_H_ | 
|---|
| 31 |  | 
|---|
| 32 | typedef unsigned short	Rotation; | 
|---|
| 33 | typedef unsigned short	SizeID; | 
|---|
| 34 | typedef unsigned short	SubpixelOrder; | 
|---|
| 35 | typedef unsigned short	Connection; | 
|---|
| 36 | typedef unsigned short	XRandrRotation; | 
|---|
| 37 | typedef unsigned short	XRandrSizeID; | 
|---|
| 38 | typedef unsigned short	XRandrSubpixelOrder; | 
|---|
| 39 | typedef unsigned long	XRandrModeFlags; | 
|---|
| 40 |  | 
|---|
| 41 | #define RANDR_NAME		"RANDR" | 
|---|
| 42 | #define RANDR_MAJOR		1 | 
|---|
| 43 | #define RANDR_MINOR		6 | 
|---|
| 44 |  | 
|---|
| 45 | #define RRNumberErrors		5 | 
|---|
| 46 | #define RRNumberEvents		2 | 
|---|
| 47 | #define RRNumberRequests	47 | 
|---|
| 48 |  | 
|---|
| 49 | #define X_RRQueryVersion	0 | 
|---|
| 50 | /* we skip 1 to make old clients fail pretty immediately */ | 
|---|
| 51 | #define X_RROldGetScreenInfo	1 | 
|---|
| 52 | #define X_RR1_0SetScreenConfig	2 | 
|---|
| 53 | /* V1.0 apps share the same set screen config request id */ | 
|---|
| 54 | #define X_RRSetScreenConfig	2 | 
|---|
| 55 | #define X_RROldScreenChangeSelectInput	3 | 
|---|
| 56 | /* 3 used to be ScreenChangeSelectInput; deprecated */ | 
|---|
| 57 | #define X_RRSelectInput		4 | 
|---|
| 58 | #define X_RRGetScreenInfo	5 | 
|---|
| 59 |  | 
|---|
| 60 | /* V1.2 additions */ | 
|---|
| 61 | #define X_RRGetScreenSizeRange	    6 | 
|---|
| 62 | #define X_RRSetScreenSize	    7 | 
|---|
| 63 | #define X_RRGetScreenResources	    8 | 
|---|
| 64 | #define X_RRGetOutputInfo	    9 | 
|---|
| 65 | #define X_RRListOutputProperties    10 | 
|---|
| 66 | #define X_RRQueryOutputProperty	    11 | 
|---|
| 67 | #define X_RRConfigureOutputProperty 12 | 
|---|
| 68 | #define X_RRChangeOutputProperty    13 | 
|---|
| 69 | #define X_RRDeleteOutputProperty    14 | 
|---|
| 70 | #define X_RRGetOutputProperty	    15 | 
|---|
| 71 | #define X_RRCreateMode		    16 | 
|---|
| 72 | #define X_RRDestroyMode		    17 | 
|---|
| 73 | #define X_RRAddOutputMode	    18 | 
|---|
| 74 | #define X_RRDeleteOutputMode	    19 | 
|---|
| 75 | #define X_RRGetCrtcInfo		    20 | 
|---|
| 76 | #define X_RRSetCrtcConfig	    21 | 
|---|
| 77 | #define X_RRGetCrtcGammaSize	    22 | 
|---|
| 78 | #define X_RRGetCrtcGamma	    23 | 
|---|
| 79 | #define X_RRSetCrtcGamma	    24 | 
|---|
| 80 |  | 
|---|
| 81 | /* V1.3 additions */ | 
|---|
| 82 | #define X_RRGetScreenResourcesCurrent	25 | 
|---|
| 83 | #define X_RRSetCrtcTransform	    26 | 
|---|
| 84 | #define X_RRGetCrtcTransform	    27 | 
|---|
| 85 | #define X_RRGetPanning		    28 | 
|---|
| 86 | #define X_RRSetPanning		    29 | 
|---|
| 87 | #define X_RRSetOutputPrimary	    30 | 
|---|
| 88 | #define X_RRGetOutputPrimary	    31 | 
|---|
| 89 |  | 
|---|
| 90 | #define RRTransformUnit		    (1L << 0) | 
|---|
| 91 | #define RRTransformScaleUp	    (1L << 1) | 
|---|
| 92 | #define RRTransformScaleDown	    (1L << 2) | 
|---|
| 93 | #define RRTransformProjective	    (1L << 3) | 
|---|
| 94 |  | 
|---|
| 95 | /* v1.4 */ | 
|---|
| 96 | #define X_RRGetProviders	      32 | 
|---|
| 97 | #define X_RRGetProviderInfo	      33 | 
|---|
| 98 | #define X_RRSetProviderOffloadSink    34 | 
|---|
| 99 | #define X_RRSetProviderOutputSource   35 | 
|---|
| 100 | #define X_RRListProviderProperties    36 | 
|---|
| 101 | #define X_RRQueryProviderProperty     37 | 
|---|
| 102 | #define X_RRConfigureProviderProperty 38 | 
|---|
| 103 | #define X_RRChangeProviderProperty    39 | 
|---|
| 104 | #define X_RRDeleteProviderProperty    40 | 
|---|
| 105 | #define X_RRGetProviderProperty	      41 | 
|---|
| 106 |  | 
|---|
| 107 | /* v1.5 */ | 
|---|
| 108 | #define X_RRGetMonitors		      42 | 
|---|
| 109 | #define X_RRSetMonitor		      43 | 
|---|
| 110 | #define X_RRDeleteMonitor	      44 | 
|---|
| 111 |  | 
|---|
| 112 | /* v1.6 */ | 
|---|
| 113 | #define X_RRCreateLease		      45 | 
|---|
| 114 | #define X_RRFreeLease		      46 | 
|---|
| 115 |  | 
|---|
| 116 | /* Event selection bits */ | 
|---|
| 117 | #define RRScreenChangeNotifyMask  (1L << 0) | 
|---|
| 118 | /* V1.2 additions */ | 
|---|
| 119 | #define RRCrtcChangeNotifyMask	    (1L << 1) | 
|---|
| 120 | #define RROutputChangeNotifyMask    (1L << 2) | 
|---|
| 121 | #define RROutputPropertyNotifyMask  (1L << 3) | 
|---|
| 122 | /* V1.4 additions */ | 
|---|
| 123 | #define RRProviderChangeNotifyMask   (1L << 4) | 
|---|
| 124 | #define RRProviderPropertyNotifyMask (1L << 5) | 
|---|
| 125 | #define RRResourceChangeNotifyMask   (1L << 6) | 
|---|
| 126 | /* V1.6 additions */ | 
|---|
| 127 | #define RRLeaseNotifyMask            (1L << 7) | 
|---|
| 128 |  | 
|---|
| 129 | /* Event codes */ | 
|---|
| 130 | #define RRScreenChangeNotify	0 | 
|---|
| 131 | /* V1.2 additions */ | 
|---|
| 132 | #define RRNotify		    1 | 
|---|
| 133 | /* RRNotify Subcodes */ | 
|---|
| 134 | #define  RRNotify_CrtcChange	    0 | 
|---|
| 135 | #define  RRNotify_OutputChange	    1 | 
|---|
| 136 | #define  RRNotify_OutputProperty    2 | 
|---|
| 137 | #define  RRNotify_ProviderChange    3 | 
|---|
| 138 | #define  RRNotify_ProviderProperty  4 | 
|---|
| 139 | #define  RRNotify_ResourceChange    5 | 
|---|
| 140 | /* V1.6 additions */ | 
|---|
| 141 | #define  RRNotify_Lease             6 | 
|---|
| 142 | /* used in the rotation field; rotation and reflection in 0.1 proto. */ | 
|---|
| 143 | #define RR_Rotate_0		1 | 
|---|
| 144 | #define RR_Rotate_90		2 | 
|---|
| 145 | #define RR_Rotate_180		4 | 
|---|
| 146 | #define RR_Rotate_270		8 | 
|---|
| 147 |  | 
|---|
| 148 | /* new in 1.0 protocol, to allow reflection of screen */ | 
|---|
| 149 |  | 
|---|
| 150 | #define RR_Reflect_X		16 | 
|---|
| 151 | #define RR_Reflect_Y		32 | 
|---|
| 152 |  | 
|---|
| 153 | #define RRSetConfigSuccess		0 | 
|---|
| 154 | #define RRSetConfigInvalidConfigTime	1 | 
|---|
| 155 | #define RRSetConfigInvalidTime		2 | 
|---|
| 156 | #define RRSetConfigFailed		3 | 
|---|
| 157 |  | 
|---|
| 158 | /* new in 1.2 protocol */ | 
|---|
| 159 |  | 
|---|
| 160 | #define RR_HSyncPositive	0x00000001 | 
|---|
| 161 | #define RR_HSyncNegative	0x00000002 | 
|---|
| 162 | #define RR_VSyncPositive	0x00000004 | 
|---|
| 163 | #define RR_VSyncNegative	0x00000008 | 
|---|
| 164 | #define RR_Interlace		0x00000010 | 
|---|
| 165 | #define RR_DoubleScan		0x00000020 | 
|---|
| 166 | #define RR_CSync		0x00000040 | 
|---|
| 167 | #define RR_CSyncPositive	0x00000080 | 
|---|
| 168 | #define RR_CSyncNegative	0x00000100 | 
|---|
| 169 | #define RR_HSkewPresent		0x00000200 | 
|---|
| 170 | #define RR_BCast		0x00000400 | 
|---|
| 171 | #define RR_PixelMultiplex	0x00000800 | 
|---|
| 172 | #define RR_DoubleClock		0x00001000 | 
|---|
| 173 | #define RR_ClockDivideBy2	0x00002000 | 
|---|
| 174 |  | 
|---|
| 175 | #define RR_Connected		0 | 
|---|
| 176 | #define RR_Disconnected		1 | 
|---|
| 177 | #define RR_UnknownConnection	2 | 
|---|
| 178 |  | 
|---|
| 179 | #define BadRROutput		0 | 
|---|
| 180 | #define BadRRCrtc		1 | 
|---|
| 181 | #define BadRRMode		2 | 
|---|
| 182 | #define BadRRProvider		3 | 
|---|
| 183 | #define BadRRLease		4 | 
|---|
| 184 |  | 
|---|
| 185 | /* Conventional RandR output properties */ | 
|---|
| 186 |  | 
|---|
| 187 | #define RR_PROPERTY_BACKLIGHT		"Backlight" | 
|---|
| 188 | #define RR_PROPERTY_RANDR_EDID		"EDID" | 
|---|
| 189 | #define RR_PROPERTY_SIGNAL_FORMAT	"SignalFormat" | 
|---|
| 190 | #define RR_PROPERTY_SIGNAL_PROPERTIES	"SignalProperties" | 
|---|
| 191 | #define RR_PROPERTY_CONNECTOR_TYPE	"ConnectorType" | 
|---|
| 192 | #define RR_PROPERTY_CONNECTOR_NUMBER	"ConnectorNumber" | 
|---|
| 193 | #define RR_PROPERTY_COMPATIBILITY_LIST	"CompatibilityList" | 
|---|
| 194 | #define RR_PROPERTY_CLONE_LIST		"CloneList" | 
|---|
| 195 | #define RR_PROPERTY_BORDER		"Border" | 
|---|
| 196 | #define RR_PROPERTY_BORDER_DIMENSIONS	"BorderDimensions" | 
|---|
| 197 | #define RR_PROPERTY_GUID		"GUID" | 
|---|
| 198 | #define RR_PROPERTY_RANDR_TILE		"TILE" | 
|---|
| 199 | #define RR_PROPERTY_NON_DESKTOP		"non-desktop" | 
|---|
| 200 |  | 
|---|
| 201 | /* roles this device can carry out */ | 
|---|
| 202 | #define RR_Capability_None 0 | 
|---|
| 203 | #define RR_Capability_SourceOutput 1 | 
|---|
| 204 | #define RR_Capability_SinkOutput 2 | 
|---|
| 205 | #define RR_Capability_SourceOffload 4 | 
|---|
| 206 | #define RR_Capability_SinkOffload 8 | 
|---|
| 207 |  | 
|---|
| 208 | #endif	/* _RANDR_H_ */ | 
|---|
| 209 |  | 
|---|