mingw-5.1.4/win32/include/amvideo.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     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