diff --git a/reactos/include/dxsdk/DShow.h b/reactos/include/dxsdk/DShow.h new file mode 100644 index 00000000000..a419ecc4e51 --- /dev/null +++ b/reactos/include/dxsdk/DShow.h @@ -0,0 +1,57 @@ + +#ifndef __DSHOW_INCLUDED__ +#define __DSHOW_INCLUDED__ + +#ifdef _MSC_VER + #pragma warning(disable:4100) + #pragma warning(disable:4201) + #pragma warning(disable:4511) + #pragma warning(disable:4512) + #pragma warning(disable:4514) + #if _MSC_VER>=1100 + #define AM_NOVTABLE __declspec(novtable) + #else + #define AM_NOVTABLE + #endif +#endif + +#include +#include +#include +#include +#include + +#ifndef NO_DSHOW_STRSAFE + #define NO_SHLWAPI_STRFCNS +#include +#endif + +#ifndef NUMELMS + #define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0])) +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef InterlockedExchangePointer + #define InterlockedExchangePointer(Target, Value) (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value)) +#endif + +#ifndef OATRUE + #define OATRUE (-1) +#endif + +#ifndef OAFALSE + #define OAFALSE (0) +#endif + +#endif + diff --git a/reactos/include/dxsdk/Iwstdec.h b/reactos/include/dxsdk/Iwstdec.h new file mode 100644 index 00000000000..3b2c3cb5f8a --- /dev/null +++ b/reactos/include/dxsdk/Iwstdec.h @@ -0,0 +1,75 @@ + + +#ifndef __IWSTDEC__ +#define __IWSTDEC__ + +typedef enum _AM_WST_DRAWBGMODE +{ + AM_WST_DRAWBGMODE_Opaque, + AM_WST_DRAWBGMODE_Transparent +} AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE; + +typedef struct _AM_WST_PAGE +{ + DWORD dwPageNr ; + DWORD dwSubPageNr ; + BYTE *pucPageData; +} AM_WST_PAGE, *PAM_WST_PAGE; + +typedef enum _AM_WST_STATE +{ + AM_WST_STATE_Off = 0, + AM_WST_STATE_On +} AM_WST_STATE, *PAM_WST_STATE; + +typedef enum _AM_WST_SERVICE +{ + AM_WST_SERVICE_None = 0, + AM_WST_SERVICE_Text, + AM_WST_SERVICE_IDS, + AM_WST_SERVICE_Invalid +} AM_WST_SERVICE, *PAM_WST_SERVICE; + +typedef enum _AM_WST_STYLE +{ + AM_WST_STYLE_None = 0, + AM_WST_STYLE_Invers +} AM_WST_STYLE, *PAM_WST_STYLE; + +typedef enum _AM_WST_LEVEL +{ + AM_WST_LEVEL_1_5 = 0 +} AM_WST_LEVEL, *PAM_WST_LEVEL; + +#ifdef __cplusplus +extern "C" { +#endif + +DECLARE_INTERFACE_(IAMWstDecoder, IUnknown) +{ + public: + STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE; + STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE; + STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE; + STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ; + STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE; + STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE; + STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE; + STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE; + STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE; + STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE; + STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE; + STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE; + STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE; + STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE; + STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE; + STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE; + STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE; + STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE; +} ; + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/reactos/include/dxsdk/Mpeg2Error.h b/reactos/include/dxsdk/Mpeg2Error.h new file mode 100644 index 00000000000..f50fa28aa45 --- /dev/null +++ b/reactos/include/dxsdk/Mpeg2Error.h @@ -0,0 +1,45 @@ +#pragma once + + +#define MAKE_S_ITF_HRESULT(x) MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_ITF, (x)) +#define MAKE_E_ITF_HRESULT(x) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, (x)) +const unsigned int MPEG2_BASE = 0x200; + +const HRESULT MPEG2_E_UNINITIALIZED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 0); +const HRESULT MPEG2_E_ALREADY_INITIALIZED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 1); +const HRESULT MPEG2_E_OUT_OF_BOUNDS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 2); +const HRESULT MPEG2_E_MALFORMED_TABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 3); +const HRESULT MPEG2_E_UNDEFINED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 4); +const HRESULT MPEG2_E_NOT_PRESENT = MAKE_E_ITF_HRESULT(MPEG2_BASE + 5); +const HRESULT MPEG2_E_SECTION_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 6); +const HRESULT MPEG2_E_TX_STREAM_UNAVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 7); +const HRESULT MPEG2_E_SERVICE_ID_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 8); +const HRESULT MPEG2_E_SERVICE_PMT_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 9); +const HRESULT MPEG2_E_DSI_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 10); +const HRESULT MPEG2_E_SERVER_UNAVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 11); +const HRESULT MPEG2_E_INVALID_CAROUSEL_ID = MAKE_E_ITF_HRESULT(MPEG2_BASE + 12); +const HRESULT MPEG2_E_MALFORMED_DSMCC_MESSAGE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 13); +const HRESULT MPEG2_E_INVALID_SG_OBJECT_KIND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 14); +const HRESULT MPEG2_E_OBJECT_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 15); +const HRESULT MPEG2_E_OBJECT_KIND_NOT_A_DIRECTORY = MAKE_E_ITF_HRESULT(MPEG2_BASE + 16); +const HRESULT MPEG2_E_OBJECT_KIND_NOT_A_FILE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 17); +const HRESULT MPEG2_E_FILE_OFFSET_TOO_BIG = MAKE_E_ITF_HRESULT(MPEG2_BASE + 18); +const HRESULT MPEG2_E_STREAM_STOPPED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 19); +const HRESULT MPEG2_E_REGISTRY_ACCESS_FAILED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 20); +const HRESULT MPEG2_E_INVALID_UDP_PORT = MAKE_E_ITF_HRESULT(MPEG2_BASE + 21); +const HRESULT MPEG2_E_DATA_SOURCE_FAILED = MAKE_E_ITF_HRESULT(MPEG2_BASE + 22); +const HRESULT MPEG2_E_DII_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 23); +const HRESULT MPEG2_E_DSHOW_PIN_NOT_FOUND = MAKE_E_ITF_HRESULT(MPEG2_BASE + 24); +const HRESULT MPEG2_E_BUFFER_TOO_SMALL = MAKE_E_ITF_HRESULT(MPEG2_BASE + 25); +const HRESULT MPEG2_E_MISSING_SECTIONS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 26); +const HRESULT MPEG2_E_TOO_MANY_SECTIONS = MAKE_E_ITF_HRESULT(MPEG2_BASE + 27); +const HRESULT MPEG2_E_NEXT_TABLE_OPS_NOT_AVAILABLE = MAKE_E_ITF_HRESULT(MPEG2_BASE + 28); + +const HRESULT MPEG2_S_MORE_DATA_AVAILABLE = MAKE_S_ITF_HRESULT(MPEG2_BASE + 0); +const HRESULT MPEG2_S_NO_MORE_DATA_AVAILABLE = MAKE_S_ITF_HRESULT(MPEG2_BASE + 1); +const HRESULT MPEG2_S_SG_INFO_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 2); +const HRESULT MPEG2_S_SG_INFO_NOT_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 3); +const HRESULT MPEG2_S_MPE_INFO_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 4); +const HRESULT MPEG2_S_MPE_INFO_NOT_FOUND = MAKE_S_ITF_HRESULT(MPEG2_BASE + 5); +const HRESULT MPEG2_S_NEW_MODULE_VERSION = MAKE_S_ITF_HRESULT(MPEG2_BASE + 6); + diff --git a/reactos/include/dxsdk/amva.h b/reactos/include/dxsdk/amva.h new file mode 100644 index 00000000000..bba599f6475 --- /dev/null +++ b/reactos/include/dxsdk/amva.h @@ -0,0 +1,69 @@ +#ifndef __AMVA_INCLUDED__ +#define __AMVA_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define AMVA_QUERYRENDERSTATUSF_READ 0x00000001 +#define AMVA_TYPEINDEX_OUTPUTFRAME 0xFFFFFFFF + + +typedef struct _tag_AMVABUFFERINFO +{ + DWORD dwTypeIndex; + DWORD dwBufferIndex; + DWORD dwDataOffset; + DWORD dwDataSize; +} AMVABUFFERINFO, *LPAMVABUFFERINFO; + +typedef struct _tag_AMVAInternalMemInfo +{ + DWORD dwScratchMemAlloc; +} AMVAInternalMemInfo, *LPAMVAInternalMemInfo; + +typedef struct _tag_AMVAUncompDataInfo +{ + DWORD dwUncompWidth; + DWORD dwUncompHeight; + DDPIXELFORMAT ddUncompPixelFormat; +} AMVAUncompDataInfo, *LPAMVAUncompDataInfo; + +typedef struct _tag_AMVAUncompBufferInfo +{ + DWORD dwMinNumSurfaces; + DWORD dwMaxNumSurfaces; + DDPIXELFORMAT ddUncompPixelFormat; +} AMVAUncompBufferInfo, *LPAMVAUncompBufferInfo; + +typedef struct _tag_AMVABeginFrameInfo +{ + DWORD dwDestSurfaceIndex; + LPVOID pInputData; + DWORD dwSizeInputData; + LPVOID pOutputData; + DWORD dwSizeOutputData; +} AMVABeginFrameInfo, *LPAMVABeginFrameInfo; + +typedef struct _tag_AMVACompBufferInfo +{ + DWORD dwNumCompBuffers; + DWORD dwWidthToCreate; + DWORD dwHeightToCreate; + DWORD dwBytesToAllocate; + DDSCAPS2 ddCompCaps; + DDPIXELFORMAT ddPixelFormat; +} AMVACompBufferInfo, *LPAMVACompBufferInfo; + +typedef struct _tag_AMVAEndFrameInfo +{ + DWORD dwSizeMiscData; + LPVOID pMiscData; +} AMVAEndFrameInfo, *LPAMVAEndFrameInfo; + + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/reactos/include/dxsdk/dmodshow.h b/reactos/include/dxsdk/dmodshow.h new file mode 100644 index 00000000000..b6a399ed2c1 --- /dev/null +++ b/reactos/include/dxsdk/dmodshow.h @@ -0,0 +1,100 @@ + + +#ifndef __REQUIRED_RPCNDR_H_VERSION__ + #define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ + #error this stub requires an updated version of +#endif + +#ifndef COM_NO_WINDOWS_H + #include "windows.h" + #include "ole2.h" +#endif + +#ifndef __dmodshow_h__ + #define __dmodshow_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) + #pragma once +#endif + +#ifndef __IDMOWrapperFilter_FWD_DEFINED__ + #define __IDMOWrapperFilter_FWD_DEFINED__ + typedef interface IDMOWrapperFilter IDMOWrapperFilter; +#endif + +#include "unknwn.h" +#include "objidl.h" +#include "mediaobj.h" + +#ifdef __cplusplus +extern "C"{ +#endif + +DEFINE_GUID(CLSID_DMOWrapperFilter, 0x94297043,0xBD82,0x4DFD,0xB0,0xDE,0x81,0x77,0x73,0x9C,0x6D,0x20); +DEFINE_GUID(CLSID_DMOFilterCategory,0xBCD5796C,0xBD52,0x4D30,0xAB,0x76,0x70,0xF9,0x75,0xB8,0x91,0x99); + +extern RPC_IF_HANDLE __MIDL_itf_dmodshow_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dmodshow_0000_v0_0_s_ifspec; + +void * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void * ); + +#ifndef __IDMOWrapperFilter_INTERFACE_DEFINED__ + #define __IDMOWrapperFilter_INTERFACE_DEFINED__ + EXTERN_C const IID IID_IDMOWrapperFilter; + #if defined(__cplusplus) && !defined(CINTERFACE) + MIDL_INTERFACE("52D6F586-9F0F-4824-8FC8-E32CA04930C2") + IDMOWrapperFilter : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Init(REFCLSID clsidDMO, REFCLSID catDMO) = 0; + }; + #else + typedef struct IDMOWrapperFilterVtbl + { + BEGIN_INTERFACE + HRESULT ( STDMETHODCALLTYPE *QueryInterface )(IDMOWrapperFilter * This, REFIID riid, void **ppvObject); + ULONG ( STDMETHODCALLTYPE *AddRef )(IDMOWrapperFilter * This); + ULONG ( STDMETHODCALLTYPE *Release )(IDMOWrapperFilter * This); + HRESULT ( STDMETHODCALLTYPE *Init )(IDMOWrapperFilter * This, REFCLSID clsidDMO, REFCLSID catDMO); + END_INTERFACE + } IDMOWrapperFilterVtbl; + + interface IDMOWrapperFilter + { + CONST_VTBL struct IDMOWrapperFilterVtbl *lpVtbl; + }; + + #ifdef COBJMACROS + #define IDMOWrapperFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + #define IDMOWrapperFilter_AddRef(This) (This)->lpVtbl -> AddRef(This) + #define IDMOWrapperFilter_Release(This) (This)->lpVtbl -> Release(This) + #define IDMOWrapperFilter_Init(This,clsidDMO,catDMO) (This)->lpVtbl -> Init(This,clsidDMO,catDMO) + #endif + #endif + +HRESULT STDMETHODCALLTYPE +IDMOWrapperFilter_Init_Proxy( + IDMOWrapperFilter * This, + REFCLSID clsidDMO, + REFCLSID catDMO); + + +void __RPC_STUB + IDMOWrapperFilter_Init_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +#endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/reactos/include/dxsdk/dmoreg.h b/reactos/include/dxsdk/dmoreg.h new file mode 100644 index 00000000000..7fc7af24495 --- /dev/null +++ b/reactos/include/dxsdk/dmoreg.h @@ -0,0 +1,75 @@ +#ifndef __DMOREG_H__ +#define __DMOREG_H__ + +#include "mediaobj.h" + +DEFINE_GUID(DMOCATEGORY_ACOUSTIC_ECHO_CANCEL, 0xBF963D80, 0xC559, 0x11D0, 0x8A, 0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1); +DEFINE_GUID(DMOCATEGORY_AGC, 0xE88C9BA0, 0xC557, 0x11D0, 0x8A, 0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1); +DEFINE_GUID(DMOCATEGORY_AUDIO_CAPTURE_EFFECT, 0xF665AAba, 0x3E09, 0x4920, 0xAA, 0x5F,0x21,0x98,0x11,0x14,0x8F,0x09); +DEFINE_GUID(DMOCATEGORY_AUDIO_DECODER, 0x57F2db8b, 0xE6BB, 0x4513, 0x9D, 0x43,0xDC,0xD2,0xA6,0x59,0x31,0x25); +DEFINE_GUID(DMOCATEGORY_AUDIO_EFFECT, 0xF3602b3f, 0x0592, 0x48DF, 0xA4, 0xCD,0x67,0x47,0x21,0xE7,0xEB,0xEB); +DEFINE_GUID(DMOCATEGORY_AUDIO_ENCODER, 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86); +DEFINE_GUID(DMOCATEGORY_AUDIO_NOISE_SUPPRESS, 0xE07f903f, 0x62FD, 0x4e60, 0x8C, 0xDD,0xDE,0xA7,0x23,0x66,0x65,0xB5); +DEFINE_GUID(DMOCATEGORY_VIDEO_DECODER, 0x4A69b442, 0x28BE, 0x4991, 0x96, 0x9C,0xB5,0x00,0xAD,0xF5,0xd8,0xA8); +DEFINE_GUID(DMOCATEGORY_VIDEO_EFFECT, 0xd990eE14, 0x776C, 0x4723, 0xBE, 0x46,0x3D,0xA2,0xF5,0x6F,0x10,0xB9); +DEFINE_GUID(DMOCATEGORY_VIDEO_ENCODER, 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86); + +typedef struct _DMO_PARTIAL_MEDIATYPE +{ + GUID type; + GUID subtype; +} DMO_PARTIAL_MEDIATYPE, *PDMO_PARTIAL_MEDIATYPE; + +enum DMO_REGISTER_FLAGS +{ + DMO_REGISTERF_IS_KEYED = 0x00000001 +}; + +enum DMO_ENUM_FLAGS +{ + DMO_ENUMF_INCLUDE_KEYED = 0x00000001 +}; + +STDAPI +DMOEnum( + REFGUID guidCategory, + DWORD dwFlags, + DWORD cInTypes, + const DMO_PARTIAL_MEDIATYPE *pInTypes, + DWORD cOutTypes, + const DMO_PARTIAL_MEDIATYPE *pOutTypes, + IEnumDMO **ppEnum); + +STDAPI +DMOGetName( + REFCLSID clsidDMO, + WCHAR szName[80]); + +STDAPI DMOGetTypes( + REFCLSID clsidDMO, + unsigned long ulInputTypesRequested, + unsigned long *pulInputTypesSupplied, + DMO_PARTIAL_MEDIATYPE *pInputTypes, + unsigned long ulOutputTypesRequested, + unsigned long *pulOutputTypesSupplied, + DMO_PARTIAL_MEDIATYPE *pOutputTypes +); + +STDAPI +DMORegister( + LPCWSTR szName, + REFCLSID clsidDMO, + REFGUID guidCategory, + DWORD dwFlags, + DWORD cInTypes, + const DMO_PARTIAL_MEDIATYPE *pInTypes, + DWORD cOutTypes, + const DMO_PARTIAL_MEDIATYPE *pOutTypes); + +STDAPI +DMOUnregister( + REFCLSID clsidDMO, + REFGUID guidCategory); + +#endif + diff --git a/reactos/include/dxsdk/il21dec.h b/reactos/include/dxsdk/il21dec.h new file mode 100644 index 00000000000..f9b269d07e9 --- /dev/null +++ b/reactos/include/dxsdk/il21dec.h @@ -0,0 +1,68 @@ + + +#ifndef __IL21DEC__ +#define __IL21DEC__ + +typedef enum _AM_LINE21_CCSTYLE +{ + AM_L21_CCSTYLE_None = 0, + AM_L21_CCSTYLE_PopOn, + AM_L21_CCSTYLE_PaintOn, + AM_L21_CCSTYLE_RollUp +} AM_LINE21_CCSTYLE, *PAM_LINE21_CCSTYLE; + +typedef enum _AM_LINE21_CCSERVICE +{ + AM_L21_CCSERVICE_None = 0, + AM_L21_CCSERVICE_Caption1, + AM_L21_CCSERVICE_Caption2, + AM_L21_CCSERVICE_Text1, + AM_L21_CCSERVICE_Text2, + AM_L21_CCSERVICE_XDS, + AM_L21_CCSERVICE_DefChannel = 10, + AM_L21_CCSERVICE_Invalid +} AM_LINE21_CCSERVICE, *PAM_LINE21_CCSERVICE; + +typedef enum _AM_LINE21_DRAWBGMODE +{ + AM_L21_DRAWBGMODE_Opaque, + AM_L21_DRAWBGMODE_Transparent +} AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE; + +typedef enum _AM_LINE21_CCSTATE +{ + AM_L21_CCSTATE_Off = 0, + AM_L21_CCSTATE_On +} AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE; + +typedef enum _AM_LINE21_CCLEVEL +{ + AM_L21_CCLEVEL_TC2 = 0 +} AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL; + +#ifdef __cplusplus +extern "C" { +#endif + +DECLARE_INTERFACE_(IAMLine21Decoder, IUnknown) +{ + public: + STDMETHOD(GetDecoderLevel)(THIS_ AM_LINE21_CCLEVEL *lpLevel) PURE; + STDMETHOD(GetCurrentService)(THIS_ AM_LINE21_CCSERVICE *lpService) PURE; + STDMETHOD(SetCurrentService)(THIS_ AM_LINE21_CCSERVICE Service) PURE; + STDMETHOD(GetServiceState)(THIS_ AM_LINE21_CCSTATE *lpState) PURE; + STDMETHOD(SetServiceState)(THIS_ AM_LINE21_CCSTATE State) PURE; + STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE; + STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE; + STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE; + STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE; + STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE; + STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE; + STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE *lpMode) PURE; + STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE Mode) PURE; +} ; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/reactos/include/dxsdk/mpegtype.h b/reactos/include/dxsdk/mpegtype.h new file mode 100644 index 00000000000..6760054c504 --- /dev/null +++ b/reactos/include/dxsdk/mpegtype.h @@ -0,0 +1,53 @@ + +#ifndef __MPEGTYPE__ +#define __MPEGTYPE__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +typedef struct tagAM_MPEGSTREAMTYPE +{ + DWORD dwStreamId; + DWORD dwReserved; + AM_MEDIA_TYPE mt; + BYTE bFormat[1]; +} AM_MPEGSTREAMTYPE; + +typedef struct tagAM_MPEGSYSTEMTYPE +{ + DWORD dwBitRate; + DWORD cStreams; + AM_MPEGSTREAMTYPE Streams[1]; +} AM_MPEGSYSTEMTYPE; + +DECLARE_INTERFACE_(IMpegAudioDecoder, IUnknown) +{ + STDMETHOD(get_FrequencyDivider) (THIS_ unsigned long *pDivider) PURE; + STDMETHOD(put_FrequencyDivider) (THIS_ unsigned long Divider) PURE; + STDMETHOD(get_DecoderAccuracy) (THIS_ unsigned long *pAccuracy) PURE; + STDMETHOD(put_DecoderAccuracy) (THIS_ unsigned long Accuracy) PURE; + STDMETHOD(get_Stereo) (THIS_ unsigned long *pStereo ) PURE; + STDMETHOD(put_Stereo) (THIS_ unsigned long Stereo) PURE; + STDMETHOD(get_DecoderWordSize) (THIS_ unsigned long *pWordSize) PURE; + STDMETHOD(put_DecoderWordSize) (THIS_ unsigned long WordSize) PURE; + STDMETHOD(get_IntegerDecode) (THIS_ unsigned long *pIntDecode) PURE; + STDMETHOD(put_IntegerDecode) (THIS_ unsigned long IntDecode) PURE; + STDMETHOD(get_DualMode) (THIS_ unsigned long *pIntDecode) PURE; + STDMETHOD(put_DualMode) (THIS_ unsigned long IntDecode) PURE; + STDMETHOD(get_AudioFormat) (THIS_ MPEG1WAVEFORMAT *lpFmt) PURE; +}; + +#ifdef +} +#endif +#endif + +#define AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) FIELD_OFFSET(AM_MPEGSTREAMTYPE, bFormat[(pStreamType)->mt.cbFormat]) +#define AM_MPEGSTREAMTYPE_NEXT(pStreamType) ((AM_MPEGSTREAMTYPE *)((PBYTE)(pStreamType) + ((AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) + 7) & ~7))) +#define AM_MPEG_AUDIO_DUAL_MERGE 0 +#define AM_MPEG_AUDIO_DUAL_LEFT 1 +#define AM_MPEG_AUDIO_DUAL_RIGHT 2 +