| 1 |
//------------------------------------------------------------------------------
|
| 2 |
// File: IL21Dec.h
|
| 3 |
//
|
| 4 |
// Desc: Line 21 Decoder related definitions and interfaces for ActiveMovie.
|
| 5 |
//
|
| 6 |
// Copyright (c) 1992 - 2000, Microsoft Corporation. All rights reserved.
|
| 7 |
//------------------------------------------------------------------------------
|
| 8 |
|
| 9 |
|
| 10 |
#ifndef __IL21DEC__
|
| 11 |
#define __IL21DEC__
|
| 12 |
|
| 13 |
|
| 14 |
//
|
| 15 |
// Some enum data types used as line 21 decoder params by the interface
|
| 16 |
//
|
| 17 |
typedef enum _AM_LINE21_CCLEVEL { // should we use TC1, TC2 in stead?
|
| 18 |
AM_L21_CCLEVEL_TC2 = 0
|
| 19 |
} AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL ;
|
| 20 |
|
| 21 |
typedef enum _AM_LINE21_CCSERVICE {
|
| 22 |
AM_L21_CCSERVICE_None = 0,
|
| 23 |
AM_L21_CCSERVICE_Caption1,
|
| 24 |
AM_L21_CCSERVICE_Caption2,
|
| 25 |
AM_L21_CCSERVICE_Text1,
|
| 26 |
AM_L21_CCSERVICE_Text2,
|
| 27 |
AM_L21_CCSERVICE_XDS,
|
| 28 |
AM_L21_CCSERVICE_DefChannel = 10,
|
| 29 |
AM_L21_CCSERVICE_Invalid
|
| 30 |
} AM_LINE21_CCSERVICE, *PAM_LINE21_CCSERVICE ;
|
| 31 |
|
| 32 |
typedef enum _AM_LINE21_CCSTATE {
|
| 33 |
AM_L21_CCSTATE_Off = 0,
|
| 34 |
AM_L21_CCSTATE_On
|
| 35 |
} AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE ;
|
| 36 |
|
| 37 |
typedef enum _AM_LINE21_CCSTYLE {
|
| 38 |
AM_L21_CCSTYLE_None = 0,
|
| 39 |
AM_L21_CCSTYLE_PopOn,
|
| 40 |
AM_L21_CCSTYLE_PaintOn,
|
| 41 |
AM_L21_CCSTYLE_RollUp
|
| 42 |
} AM_LINE21_CCSTYLE, *PAM_LINE21_CCSTYLE ;
|
| 43 |
|
| 44 |
typedef enum _AM_LINE21_DRAWBGMODE {
|
| 45 |
AM_L21_DRAWBGMODE_Opaque,
|
| 46 |
AM_L21_DRAWBGMODE_Transparent
|
| 47 |
} AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE ;
|
| 48 |
|
| 49 |
|
| 50 |
#ifdef __cplusplus
|
| 51 |
extern "C" {
|
| 52 |
#endif // __cplusplus
|
| 53 |
|
| 54 |
//
|
| 55 |
// Line 21 Decoder standard COM interface
|
| 56 |
//
|
| 57 |
DECLARE_INTERFACE_(IAMLine21Decoder, IUnknown)
|
| 58 |
{
|
| 59 |
public:
|
| 60 |
//
|
| 61 |
// Decoder options to be used by apps
|
| 62 |
//
|
| 63 |
|
| 64 |
// What is the decoder's level
|
| 65 |
STDMETHOD(GetDecoderLevel)(THIS_ AM_LINE21_CCLEVEL *lpLevel) PURE ;
|
| 66 |
// supported level value is AM_L21Level_TC2 only
|
| 67 |
// skipping the SetDecoderLevel( )
|
| 68 |
|
| 69 |
// Which of the services is being currently used
|
| 70 |
STDMETHOD(GetCurrentService)(THIS_ AM_LINE21_CCSERVICE *lpService) PURE ;
|
| 71 |
STDMETHOD(SetCurrentService)(THIS_ AM_LINE21_CCSERVICE Service) PURE ;
|
| 72 |
// supported service values are AM_L21Service_Caption1,
|
| 73 |
// AM_L21Service_Caption2, AM_L21Service_Text1, AM_L21Service_Text2,
|
| 74 |
// AM_L21Service_XDS, AM_L21Service_None)
|
| 75 |
|
| 76 |
// Query/Set the service state (On/Off)
|
| 77 |
// supported state values are AM_L21State_On and AM_L21State_Off
|
| 78 |
STDMETHOD(GetServiceState)(THIS_ AM_LINE21_CCSTATE *lpState) PURE ;
|
| 79 |
STDMETHOD(SetServiceState)(THIS_ AM_LINE21_CCSTATE State) PURE ;
|
| 80 |
|
| 81 |
//
|
| 82 |
// Output options to be used by downstream filters
|
| 83 |
//
|
| 84 |
|
| 85 |
// What size, bitdepth etc should the output video be
|
| 86 |
STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
|
| 87 |
// GetOutputFormat() method, if successful, returns
|
| 88 |
// 1. S_FALSE if no output format has so far been defined by downstream filters
|
| 89 |
// 2. S_OK if an output format has already been defined by downstream filters
|
| 90 |
STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
|
| 91 |
|
| 92 |
// Specify physical color to be used in colorkeying the background
|
| 93 |
// for overlay mixing
|
| 94 |
STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
|
| 95 |
STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
|
| 96 |
|
| 97 |
// Specify if whole output bitmap should be redrawn for each sample
|
| 98 |
STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
|
| 99 |
STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
|
| 100 |
|
| 101 |
// Specify if the caption text background should be opaque/transparent
|
| 102 |
STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE *lpMode) PURE ;
|
| 103 |
STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE Mode) PURE ;
|
| 104 |
// supported mode values are AM_L21_DrawBGMode_Opaque and
|
| 105 |
// AM_L21_DrawBGMode_Transparent
|
| 106 |
|
| 107 |
} ;
|
| 108 |
|
| 109 |
#ifdef __cplusplus
|
| 110 |
}
|
| 111 |
#endif // __cplusplus
|
| 112 |
#endif // __IL21DEC__
|