il21dec.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
源码类别:

模拟服务器

开发平台:

C/C++

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