1 #ifdef HAVE_DIX_CONFIG_H
2 #include <dix-config.h>
3 #endif
4 
5 #ifndef _VIDMODEPROC_H_
6 #define _VIDMODEPROC_H_
7 
8 #include "displaymode.h"
9 
10 typedef enum {
11     VIDMODE_H_DISPLAY,
12     VIDMODE_H_SYNCSTART,
13     VIDMODE_H_SYNCEND,
14     VIDMODE_H_TOTAL,
15     VIDMODE_H_SKEW,
16     VIDMODE_V_DISPLAY,
17     VIDMODE_V_SYNCSTART,
18     VIDMODE_V_SYNCEND,
19     VIDMODE_V_TOTAL,
20     VIDMODE_FLAGS,
21     VIDMODE_CLOCK
22 } VidModeSelectMode;
23 
24 typedef enum {
25     VIDMODE_MON_VENDOR,
26     VIDMODE_MON_MODEL,
27     VIDMODE_MON_NHSYNC,
28     VIDMODE_MON_NVREFRESH,
29     VIDMODE_MON_HSYNC_LO,
30     VIDMODE_MON_HSYNC_HI,
31     VIDMODE_MON_VREFRESH_LO,
32     VIDMODE_MON_VREFRESH_HI
33 } VidModeSelectMonitor;
34 
35 typedef union {
36     const void *ptr;
37     int i;
38     float f;
39 } vidMonitorValue;
40 
41 typedef Bool            (*VidModeExtensionInitProcPtr)       (ScreenPtr pScreen);
42 typedef vidMonitorValue (*VidModeGetMonitorValueProcPtr)     (ScreenPtr pScreen,
43                                                               int valtyp,
44                                                               int indx);
45 typedef Bool            (*VidModeGetEnabledProcPtr)          (void);
46 typedef Bool            (*VidModeGetAllowNonLocalProcPtr)    (void);
47 typedef Bool            (*VidModeGetCurrentModelineProcPtr)  (ScreenPtr pScreen,
48                                                               DisplayModePtr *mode,
49                                                               int *dotClock);
50 typedef Bool            (*VidModeGetFirstModelineProcPtr)    (ScreenPtr pScreen,
51                                                               DisplayModePtr *mode,
52                                                               int *dotClock);
53 typedef Bool            (*VidModeGetNextModelineProcPtr)     (ScreenPtr pScreen,
54                                                               DisplayModePtr *mode,
55                                                               int *dotClock);
56 typedef Bool            (*VidModeDeleteModelineProcPtr)      (ScreenPtr pScreen,
57                                                               DisplayModePtr mode);
58 typedef Bool            (*VidModeZoomViewportProcPtr)        (ScreenPtr pScreen,
59                                                               int zoom);
60 typedef Bool            (*VidModeGetViewPortProcPtr)         (ScreenPtr pScreen,
61                                                               int *x,
62                                                               int *y);
63 typedef Bool            (*VidModeSetViewPortProcPtr)         (ScreenPtr pScreen,
64                                                               int x,
65                                                               int y);
66 typedef Bool            (*VidModeSwitchModeProcPtr)          (ScreenPtr pScreen,
67                                                               DisplayModePtr mode);
68 typedef Bool            (*VidModeLockZoomProcPtr)            (ScreenPtr pScreen,
69                                                               Bool lock);
70 typedef int             (*VidModeGetNumOfClocksProcPtr)      (ScreenPtr pScreen,
71                                                               Bool *progClock);
72 typedef Bool            (*VidModeGetClocksProcPtr)           (ScreenPtr pScreen,
73                                                               int *Clocks);
74 typedef ModeStatus      (*VidModeCheckModeForMonitorProcPtr) (ScreenPtr pScreen,
75                                                               DisplayModePtr mode);
76 typedef ModeStatus      (*VidModeCheckModeForDriverProcPtr)  (ScreenPtr pScreen,
77                                                               DisplayModePtr mode);
78 typedef void            (*VidModeSetCrtcForModeProcPtr)      (ScreenPtr pScreen,
79                                                               DisplayModePtr mode);
80 typedef Bool            (*VidModeAddModelineProcPtr)         (ScreenPtr pScreen,
81                                                               DisplayModePtr mode);
82 typedef int             (*VidModeGetDotClockProcPtr)         (ScreenPtr pScreen,
83                                                               int Clock);
84 typedef int             (*VidModeGetNumOfModesProcPtr)       (ScreenPtr pScreen);
85 typedef Bool            (*VidModeSetGammaProcPtr)            (ScreenPtr pScreen,
86                                                               float red,
87                                                               float green,
88                                                               float blue);
89 typedef Bool            (*VidModeGetGammaProcPtr)            (ScreenPtr pScreen,
90                                                               float *red,
91                                                               float *green,
92                                                               float *blue);
93 typedef Bool            (*VidModeSetGammaRampProcPtr)        (ScreenPtr pScreen,
94                                                               int size,
95                                                               CARD16 *red,
96                                                               CARD16 *green,
97                                                               CARD16 *blue);
98 typedef Bool            (*VidModeGetGammaRampProcPtr)        (ScreenPtr pScreen,
99                                                               int size,
100                                                               CARD16 *red,
101                                                               CARD16 *green,
102                                                               CARD16 *blue);
103 typedef int             (*VidModeGetGammaRampSizeProcPtr)    (ScreenPtr pScreen);
104 
105 typedef struct {
106     DisplayModePtr First;
107     DisplayModePtr Next;
108     int Flags;
109 
110     VidModeExtensionInitProcPtr       ExtensionInit;
111     VidModeGetMonitorValueProcPtr     GetMonitorValue;
112     VidModeGetCurrentModelineProcPtr  GetCurrentModeline;
113     VidModeGetFirstModelineProcPtr    GetFirstModeline;
114     VidModeGetNextModelineProcPtr     GetNextModeline;
115     VidModeDeleteModelineProcPtr      DeleteModeline;
116     VidModeZoomViewportProcPtr        ZoomViewport;
117     VidModeGetViewPortProcPtr         GetViewPort;
118     VidModeSetViewPortProcPtr         SetViewPort;
119     VidModeSwitchModeProcPtr          SwitchMode;
120     VidModeLockZoomProcPtr            LockZoom;
121     VidModeGetNumOfClocksProcPtr      GetNumOfClocks;
122     VidModeGetClocksProcPtr           GetClocks;
123     VidModeCheckModeForMonitorProcPtr CheckModeForMonitor;
124     VidModeCheckModeForDriverProcPtr  CheckModeForDriver;
125     VidModeSetCrtcForModeProcPtr      SetCrtcForMode;
126     VidModeAddModelineProcPtr         AddModeline;
127     VidModeGetDotClockProcPtr         GetDotClock;
128     VidModeGetNumOfModesProcPtr       GetNumOfModes;
129     VidModeSetGammaProcPtr            SetGamma;
130     VidModeGetGammaProcPtr            GetGamma;
131     VidModeSetGammaRampProcPtr        SetGammaRamp;
132     VidModeGetGammaRampProcPtr        GetGammaRamp;
133     VidModeGetGammaRampSizeProcPtr    GetGammaRampSize;
134 } VidModeRec, *VidModePtr;
135 
136 #ifdef XF86VIDMODE
137 void VidModeAddExtension(Bool allow_non_local);
138 VidModePtr VidModeGetPtr(ScreenPtr pScreen);
139 VidModePtr VidModeInit(ScreenPtr pScreen);
140 #endif /* XF86VIDMODE */
141 
142 #endif
143