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