home *** CD-ROM | disk | FTP | other *** search
- //==========================================================================;
- //
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
- // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
- // PURPOSE.
- //
- // Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
- //
- //--------------------------------------------------------------------------;
-
- // Line 21 Decoder related definitions and interfaces for ActiveMovie
-
- #ifndef __IL21DEC__
- #pragma option push -b -a8 -pc -A- /*P_O_Push*/
- #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
- #pragma option pop /*P_O_Pop*/
- #endif // __IL21DEC__
-