OSDN Git Service

Prepare environment for Earnie's tools.
[mingw/mingw-org-wsl.git] / wslapi / include / amvideo.h
1 #ifndef _AMVIDEO_H
2 #define _AMVIDEO_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #include <ddraw.h>
8 #include <strmif.h>
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #define AMDDS_NONE 0x0000
15 #define AMDDS_DCIPS 0x0001
16 #define AMDDS_PS 0x0002
17 #define AMDDS_RGBOVR 0x0004
18 #define AMDDS_YUVOVR 0x0008
19 #define AMDDS_RGBOFF 0x0010
20 #define AMDDS_YUVOFF 0x0020
21 #define AMDDS_RGBFLP 0x0040
22 #define AMDDS_YUVFLP 0x0080
23 #define AMDDS_ ALL 0x00FF
24 #define AMDDS_DEFAULT 0x00FF
25 #define AMDDS_YUV (AMDDS_YUVOFF|AMDDS_YUVOVR|AMDDS_YUVFLP)
26 #define AMDDS_RGB (AMDDS_RGBOFF|AMDDS_RGBOVR|AMDDS_RGBFLP)
27 #define AMDDS_PRIMARY (AMDDS_DCIPS|AMDDS_PS)
28 #define BIT_MASKS_MATCH(pbmi1,pbmi2) ((pbmi1)->dwBitMasks[0] == (pbmi2)->dwBitMasks[0] && (pbmi1)->dwBitMasks[1] == (pbmi2)->dwBitMasks[1] && (pbmi1)->dwBitMasks[2] == (pbmi2)->dwBitMasks[2])
29 #define PALETTISED(pbmi) ((pbmi)->bmiHeader.biBitCount <= 8)
30 #define PALETTE_ENTRIES(pbmi) (1 << (pbmi)->bmiHeader.biBitCount)
31 #define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(pbmi)->dwBitFields,3*sizeof(DWORD)))
32 #define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(pbmi)->bmiColors,256*sizeof(RGBQUAD)));
33 #define SIZE_EGA_PALETTE (16*sizeof(RGBQUAD))
34 #define SIZE_MASKS (3*sizeof(DWORD))
35 #define SIZE_PALETTE (256*sizeof(RGBQUAD))
36 typedef enum {
37         AM_PROPERTY_FRAMESTEP_STEP = 1,
38         AM_PROPERTY_FRAMESTEP_CANCEL = 2,
39         AM_PROPERTY_FRAMESTEP_CANSTEP = 3,
40         AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 4
41 } AM_PROPERTY_FRAMESTEP;
42 typedef struct tag_TRUECOLORINFO {
43         DWORD dwBitMasks[3];
44         RGBQUAD bmiColors[256];
45 } TRUECOLORINFO;
46 typedef struct tagVIDEOINFOHEADER {
47         RECT rcSource;
48         RECT rcTarget;
49         DWORD dwBitRate;
50         DWORD dwBitErrorRate;
51         REFERENCE_TIME AvgTimePerFrame;
52         BITMAPINFOHEADER bmiHeader;
53 } VIDEOINFOHEADER;
54 typedef struct tagVIDEOINFO {
55         RECT rcSource,
56         RECT rcTarget,
57         DWORD dwBitRate,
58         DWORD dwBitErrorRate,
59         REFERENCE_TIME AvgTimePerFrame;
60         BITMAPINFOHEADER bmiHeader;
61         union {
62                 RGBQUAD bmiColors[256];
63                 DWORD dwBitMasks[3];
64                 TRUECOLORINFO TrueColorInfo;
65         };
66 } VIDEOINFO;
67 typedef struct tagMPEG1VIDEOINFO {
68         VIDEOINFOHEADER hdr;
69         DWORD dwStartTimeCode;
70         DWORD cbSequenceHeader;
71         BYTE bSequenceHeader[1];
72 } MPEG1VIDEOINFO;
73 typedef struct tagAnalogVideoInfo {
74         RECT rcSource;
75         RECT rcTarget;
76         DWORD dwActiveWidth;
77         DWORD dwActiveHeight;
78         REFERENCE_TIME AvgTimePerFrame;
79 } ANALOGVIDEOINFO;
80 typedef struct _AM_FRAMESTEP_STEP {
81         DWORD dwFramesToStep;
82 } AM_FRAMESTEP_STEP;
83 #define INTERFACE IDirectDrawVideo
84 DECLARE_INTERFACE_(IDirectDrawVideo, IUnknown)
85 {
86         STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE;
87         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
88         STDMETHOD_(ULONG,Release)(THIS) PURE;
89         STDMETHOD(CanUseOverlayStretch)(THIS_ long*) PURE;
90         STDMETHOD(CanUseScanLine)(THIS_ long*) PURE;
91         STDMETHOD(GetCaps)(THIS_ DDCAPS*) PURE;
92         STDMETHOD(GetDirectDraw)(THIS_ LPDIRECTDRAW*) PURE;
93         STDMETHOD(GetEmulatedCaps)(THIS_ DDCAPS*) PURE;
94         STDMETHOD(GetFourCCCodes)(THIS_ DWORD*,DWORD*) PURE;
95         STDMETHOD(GetSurfaceDesc)(THIS_ DDSURFACEDESC*) PURE;
96         STDMETHOD(GetSurfaceType)(THIS_ DWORD*) PURE;
97         STDMETHOD(GetSwitches)(THIS_ DWORD*) PURE;
98         STDMETHOD(SetDefault)(THIS) PURE;
99         STDMETHOD(SetDirectDraw)(THIS_ LPDIRECTDRAW) PURE;
100         STDMETHOD(SetSwitches)(THIS_ DWORD) PURE;
101         STDMETHOD(UseOverlayStretch)(THIS_ long) PURE;
102         STDMETHOD(UseScanLine)(THIS_ long) PURE;
103         STDMETHOD(UseWhenFullScreen)(THIS_ long) PURE;
104         STDMETHOD(WillUseFullScreen)(THIS_ long*) PURE;
105 };
106 #undef INTERFACE
107 #define INTERFACE IQualProp
108 DECLARE_INTERFACE_(IQualProp, IUnknown)
109 {
110         STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE;
111         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
112         STDMETHOD_(ULONG,Release)(THIS) PURE;
113         STDMETHOD(get_AvgFrameRate)(THIS_ int*) PURE;
114         STDMETHOD(get_AvgSyncOffset)(THIS_ int*) PURE;
115         STDMETHOD(get_DevSyncOffset)(THIS_ int*) PURE;
116         STDMETHOD(get_FramesDrawn)(THIS_ int*) PURE;
117         STDMETHOD(get_FramesDroppedInRenderer)(THIS_ int*) PURE;
118         STDMETHOD(get_Jitter)(THIS_ int*) PURE;
119 };
120 #undef INTERFACE
121 #define INTERFACE IFullScreenVideo
122 DECLARE_INTERFACE_(IFullScreenVideo, IUnknown)
123 {
124         STDMETHOD(QueryInterface)(THIS_ REFIID,LPVOID*) PURE;
125         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
126         STDMETHOD_(ULONG,Release)(THIS) PURE;
127         STDMETHOD(CountModes)(THIS_ long*) PURE;
128         STDMETHOD(GetCaption)(THIS_ BSTR*) PURE;
129         STDMETHOD(GetClipFactor)(THIS_ long*) PURE;
130         STDMETHOD(GetCurrentMode)(THIS_ long*) PURE;
131         STDMETHOD(GetMessageDrain)(THIS_ HWND*) PURE;
132         STDMETHOD(GetModeInfo)(THIS_ long,long*,long*,long*) PURE;
133         STDMETHOD(GetMonitor)(THIS_ long*) PURE;
134         STDMETHOD(HideOnDeactivate)(THIS_ long) PURE;
135         STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
136         STDMETHOD(IsModeAvailable)(THIS_ long) PURE;
137         STDMETHOD(IsModeEnabled)(THIS_ long) PURE;
138         STDMETHOD(SetCaption)(THIS_ BSTR) PURE;
139         STDMETHOD(SetClipFactor)(THIS_ long) PURE;
140         STDMETHOD(SetDefault)(THIS) PURE;
141         STDMETHOD(SetEnabled)(THIS_ long,long) PURE;
142         STDMETHOD(SetMessageDrain)(THIS_ HWND) PURE;
143         STDMETHOD(SetMonitor)(THIS_ long) PURE;
144 };
145 #undef INTERFACE
146 #define INTERFACE IFullScreenVideoEx
147 DECLARE_INTERFACE_(IFullScreenVideoEx, IFullScreenVideo)
148 {
149         STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID*) PURE;
150         STDMETHOD_(ULONG,AddRef)(THIS) PURE;
151         STDMETHOD_(ULONG,Release)(THIS) PURE;
152         STDMETHOD(CountModes)(THIS_ long*) PURE;
153         STDMETHOD(GetAcceleratorTable)(THIS_ HWND*,HACCEL*) PURE;
154         STDMETHOD(GetCaption)(THIS_ BSTR*) PURE;
155         STDMETHOD(GetClipFactor)(THIS_ long*) PURE;
156         STDMETHOD(GetCurrentMode)(THIS_ long*) PURE;
157         STDMETHOD(GetMessageDrain)(THIS_ HWND*) PURE;
158         STDMETHOD(GetModeInfo)(THIS_ long,long*,long*,long*) PURE;
159         STDMETHOD(GetMonitor)(THIS_ long*) PURE;
160         STDMETHOD(HideOnDeactivate)(THIS_ long) PURE;
161         STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
162         STDMETHOD(IsKeepPixelAspectRatio)(THIS_ long*) PURE;
163         STDMETHOD(IsModeAvailable)(THIS_ long) PURE;
164         STDMETHOD(IsModeEnabled)(THIS_ long) PURE;
165         STDMETHOD(KeepPixelAspectRatio)(THIS_ long) PURE;
166         STDMETHOD(SetAcceleratorTable)(THIS_ HWND,HACCEL) PURE;
167         STDMETHOD(SetCaption)(THIS_ BSTR) PURE;
168         STDMETHOD(SetClipFactor)(THIS_ long) PURE;
169         STDMETHOD(SetDefault)(THIS) PURE;
170         STDMETHOD(SetEnabled)(THIS_ long,long) PURE;
171         STDMETHOD(SetMessageDrain)(THIS_ HWND) PURE;
172         STDMETHOD(SetMonitor)(THIS_ long) PURE;
173 };
174 #undef INTERFACE
175
176 #ifdef __cplusplus
177 }
178 #endif
179 #endif