ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

amvideo.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2003 Robert Shearman
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 import "objidl.idl";
00020 
00021 /* trick widl into thinking that it knows the DirectDraw types 
00022  * as there is no IDL file for them (yet) */
00023 cpp_quote("#if 0")
00024 typedef void * LPDIRECTDRAW;
00025 typedef void DDSURFACEDESC,DDCAPS;
00026 typedef DWORD RGBQUAD;
00027 typedef LONGLONG REFERENCE_TIME;
00028 typedef struct
00029 {
00030     DWORD   biSize;
00031     LONG    biWidth;
00032     LONG    biHeight;
00033     WORD    biPlanes;
00034     WORD    biBitCount;
00035     DWORD   biCompression;
00036     DWORD   biSizeImage;
00037     LONG    biXPelsPerMeter;
00038     LONG    biYPelsPerMeter;
00039     DWORD   biClrUsed;
00040     DWORD   biClrImportant;
00041 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
00042 cpp_quote("#endif")
00043 
00044 cpp_quote("#include <ddraw.h>")
00045 
00046 cpp_quote("#define AMDDS_NONE 0x00")
00047 cpp_quote("#define AMDDS_DCIPS 0x01")
00048 cpp_quote("#define AMDDS_PS 0x02")
00049 cpp_quote("#define AMDDS_RGBOVR 0x04")
00050 cpp_quote("#define AMDDS_YUVOVR 0x08")
00051 cpp_quote("#define AMDDS_RGBOFF 0x10")
00052 cpp_quote("#define AMDDS_YUVOFF 0x20")
00053 cpp_quote("#define AMDDS_RGBFLP 0x40")
00054 cpp_quote("#define AMDDS_YUVFLP 0x80")
00055 cpp_quote("#define AMDDS_ALL 0xFF")
00056 cpp_quote("#define AMDDS_DEFAULT AMDDS_ALL")
00057 
00058 cpp_quote("#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)")
00059 cpp_quote("#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)")
00060 cpp_quote("#define AMDSS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)")
00061 
00062 [
00063     object,
00064     uuid(36d39eb0-dd75-11ce-bf0e-00aa0055595a),
00065     pointer_default(unique),
00066     local
00067 ]
00068 interface IDirectDrawVideo : IUnknown
00069 {
00070     HRESULT GetSwitches([out] DWORD * pSwitches);
00071     HRESULT SetSwitches([in] DWORD Switches);
00072     HRESULT GetCaps([out] DDCAPS * pCaps);
00073     HRESULT GetEmulatedCaps([out] DDCAPS *pCaps);
00074     HRESULT GetSurfaceDesc([out] DDSURFACEDESC * pSurfaceDesc);
00075     HRESULT GetFourCCCodes([out] DWORD * pCount, [out] DWORD * pCodes);
00076     HRESULT SetDirectDraw([in] LPDIRECTDRAW pDirectDraw);
00077     HRESULT GetDirectDraw([out] LPDIRECTDRAW * ppDirectDraw);
00078     HRESULT GetSurfaceType([out] DWORD * pSurfaceType);
00079     HRESULT SetDefault();
00080     HRESULT UseScanLine([in] long UseScanLine);
00081     HRESULT CanUseScanLine([out] long * UseScanLine);
00082     HRESULT UseOverlayStretch([in] long UseOverlayStretch);
00083     HRESULT CanUseOverlayStretch([out] long * UseOverlayStretch);
00084     HRESULT UseWhenFullScreen([in] long UseWhenFullScreen);
00085     HRESULT WillUseFullScreen([out] long * UseWhenFullScreen);
00086 }
00087 
00088 [
00089     object,
00090     uuid(1bd0ecb0-f8e2-11ce-aac6-0020af0b99a3),
00091     pointer_default(unique),
00092     local
00093 ]
00094 interface IQualProp : IUnknown
00095 {
00096     [propget] HRESULT FramesDroppedInRenderer([out] int * pcFrames);
00097     [propget] HRESULT FramesDrawn([out] int * pcFramesDrawn);
00098     [propget] HRESULT AvgFrameRate([out] int * piAvgFrameRate);
00099     [propget] HRESULT Jitter([out] int * iJitter);
00100     [propget] HRESULT AvgSyncOffset([out] int * piAvg);
00101     [propget] HRESULT DevSyncOffset([out] int * piDev);
00102 }
00103 
00104 [
00105     object,
00106     uuid(dd1d7110-7836-11cf-bf47-00aa0055595a),
00107     pointer_default(unique)
00108 ]
00109 interface IFullScreenVideo : IUnknown
00110 {
00111     HRESULT CountModes([out] long * pModes);
00112     HRESULT GetModeInfo([in] long Mode, [out] long * pWidth, [out] long * pHeight, [out] long * pDepth);
00113     HRESULT GetCurrentMode([out] long * pMode);
00114     HRESULT IsModeAvailable([in] long Mode);
00115     HRESULT IsModeEnabled([in] long Mode);
00116     HRESULT SetEnabled([in] long Mode, [in] long bEnabled);
00117     HRESULT GetClipFactor([out] long * pClipFactor);
00118     HRESULT SetClipFactor([in] long ClipFactor);
00119     HRESULT SetMessageDrain([in] HWND hwnd);
00120     HRESULT GetMessageDrain([out] HWND * hwnd);
00121     HRESULT SetMonitor([in] long Monitor);
00122     HRESULT GetMonitor([out] long * Monitor);
00123     HRESULT HideOnDeactivate([in] long Hide);
00124     HRESULT IsHideOnDeactivate();
00125     HRESULT SetCaption([in] BSTR strCaption);
00126     HRESULT GetCaption([out] BSTR * pstrCaption);
00127     HRESULT SetDefault();
00128 }
00129 
00130 [
00131     object,
00132     uuid(53479470-f1dd-11cf-bc42-00aa00ac74f6),
00133     pointer_default(unique),
00134     local
00135 ]
00136 interface IFullScreenVideoEx : IFullScreenVideo
00137 {
00138     HRESULT SetAcceleratorTable([in] HWND hwnd, [in] HACCEL hAccel);
00139     HRESULT GetAcceleratorTable([out] HWND * phwnd, [out] HACCEL * phAccel);
00140     HRESULT KeepPixelAspectRatio([in] long KeepAspect);
00141     /* FIXME: not sure is this next method is an [out] */
00142     HRESULT IsKeepPixelAspectRatio([out] long * pKeepAspect);
00143 }
00144 
00145 [
00146     object,
00147     uuid(61ded640-e912-11ce-a099-00aa00479a58),
00148     pointer_default(unique),
00149     local
00150 ]
00151 interface IBaseVideoMixer : IUnknown
00152 {
00153     HRESULT SetLeadPin([in] int iPin);
00154     HRESULT GetLeadPin([out] int * piPin);
00155     HRESULT GetInputPinCount([out] int * piPinCount);
00156     HRESULT IsUsingClock([out] int * pbValue);
00157     HRESULT SetUsingClock([in] int bValue);
00158     HRESULT GetClockPeriod([out] int * pbValue);
00159     HRESULT SetClockPeriod([in] int bValue);
00160 }
00161 
00162 #define iPALETTE_COLORS 256
00163 #define iMASK_COLORS 3
00164 
00165 cpp_quote("#define iPALETTE_COLORS 256")
00166 cpp_quote("#define iEGA_COLORS 16")
00167 cpp_quote("#define iMASK_COLORS 3")
00168 cpp_quote("#define iTRUECOLOR 16")
00169 cpp_quote("#define iRED 0")
00170 cpp_quote("#define iGREEN 1")
00171 cpp_quote("#define iBLUE 2")
00172 cpp_quote("#define iPALETTE 8")
00173 cpp_quote("#define iMAXBITS 8")
00174 
00175 typedef struct tag_TRUECOLORINFO
00176 {
00177     DWORD dwBitMasks[iMASK_COLORS];
00178     RGBQUAD bmiColors[iPALETTE_COLORS];
00179 } TRUECOLORINFO;
00180 
00181 typedef struct tagVIDEOINFOHEADER
00182 {
00183     RECT rcSource;
00184     RECT rcTarget;
00185     DWORD dwBitRate;
00186     DWORD dwBitErrorRate;
00187     REFERENCE_TIME AvgTimePerFrame;
00188 
00189     BITMAPINFOHEADER bmiHeader;
00190 } VIDEOINFOHEADER;
00191 
00192 typedef struct tagVIDEOINFO
00193 {
00194     RECT rcSource;
00195     RECT rcTarget;
00196     DWORD dwBitRate;
00197     DWORD dwBitErrorRate;
00198     REFERENCE_TIME AvgTimePerFrame;
00199 
00200     BITMAPINFOHEADER bmiHeader;
00201 
00202     union
00203     {
00204         RGBQUAD bmiColors[iPALETTE_COLORS];
00205         DWORD dwBitMasks[iMASK_COLORS];
00206         TRUECOLORINFO TrueColorInfo;
00207     } DUMMYUNIONNAME;
00208 } VIDEOINFO;
00209 
00210 typedef struct tagMPEG1VIDEOINFO
00211 {
00212     VIDEOINFOHEADER hdr;
00213     DWORD dwStartTimeCode;
00214     DWORD cbSequenceHeader;
00215     BYTE bSequenceHeader[1];
00216 } MPEG1VIDEOINFO;
00217 
00218 cpp_quote("#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140")
00219 cpp_quote("#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)")
00220 
00221 typedef struct tagAnalogVideoInfo
00222 {
00223     RECT rcSource;
00224     RECT rcTarget;
00225     DWORD dwActiveWidth;
00226     DWORD dwActiveHeight;
00227     REFERENCE_TIME AvgTimePerFrame;
00228 } ANALOGVIDEOINFO;
00229 
00230 typedef enum
00231 {
00232     AM_PROPERTY_FRAMESTEP_STEP = 0x01,
00233     AM_PROPERTY_FRAMESTEP_CANCEL = 0x02,
00234     AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03,
00235     AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04
00236 } AM_PROPERTY_FRAMESTEP;
00237 
00238 typedef struct _AM_FRAMESTEP_STEP
00239 {
00240     DWORD dwFramesToStep;
00241 } AM_FRAMESTEP_STEP;

Generated on Sun May 27 2012 04:30:34 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.