~ubuntu-branches/ubuntu/intrepid/xserver-xgl/intrepid

« back to all changes in this revision

Viewing changes to hw/xfree86/ddc/vdif.h

  • Committer: Bazaar Package Importer
  • Author(s): Matthew Garrett
  • Date: 2006-02-13 14:21:43 UTC
  • Revision ID: james.westby@ubuntu.com-20060213142143-mad6z9xzem7hzxz9
Tags: upstream-7.0.0
ImportĀ upstreamĀ versionĀ 7.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/vdif.h,v 1.4tsi Exp $ */
 
2
 
 
3
#ifndef _VDIF_H
 
4
#define _VDIF_H
 
5
 
 
6
#define VDIF_MONITOR_MONOCHROME 0
 
7
#define VDIF_MONITOR_COLOR 1
 
8
#define VDIF_VIDEO_TTL 0
 
9
#define VDIF_VIDEO_ANALOG 1
 
10
#define VDIF_VIDEO_ECL 2
 
11
#define VDIF_VIDEO_DECL 3
 
12
#define VDIF_VIDEO_OTHER 4
 
13
#define VDIF_SYNC_SEPARATE 0
 
14
#define VDIF_SYNC_C 1
 
15
#define VDIF_SYNC_CP 2
 
16
#define VDIF_SYNC_G 3
 
17
#define VDIF_SYNC_GP 4
 
18
#define VDIF_SYNC_OTHER 5
 
19
#define VDIF_SCAN_NONINTERLACED 0
 
20
#define VDIF_SCAN_INTERLACED 1
 
21
#define VDIF_SCAN_OTHER 2
 
22
#define VDIF_POLARITY_NEGATIVE 0
 
23
#define VDIF_POLARITY_POSITIVE 1
 
24
 
 
25
#include <X11/Xmd.h>
 
26
 
 
27
#undef  CARD32
 
28
#define CARD32 unsigned int     /* ... on all supported platforms */
 
29
 
 
30
typedef struct _VDIF { /* Monitor Description: */
 
31
    CARD8 VDIFId[4]; /* alway "VDIF" */
 
32
    CARD32 FileLength; /* lenght of the whole file */
 
33
    CARD32 Checksum; /* sum of all bytes in the file after*/
 
34
    /* this field */
 
35
    CARD16 VDIFVersion; /* structure version number */
 
36
    CARD16 VDIFRevision; /* structure revision number */
 
37
    CARD16 Date[3]; /* file date Year/Month/Day */
 
38
    CARD16 DateManufactured[3]; /* date Year/Month/Day */
 
39
    CARD32 FileRevision; /* file revision string */
 
40
    CARD32 Manufacturer; /* ASCII ID of the manufacturer */
 
41
    CARD32 ModelNumber; /* ASCII ID of the model */
 
42
    CARD32 MinVDIFIndex; /* ASCII ID of Minimum VDIF index */
 
43
    CARD32 Version; /* ASCII ID of the model version */
 
44
    CARD32 SerialNumber; /* ASCII ID of the serial number */
 
45
    CARD8 MonitorType; /* Monochrome or Color */
 
46
    CARD8 CRTSize; /* inches */
 
47
    CARD8 BorderRed; /* percent */
 
48
    CARD8 BorderGreen; /* percent */
 
49
    CARD8 BorderBlue; /* percent */
 
50
    CARD8 Reserved1; /* padding */
 
51
    CARD16 Reserved2; /* padding */
 
52
    CARD32 RedPhosphorDecay; /* microseconds */
 
53
    CARD32 GreenPhosphorDecay; /* microseconds */
 
54
    CARD32 BluePhosphorDecay; /* microseconds */
 
55
    CARD16 WhitePoint_x; /* WhitePoint in CIExyY (scale 1000) */
 
56
    CARD16 WhitePoint_y;
 
57
    CARD16 WhitePoint_Y;
 
58
    CARD16 RedChromaticity_x; /* Red chromaticity in x,y */
 
59
    CARD16 RedChromaticity_y;
 
60
    CARD16 GreenChromaticity_x; /* Green chromaticity in x,y */
 
61
    CARD16 GreenChromaticity_y;
 
62
    CARD16 BlueChromaticity_x; /* Blue chromaticity in x,y */
 
63
    CARD16 BlueChromaticity_y;
 
64
    CARD16 RedGamma; /* Gamme curve exponent (scale 1000) */
 
65
    CARD16 GreenGamma;
 
66
    CARD16 BlueGamma;
 
67
    CARD32 NumberOperationalLimits;
 
68
    CARD32 OffsetOperationalLimits;
 
69
    CARD32 NumberOptions; /* optinal sections (gamma table) */
 
70
    CARD32 OffsetOptions;
 
71
    CARD32 OffsetStringTable;
 
72
} xf86VdifRec, *xf86VdifPtr;
 
73
 
 
74
typedef enum { /* Tags for section identification */
 
75
    VDIF_OPERATIONAL_LIMITS_TAG = 1,
 
76
    VDIF_PREADJUSTED_TIMING_TAG,
 
77
    VDIF_GAMMA_TABLE_TAG
 
78
} VDIFScnTag;
 
79
 
 
80
typedef struct _VDIFScnHdr { /* Generic Section Header: */
 
81
    CARD32 ScnLength; /* lenght of section */
 
82
    CARD32 ScnTag; /* tag for section identification */
 
83
} VDIFScnHdrRec, *VDIFScnHdrPtr;
 
84
 
 
85
typedef struct _VDIFLimits { /* Operational Limits: */
 
86
    VDIFScnHdrRec Header; /* common section info */
 
87
    CARD16 MaxHorPixel; /* pixels */
 
88
    CARD16 MaxVerPixel; /* lines */
 
89
    CARD16 MaxHorActiveLength; /* millimeters */
 
90
    CARD16 MaxVerActiveHeight; /* millimeters */
 
91
    CARD8 VideoType; /* TTL / Analog / ECL / DECL */
 
92
    CARD8 SyncType; /* TTL / Analog / ECL / DECL */
 
93
    CARD8 SyncConfiguration; /* separate / composite / other */
 
94
    CARD8 Reserved1; /* padding */
 
95
    CARD16 Reserved2; /* padding */
 
96
    CARD16 TerminationResistance; /* */
 
97
    CARD16 WhiteLevel; /* millivolts */
 
98
    CARD16 BlackLevel; /* millivolts */
 
99
    CARD16 BlankLevel; /* millivolts */
 
100
    CARD16 SyncLevel; /* millivolts */
 
101
    CARD32 MaxPixelClock; /* kiloHertz */
 
102
    CARD32 MinHorFrequency; /* Hertz */
 
103
    CARD32 MaxHorFrequency; /* Hertz */
 
104
    CARD32 MinVerFrequency; /* milliHertz */
 
105
    CARD32 MaxVerFrequency; /* milliHertz */
 
106
    CARD16 MinHorRetrace; /* nanoseconds */
 
107
    CARD16 MinVerRetrace; /* microseconds */
 
108
    CARD32 NumberPreadjustedTimings;
 
109
    CARD32 OffsetNextLimits;
 
110
} xf86VdifLimitsRec, *xf86VdifLimitsPtr;
 
111
 
 
112
typedef struct _VDIFTiming { /* Preadjusted Timing: */
 
113
    VDIFScnHdrRec Header; /* common section info */
 
114
    CARD32 PreadjustedTimingName; /* SVGA/SVPMI mode number */
 
115
    CARD16 HorPixel; /* pixels */
 
116
    CARD16 VerPixel; /* lines */
 
117
    CARD16 HorAddrLength; /* millimeters */
 
118
    CARD16 VerAddrHeight; /* millimeters */
 
119
    CARD8 PixelWidthRatio; /* gives H:V */
 
120
    CARD8 PixelHeightRatio;
 
121
    CARD8 Reserved1; /* padding */
 
122
    CARD8 ScanType; /* noninterlaced / interlaced / other*/
 
123
    CARD8 HorSyncPolarity; /* negative / positive */
 
124
    CARD8 VerSyncPolarity; /* negative / positive */
 
125
    CARD16 CharacterWidth; /* pixels */
 
126
    CARD32 PixelClock; /* kiloHertz */
 
127
    CARD32 HorFrequency; /* Hertz */
 
128
    CARD32 VerFrequency; /* milliHertz */
 
129
    CARD32 HorTotalTime; /* nanoseconds */
 
130
    CARD32 VerTotalTime; /* microseconds */
 
131
    CARD16 HorAddrTime; /* nanoseconds */
 
132
    CARD16 HorBlankStart; /* nanoseconds */
 
133
    CARD16 HorBlankTime; /* nanoseconds */
 
134
    CARD16 HorSyncStart; /* nanoseconds */
 
135
    CARD16 HorSyncTime; /* nanoseconds */
 
136
    CARD16 VerAddrTime; /* microseconds */
 
137
    CARD16 VerBlankStart; /* microseconds */
 
138
    CARD16 VerBlankTime; /* microseconds */
 
139
    CARD16 VerSyncStart; /* microseconds */
 
140
    CARD16 VerSyncTime; /* microseconds */
 
141
} xf86VdifTimingRec, *xf86VdifTimingPtr; 
 
142
 
 
143
typedef struct _VDIFGamma { /* Gamma Table: */
 
144
    VDIFScnHdrRec Header; /* common section info */
 
145
    CARD16 GammaTableEntries; /* count of grays or RGB 3-tuples */
 
146
    CARD16 Unused1;
 
147
} xf86VdifGammaRec, *xf86VdifGammaPtr;
 
148
 
 
149
/* access macros */
 
150
#define VDIF_OPERATIONAL_LIMITS(vdif) \
 
151
((xf86VdifLimitsPtr)((char*)(vdif) + (vdif)->OffsetOperationalLimits))
 
152
#define VDIF_NEXT_OPERATIONAL_LIMITS(limits) limits = \
 
153
     ((xf86VdifLimitsPtr)((char*)(limits) + (limits)->OffsetNextLimits))
 
154
#define VDIF_PREADJUSTED_TIMING(limits) \
 
155
((xf86VdifTimingPtr)((char*)(limits) + (limits)->Header.ScnLength))
 
156
#define VDIF_NEXT_PREADJUSTED_TIMING(timing) timing = \
 
157
     ((xf86VdifTimingPtr)((char*)(timing) + (timing)->Header.ScnLength))
 
158
#define VDIF_OPTIONS(vdif) \
 
159
     ((VDIFScnHdrPtr)((char*)(vdif) + (vdif)->OffsetOptions))
 
160
#define VDIF_NEXT_OPTIONS(options) options = \
 
161
     ((xf86VdifGammaPtr)((char*)(options) + (options)->Header.ScnLength))
 
162
#define VDIF_STRING(vdif, string) \
 
163
     ((char*)((char*)vdif + vdif->OffsetStringTable + (string)))
 
164
 
 
165
typedef struct  _vdif {
 
166
    xf86VdifPtr vdif;
 
167
    xf86VdifLimitsPtr *limits;
 
168
    xf86VdifTimingPtr *timings;
 
169
    xf86VdifGammaPtr *gamma;
 
170
    char * strings;
 
171
} xf86vdif, *xf86vdifPtr;
 
172
 
 
173
#undef CARD32
 
174
 
 
175
#endif