4 * COPYRIGHT: See COPYING in the top level directory
5 * PROJECT: ReactOS kernel
7 * PURPOSE: Directx headers
8 * PROGRAMMER: Magnus Olsen (greatlrd)
12 #ifndef __DVP_INCLUDED__
13 #define __DVP_INCLUDED__
15 DEFINE_GUID( IID_IDDVideoPortContainer
, 0x6C142760,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 );
16 DEFINE_GUID( IID_IDirectDrawVideoPort
, 0xB36D93E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 );
17 DEFINE_GUID( IID_IDirectDrawVideoPortNotify
, 0xA655FB94,0x0589,0x4E57,0xB3,0x33,0x56,0x7A,0x89,0x46,0x8C,0x88);
19 DEFINE_GUID( DDVPTYPE_E_HREFH_VREFH
, 0x54F39980L
,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
20 DEFINE_GUID( DDVPTYPE_E_HREFH_VREFL
, 0x92783220L
,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
21 DEFINE_GUID( DDVPTYPE_E_HREFL_VREFH
, 0xA07A02E0L
,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
22 DEFINE_GUID( DDVPTYPE_E_HREFL_VREFL
, 0xE09C77E0L
,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
23 DEFINE_GUID( DDVPTYPE_CCIR656
, 0xFCA326A0L
,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
24 DEFINE_GUID( DDVPTYPE_BROOKTREE
, 0x1352A560L
,0xDA61,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
25 DEFINE_GUID( DDVPTYPE_PHILIPS
, 0x332CF160L
,0xDA61,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
28 typedef struct _DDVIDEOPORTCONNECT
34 ULONG_PTR dwReserved1
;
37 typedef struct _DDVIDEOPORTDESC
{
42 DWORD dwMicrosecondsPerField
;
43 DWORD dwMaxPixelsPerSecond
;
46 DDVIDEOPORTCONNECT VideoPortType
;
47 ULONG_PTR dwReserved2
;
48 ULONG_PTR dwReserved3
;
51 typedef struct _DDVIDEOPORTBANDWIDTH
57 DWORD dwYInterpAndColorkey
;
58 ULONG_PTR dwReserved1
;
59 ULONG_PTR dwReserved2
;
60 } DDVIDEOPORTBANDWIDTH
;
62 typedef struct _DDVIDEOPORTCAPS
72 DWORD dwNumAutoFlipSurfaces
;
73 DWORD dwAlignVideoPortBoundary
;
74 DWORD dwAlignVideoPortPrescaleWidth
;
75 DWORD dwAlignVideoPortCropBoundary
;
76 DWORD dwAlignVideoPortCropWidth
;
77 DWORD dwPreshrinkXStep
;
78 DWORD dwPreshrinkYStep
;
79 DWORD dwNumVBIAutoFlipSurfaces
;
80 DWORD dwNumPreferredAutoflip
;
85 typedef struct _DDVIDEOPORTINFO
92 DWORD dwPrescaleWidth
;
93 DWORD dwPrescaleHeight
;
94 LPDDPIXELFORMAT lpddpfInputFormat
;
95 LPDDPIXELFORMAT lpddpfVBIInputFormat
;
96 LPDDPIXELFORMAT lpddpfVBIOutputFormat
;
98 ULONG_PTR dwReserved1
;
99 ULONG_PTR dwReserved2
;
102 typedef struct _DDVIDEOPORTSTATUS
108 DDVIDEOPORTCONNECT VideoPortType
;
109 ULONG_PTR dwReserved2
;
110 ULONG_PTR dwReserved3
;
113 typedef struct _DDVIDEOPORTNOTIFY
115 LARGE_INTEGER ApproximateTimeStamp
;
122 #define DDVPCONNECT_DOUBLECLOCK 0x00000001
123 #define DDVPCONNECT_VACT 0x00000002
124 #define DDVPCONNECT_INVERTPOLARITY 0x00000004
125 #define DDVPCONNECT_DISCARDSVREFDATA 0x00000008
126 #define DDVPCONNECT_HALFLINE 0x00000010
127 #define DDVPCONNECT_INTERLACED 0x00000020
128 #define DDVPCONNECT_SHAREEVEN 0x00000040
129 #define DDVPCONNECT_SHAREODD 0x00000080
130 #define DDVPCAPS_AUTOFLIP 0x00000001
131 #define DDVPCAPS_INTERLACED 0x00000002
132 #define DDVPCAPS_NONINTERLACED 0x00000004
133 #define DDVPCAPS_READBACKFIELD 0x00000008
134 #define DDVPCAPS_READBACKLINE 0x00000010
135 #define DDVPCAPS_SHAREABLE 0x00000020
136 #define DDVPCAPS_SKIPEVENFIELDS 0x00000040
137 #define DDVPCAPS_SKIPODDFIELDS 0x00000080
138 #define DDVPCAPS_SYNCMASTER 0x00000100
139 #define DDVPCAPS_VBISURFACE 0x00000200
140 #define DDVPCAPS_COLORCONTROL 0x00000400
141 #define DDVPCAPS_OVERSAMPLEDVBI 0x00000800
142 #define DDVPCAPS_SYSTEMMEMORY 0x00001000
143 #define DDVPCAPS_VBIANDVIDEOINDEPENDENT 0x00002000
144 #define DDVPCAPS_HARDWAREDEINTERLACE 0x00004000
145 #define DDVPFX_CROPTOPDATA 0x00000001
146 #define DDVPFX_CROPX 0x00000002
147 #define DDVPFX_CROPY 0x00000004
148 #define DDVPFX_INTERLEAVE 0x00000008
149 #define DDVPFX_MIRRORLEFTRIGHT 0x00000010
150 #define DDVPFX_MIRRORUPDOWN 0x00000020
151 #define DDVPFX_PRESHRINKX 0x00000040
152 #define DDVPFX_PRESHRINKY 0x00000080
153 #define DDVPFX_PRESHRINKXB 0x00000100
154 #define DDVPFX_PRESHRINKYB 0x00000200
155 #define DDVPFX_PRESHRINKXS 0x00000400
156 #define DDVPFX_PRESHRINKYS 0x00000800
157 #define DDVPFX_PRESTRETCHX 0x00001000
158 #define DDVPFX_PRESTRETCHY 0x00002000
159 #define DDVPFX_PRESTRETCHXN 0x00004000
160 #define DDVPFX_PRESTRETCHYN 0x00008000
161 #define DDVPFX_VBICONVERT 0x00010000
162 #define DDVPFX_VBINOSCALE 0x00020000
163 #define DDVPFX_IGNOREVBIXCROP 0x00040000
164 #define DDVPFX_VBINOINTERLEAVE 0x00080000
165 #define DDVP_AUTOFLIP 0x00000001
166 #define DDVP_CONVERT 0x00000002
167 #define DDVP_CROP 0x00000004
168 #define DDVP_INTERLEAVE 0x00000008
169 #define DDVP_MIRRORLEFTRIGHT 0x00000010
170 #define DDVP_MIRRORUPDOWN 0x00000020
171 #define DDVP_PRESCALE 0x00000040
172 #define DDVP_SKIPEVENFIELDS 0x00000080
173 #define DDVP_SKIPODDFIELDS 0x00000100
174 #define DDVP_SYNCMASTER 0x00000200
175 #define DDVP_VBICONVERT 0x00000400
176 #define DDVP_VBINOSCALE 0x00000800
177 #define DDVP_OVERRIDEBOBWEAVE 0x00001000
178 #define DDVP_IGNOREVBIXCROP 0x00002000
179 #define DDVP_VBINOINTERLEAVE 0x00004000
180 #define DDVP_HARDWAREDEINTERLACE 0x00008000
181 #define DDVPFORMAT_VIDEO 0x00000001
182 #define DDVPFORMAT_VBI 0x00000002
183 #define DDVPTARGET_VIDEO 0x00000001
184 #define DDVPTARGET_VBI 0x00000002
185 #define DDVPWAIT_BEGIN 0x00000001
186 #define DDVPWAIT_END 0x00000002
187 #define DDVPWAIT_LINE 0x00000003
188 #define DDVPFLIP_VIDEO 0x00000001
189 #define DDVPFLIP_VBI 0x00000002
190 #define DDVPSQ_NOSIGNAL 0x00000001
191 #define DDVPSQ_SIGNALOK 0x00000002
192 #define DDVPB_VIDEOPORT 0x00000001
193 #define DDVPB_OVERLAY 0x00000002
194 #define DDVPB_TYPE 0x00000004
195 #define DDVPBCAPS_SOURCE 0x00000001
196 #define DDVPBCAPS_DESTINATION 0x00000002
197 #define DDVPCREATE_VBIONLY 0x00000001
198 #define DDVPCREATE_VIDEOONLY 0x00000002
199 #define DDVPSTATUS_VBIONLY 0x00000001
200 #define DDVPSTATUS_VIDEOONLY 0x00000002
202 typedef struct _DDVIDEOPORTCONNECT
*LPDDVIDEOPORTCONNECT
;
203 typedef struct _DDVIDEOPORTCAPS
*LPDDVIDEOPORTCAPS
;
204 typedef struct _DDVIDEOPORTDESC
*LPDDVIDEOPORTDESC
;
205 typedef struct _DDVIDEOPORTINFO
*LPDDVIDEOPORTINFO
;
206 typedef struct _DDVIDEOPORTBANDWIDTH
*LPDDVIDEOPORTBANDWIDTH
;
207 typedef struct _DDVIDEOPORTSTATUS
*LPDDVIDEOPORTSTATUS
;
208 typedef struct _DDVIDEOPORTNOTIFY
*LPDDVIDEOPORTNOTIFY
;
210 typedef struct IDirectDrawVideoPort
* LPDIRECTDRAWVIDEOPORT
;
211 typedef struct IDDVideoPortContainer
* LPDDVIDEOPORTCONTAINER
;
212 typedef struct IDirectDrawVideoPortNotify
* LPDIRECTDRAWVIDEOPORTNOTIFY
;
214 typedef HRESULT (FAR PASCAL
* LPDDENUMVIDEOCALLBACK
)(LPDDVIDEOPORTCAPS
, LPVOID
);
216 #if !defined (_NO_COM) && defined (_WIN32)
219 #define INTERFACE IDDVideoPortContainer
220 DECLARE_INTERFACE_ (IDDVideoPortContainer
, IUnknown
)
222 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
* ppvObj
) PURE
;
223 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
224 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
225 STDMETHOD(CreateVideoPort
)(THIS_ DWORD
, LPDDVIDEOPORTDESC
, LPDIRECTDRAWVIDEOPORT
*, IUnknown
*) PURE
;
226 STDMETHOD(EnumVideoPorts
) (THIS_ DWORD
, LPDDVIDEOPORTCAPS
, LPVOID
, LPDDENUMVIDEOCALLBACK
) PURE
;
227 STDMETHOD(GetVideoPortConnectInfo
) (THIS_ DWORD
, LPDWORD
, LPDDVIDEOPORTCONNECT
) PURE
;
228 STDMETHOD(QueryVideoPortStatus
) (THIS_ DWORD
, LPDDVIDEOPORTSTATUS
) PURE
;
232 #define INTERFACE IDirectDrawVideoPort
233 DECLARE_INTERFACE_ (IDirectDrawVideoPort
, IUnknown
)
235 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
* ppvObj
) PURE
;
236 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
237 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
238 STDMETHOD(Flip
) (THIS_ LPDIRECTDRAWSURFACE
, DWORD
) PURE
;
239 STDMETHOD(GetBandwidthInfo
)(THIS_ LPDDPIXELFORMAT
, DWORD
, DWORD
, DWORD
, LPDDVIDEOPORTBANDWIDTH
) PURE
;
240 STDMETHOD(GetColorControls
) (THIS_ LPDDCOLORCONTROL
) PURE
;
241 STDMETHOD(GetInputFormats
)(THIS_ LPDWORD
, LPDDPIXELFORMAT
, DWORD
) PURE
;
242 STDMETHOD(GetOutputFormats
)(THIS_ LPDDPIXELFORMAT
, LPDWORD
, LPDDPIXELFORMAT
, DWORD
) PURE
;
243 STDMETHOD(GetFieldPolarity
) (THIS_ LPBOOL
) PURE
;
244 STDMETHOD(GetVideoLine
) (THIS_ LPDWORD
) PURE
;
245 STDMETHOD(GetVideoSignalStatus
) (THIS_ LPDWORD
) PURE
;
246 STDMETHOD(SetColorControls
) (THIS_ LPDDCOLORCONTROL
) PURE
;
247 STDMETHOD(SetTargetSurface
) (THIS_ LPDIRECTDRAWSURFACE
, DWORD
) PURE
;
248 STDMETHOD(StartVideo
) (THIS_ LPDDVIDEOPORTINFO
) PURE
;
249 STDMETHOD(StopVideo
) (THIS
) PURE
;
250 STDMETHOD(UpdateVideo
) (THIS_ LPDDVIDEOPORTINFO
) PURE
;
251 STDMETHOD(WaitForSync
) (THIS_ DWORD
, DWORD
, DWORD
) PURE
;
255 #define INTERFACE IDirectDrawVideoPortNotify
256 DECLARE_INTERFACE_( IDirectDrawVideoPortNotify
, IUnknown
)
258 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, LPVOID
* ppvObj
) PURE
;
259 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
260 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
261 STDMETHOD(AcquireNotification
) (THIS_ HANDLE
*, LPDDVIDEOPORTNOTIFY
) PURE
;
262 STDMETHOD(ReleaseNotification
) (THIS_ HANDLE
) PURE
;
267 #endif // !defined (_NO_COM) && defined (_WIN32)
268 #endif // __DVP_INCLUDED__