1b290cf36Smrg/* 2b290cf36Smrg 3b290cf36SmrgCopyright 1995 Kaleb S. KEITHLEY 4b290cf36Smrg 5b290cf36SmrgPermission is hereby granted, free of charge, to any person obtaining 6b290cf36Smrga copy of this software and associated documentation files (the 7b290cf36Smrg"Software"), to deal in the Software without restriction, including 8b290cf36Smrgwithout limitation the rights to use, copy, modify, merge, publish, 9b290cf36Smrgdistribute, sublicense, and/or sell copies of the Software, and to 10b290cf36Smrgpermit persons to whom the Software is furnished to do so, subject to 11b290cf36Smrgthe following conditions: 12b290cf36Smrg 13b290cf36SmrgThe above copyright notice and this permission notice shall be 14b290cf36Smrgincluded in all copies or substantial portions of the Software. 15b290cf36Smrg 16b290cf36SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17b290cf36SmrgEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18b290cf36SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19d9dcd5aeSmrgIN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES 20b290cf36SmrgOR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21b290cf36SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22b290cf36SmrgOTHER DEALINGS IN THE SOFTWARE. 23b290cf36Smrg 24d9dcd5aeSmrgExcept as contained in this notice, the name of Kaleb S. KEITHLEY 25d9dcd5aeSmrgshall not be used in advertising or otherwise to promote the sale, use 26b290cf36Smrgor other dealings in this Software without prior written authorization 27b290cf36Smrgfrom Kaleb S. KEITHLEY 28b290cf36Smrg 29b290cf36Smrg*/ 30b290cf36Smrg 31b290cf36Smrg/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */ 32b290cf36Smrg 33b290cf36Smrg#ifndef _XF86VIDMODE_H_ 34b290cf36Smrg#define _XF86VIDMODE_H_ 35b290cf36Smrg 36b290cf36Smrg#include <X11/Xfuncproto.h> 37b290cf36Smrg#include <X11/Xmd.h> 38b290cf36Smrg#include <X11/extensions/xf86vm.h> 39b290cf36Smrg 40b290cf36Smrg#define CLKFLAG_PROGRAMABLE 1 41b290cf36Smrg 42b290cf36Smrg#ifdef XF86VIDMODE_EVENTS 43b290cf36Smrg#define XF86VidModeNotify 0 44b290cf36Smrg#define XF86VidModeNumberEvents (XF86VidModeNotify + 1) 45b290cf36Smrg 46b290cf36Smrg#define XF86VidModeNotifyMask 0x00000001 47b290cf36Smrg 48b290cf36Smrg#define XF86VidModeNonEvent 0 49b290cf36Smrg#define XF86VidModeModeChange 1 50b290cf36Smrg#else 51b290cf36Smrg#define XF86VidModeNumberEvents 0 52b290cf36Smrg#endif 53b290cf36Smrg 54b290cf36Smrg#define XF86VidModeBadClock 0 55b290cf36Smrg#define XF86VidModeBadHTimings 1 56b290cf36Smrg#define XF86VidModeBadVTimings 2 57b290cf36Smrg#define XF86VidModeModeUnsuitable 3 58b290cf36Smrg#define XF86VidModeExtensionDisabled 4 59b290cf36Smrg#define XF86VidModeClientNotLocal 5 60b290cf36Smrg#define XF86VidModeZoomLocked 6 61b290cf36Smrg#define XF86VidModeNumberErrors (XF86VidModeZoomLocked + 1) 62b290cf36Smrg 63b290cf36Smrg#define XF86VM_READ_PERMISSION 1 64b290cf36Smrg#define XF86VM_WRITE_PERMISSION 2 65b290cf36Smrg 66b290cf36Smrg#ifndef _XF86VIDMODE_SERVER_ 67b290cf36Smrg 68b290cf36Smrgtypedef struct { 69b290cf36Smrg unsigned short hdisplay; 70b290cf36Smrg unsigned short hsyncstart; 71b290cf36Smrg unsigned short hsyncend; 72b290cf36Smrg unsigned short htotal; 73b290cf36Smrg unsigned short hskew; 74b290cf36Smrg unsigned short vdisplay; 75b290cf36Smrg unsigned short vsyncstart; 76b290cf36Smrg unsigned short vsyncend; 77b290cf36Smrg unsigned short vtotal; 78b290cf36Smrg unsigned int flags; 79b290cf36Smrg int privsize; 80b290cf36Smrg#if defined(__cplusplus) || defined(c_plusplus) 81b290cf36Smrg /* private is a C++ reserved word */ 82b290cf36Smrg INT32 *c_private; 83b290cf36Smrg#else 84b290cf36Smrg INT32 *private; 85b290cf36Smrg#endif 86b290cf36Smrg} XF86VidModeModeLine; 87b290cf36Smrg 88b290cf36Smrgtypedef struct { 89b290cf36Smrg unsigned int dotclock; 90b290cf36Smrg unsigned short hdisplay; 91b290cf36Smrg unsigned short hsyncstart; 92b290cf36Smrg unsigned short hsyncend; 93b290cf36Smrg unsigned short htotal; 94b290cf36Smrg unsigned short hskew; 95b290cf36Smrg unsigned short vdisplay; 96b290cf36Smrg unsigned short vsyncstart; 97b290cf36Smrg unsigned short vsyncend; 98b290cf36Smrg unsigned short vtotal; 99b290cf36Smrg unsigned int flags; 100b290cf36Smrg int privsize; 101b290cf36Smrg#if defined(__cplusplus) || defined(c_plusplus) 102b290cf36Smrg /* private is a C++ reserved word */ 103b290cf36Smrg INT32 *c_private; 104b290cf36Smrg#else 105b290cf36Smrg INT32 *private; 106b290cf36Smrg#endif 107b290cf36Smrg} XF86VidModeModeInfo; 108b290cf36Smrg 109b290cf36Smrgtypedef struct { 110b290cf36Smrg float hi; 111b290cf36Smrg float lo; 112b290cf36Smrg} XF86VidModeSyncRange; 113b290cf36Smrg 114b290cf36Smrgtypedef struct { 115b290cf36Smrg char* vendor; 116b290cf36Smrg char* model; 117b290cf36Smrg float EMPTY; 118b290cf36Smrg unsigned char nhsync; 119b290cf36Smrg XF86VidModeSyncRange* hsync; 120b290cf36Smrg unsigned char nvsync; 121b290cf36Smrg XF86VidModeSyncRange* vsync; 122b290cf36Smrg} XF86VidModeMonitor; 123d9dcd5aeSmrg 124b290cf36Smrgtypedef struct { 125b290cf36Smrg int type; /* of event */ 126b290cf36Smrg unsigned long serial; /* # of last request processed by server */ 127b290cf36Smrg Bool send_event; /* true if this came from a SendEvent req */ 128b290cf36Smrg Display *display; /* Display the event was read from */ 129b290cf36Smrg Window root; /* root window of event screen */ 130b290cf36Smrg int state; /* What happened */ 131b290cf36Smrg int kind; /* What happened */ 132b290cf36Smrg Bool forced; /* extents of new region */ 133b290cf36Smrg Time time; /* event timestamp */ 134b290cf36Smrg} XF86VidModeNotifyEvent; 135b290cf36Smrg 136b290cf36Smrgtypedef struct { 137b290cf36Smrg float red; /* Red Gamma value */ 138b290cf36Smrg float green; /* Green Gamma value */ 139b290cf36Smrg float blue; /* Blue Gamma value */ 140b290cf36Smrg} XF86VidModeGamma; 141b290cf36Smrg 142b290cf36Smrg 143b290cf36Smrg#define XF86VidModeSelectNextMode(disp, scr) \ 144b290cf36Smrg XF86VidModeSwitchMode(disp, scr, 1) 145b290cf36Smrg#define XF86VidModeSelectPrevMode(disp, scr) \ 146b290cf36Smrg XF86VidModeSwitchMode(disp, scr, -1) 147b290cf36Smrg 148b290cf36Smrg_XFUNCPROTOBEGIN 149b290cf36Smrg 150b290cf36SmrgBool XF86VidModeQueryVersion( 151b290cf36Smrg Display* /* dpy */, 152b290cf36Smrg int* /* majorVersion */, 153b290cf36Smrg int* /* minorVersion */ 154b290cf36Smrg); 155b290cf36Smrg 156b290cf36SmrgBool XF86VidModeQueryExtension( 157b290cf36Smrg Display* /* dpy */, 158b290cf36Smrg int* /* event_base */, 159b290cf36Smrg int* /* error_base */ 160b290cf36Smrg); 161b290cf36Smrg 162b290cf36SmrgBool XF86VidModeSetClientVersion( 163b290cf36Smrg Display* /* dpy */ 164b290cf36Smrg); 165b290cf36Smrg 166b290cf36SmrgBool XF86VidModeGetModeLine( 167b290cf36Smrg Display* /* dpy */, 168b290cf36Smrg int /* screen */, 169b290cf36Smrg int* /* dotclock */, 170b290cf36Smrg XF86VidModeModeLine* /* modeline */ 171b290cf36Smrg); 172b290cf36Smrg 173b290cf36SmrgBool XF86VidModeGetAllModeLines( 174b290cf36Smrg Display* /* dpy */, 175b290cf36Smrg int /* screen */, 176b290cf36Smrg int* /* modecount */, 177b290cf36Smrg XF86VidModeModeInfo*** /* modelinesPtr */ 178b290cf36Smrg); 179b290cf36Smrg 180b290cf36SmrgBool XF86VidModeAddModeLine( 181b290cf36Smrg Display* /* dpy */, 182b290cf36Smrg int /* screen */, 183b290cf36Smrg XF86VidModeModeInfo* /* new modeline */, 184b290cf36Smrg XF86VidModeModeInfo* /* after modeline */ 185b290cf36Smrg); 186b290cf36Smrg 187b290cf36SmrgBool XF86VidModeDeleteModeLine( 188b290cf36Smrg Display* /* dpy */, 189b290cf36Smrg int /* screen */, 190b290cf36Smrg XF86VidModeModeInfo* /* modeline */ 191b290cf36Smrg); 192b290cf36Smrg 193b290cf36SmrgBool XF86VidModeModModeLine( 194b290cf36Smrg Display* /* dpy */, 195b290cf36Smrg int /* screen */, 196b290cf36Smrg XF86VidModeModeLine* /* modeline */ 197b290cf36Smrg); 198b290cf36Smrg 199b290cf36SmrgStatus XF86VidModeValidateModeLine( 200b290cf36Smrg Display* /* dpy */, 201b290cf36Smrg int /* screen */, 202b290cf36Smrg XF86VidModeModeInfo* /* modeline */ 203b290cf36Smrg); 204b290cf36Smrg 205b290cf36SmrgBool XF86VidModeSwitchMode( 206b290cf36Smrg Display* /* dpy */, 207b290cf36Smrg int /* screen */, 208b290cf36Smrg int /* zoom */ 209b290cf36Smrg); 210b290cf36Smrg 211b290cf36SmrgBool XF86VidModeSwitchToMode( 212b290cf36Smrg Display* /* dpy */, 213b290cf36Smrg int /* screen */, 214b290cf36Smrg XF86VidModeModeInfo* /* modeline */ 215b290cf36Smrg); 216b290cf36Smrg 217b290cf36SmrgBool XF86VidModeLockModeSwitch( 218b290cf36Smrg Display* /* dpy */, 219b290cf36Smrg int /* screen */, 220b290cf36Smrg int /* lock */ 221b290cf36Smrg); 222b290cf36Smrg 223b290cf36SmrgBool XF86VidModeGetMonitor( 224b290cf36Smrg Display* /* dpy */, 225b290cf36Smrg int /* screen */, 226b290cf36Smrg XF86VidModeMonitor* /* monitor */ 227b290cf36Smrg); 228b290cf36Smrg 229b290cf36SmrgBool XF86VidModeGetViewPort( 230b290cf36Smrg Display* /* dpy */, 231b290cf36Smrg int /* screen */, 232b290cf36Smrg int* /* x return */, 233b290cf36Smrg int* /* y return */ 234b290cf36Smrg); 235b290cf36Smrg 236b290cf36SmrgBool XF86VidModeSetViewPort( 237b290cf36Smrg Display* /* dpy */, 238b290cf36Smrg int /* screen */, 239b290cf36Smrg int /* x */, 240b290cf36Smrg int /* y */ 241b290cf36Smrg); 242b290cf36Smrg 243b290cf36SmrgBool XF86VidModeGetDotClocks( 244b290cf36Smrg Display* /* dpy */, 245b290cf36Smrg int /* screen */, 246b290cf36Smrg int* /* flags return */, 247b290cf36Smrg int* /* number of clocks return */, 248b290cf36Smrg int* /* max dot clock return */, 249b290cf36Smrg int** /* clocks return */ 250b290cf36Smrg); 251b290cf36Smrg 252b290cf36SmrgBool XF86VidModeGetGamma( 253b290cf36Smrg Display* /* dpy */, 254b290cf36Smrg int /* screen */, 255b290cf36Smrg XF86VidModeGamma* /* Gamma */ 256b290cf36Smrg); 257b290cf36Smrg 258b290cf36SmrgBool XF86VidModeSetGamma( 259b290cf36Smrg Display* /* dpy */, 260b290cf36Smrg int /* screen */, 261b290cf36Smrg XF86VidModeGamma* /* Gamma */ 262b290cf36Smrg); 263b290cf36Smrg 264b290cf36SmrgBool XF86VidModeSetGammaRamp( 265b290cf36Smrg Display* /* dpy */, 266b290cf36Smrg int /* screen */, 267d9dcd5aeSmrg int /* size */, 268b290cf36Smrg unsigned short* /* red array */, 269b290cf36Smrg unsigned short* /* green array */, 270b290cf36Smrg unsigned short* /* blue array */ 271b290cf36Smrg); 272b290cf36Smrg 273b290cf36SmrgBool XF86VidModeGetGammaRamp( 274b290cf36Smrg Display* /* dpy */, 275b290cf36Smrg int /* screen */, 276b290cf36Smrg int /* size */, 277b290cf36Smrg unsigned short* /* red array */, 278b290cf36Smrg unsigned short* /* green array */, 279b290cf36Smrg unsigned short* /* blue array */ 280b290cf36Smrg); 281b290cf36Smrg 282b290cf36SmrgBool XF86VidModeGetGammaRampSize( 283b290cf36Smrg Display* /* dpy */, 284b290cf36Smrg int /* screen */, 285b290cf36Smrg int* /* size */ 286b290cf36Smrg); 287b290cf36Smrg 288b290cf36SmrgBool XF86VidModeGetPermissions( 289b290cf36Smrg Display* /* dpy */, 290b290cf36Smrg int /* screen */, 291b290cf36Smrg int* /* permissions */ 292b290cf36Smrg); 293b290cf36Smrg 294b290cf36Smrg_XFUNCPROTOEND 295b290cf36Smrg 296b290cf36Smrg#endif 297b290cf36Smrg 298b290cf36Smrg#endif 299