home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / il21dec.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  4KB  |  117 lines

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