Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
3.8 KiB

  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__