diff options
Diffstat (limited to 'sdk/dx8sdk/Include/il21dec.h')
-rw-r--r-- | sdk/dx8sdk/Include/il21dec.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/sdk/dx8sdk/Include/il21dec.h b/sdk/dx8sdk/Include/il21dec.h new file mode 100644 index 00000000..a2c7fc67 --- /dev/null +++ b/sdk/dx8sdk/Include/il21dec.h @@ -0,0 +1,112 @@ +//------------------------------------------------------------------------------ +// File: IL21Dec.h +// +// Desc: Line 21 Decoder related definitions and interfaces for ActiveMovie. +// +// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------ + + +#ifndef __IL21DEC__ +#define __IL21DEC__ + + +// +// Some enum data types used as line 21 decoder params by the interface +// +typedef enum _AM_LINE21_CCLEVEL { // should we use TC1, TC2 in stead? + AM_L21_CCLEVEL_TC2 = 0 +} AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL ; + +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_CCSTATE { + AM_L21_CCSTATE_Off = 0, + AM_L21_CCSTATE_On +} AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE ; + +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_DRAWBGMODE { + AM_L21_DRAWBGMODE_Opaque, + AM_L21_DRAWBGMODE_Transparent +} AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE ; + + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +// +// Line 21 Decoder standard COM interface +// +DECLARE_INTERFACE_(IAMLine21Decoder, IUnknown) +{ + public: + // + // Decoder options to be used by apps + // + + // What is the decoder's level + STDMETHOD(GetDecoderLevel)(THIS_ AM_LINE21_CCLEVEL *lpLevel) PURE ; + // supported level value is AM_L21Level_TC2 only + // skipping the SetDecoderLevel( ) + + // Which of the services is being currently used + STDMETHOD(GetCurrentService)(THIS_ AM_LINE21_CCSERVICE *lpService) PURE ; + STDMETHOD(SetCurrentService)(THIS_ AM_LINE21_CCSERVICE Service) PURE ; + // supported service values are AM_L21Service_Caption1, + // AM_L21Service_Caption2, AM_L21Service_Text1, AM_L21Service_Text2, + // AM_L21Service_XDS, AM_L21Service_None) + + // Query/Set the service state (On/Off) + // supported state values are AM_L21State_On and AM_L21State_Off + STDMETHOD(GetServiceState)(THIS_ AM_LINE21_CCSTATE *lpState) PURE ; + STDMETHOD(SetServiceState)(THIS_ AM_LINE21_CCSTATE State) PURE ; + + // + // Output options to be used by downstream filters + // + + // What size, bitdepth, etc. should the output video be + STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ; + // GetOutputFormat() method, if successful, returns + // 1. S_FALSE if no output format has so far been defined by downstream filters + // 2. S_OK if an output format has already been defined by downstream filters + STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ; + + // Specify physical color to be used in colorkeying the background + // for overlay mixing + STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ; + STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ; + + // Specify if whole output bitmap should be redrawn for each sample + STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ; + STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ; + + // Specify if the caption text background should be opaque/transparent + STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE *lpMode) PURE ; + STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE Mode) PURE ; + // supported mode values are AM_L21_DrawBGMode_Opaque and + // AM_L21_DrawBGMode_Transparent + +} ; + +#ifdef __cplusplus +} +#endif // __cplusplus +#endif // __IL21DEC__ |