home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / il21dec.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  4.2 KB  |  119 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. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  16. #define __IL21DEC__
  17.  
  18.  
  19. //
  20. //  Some enum data types used as line 21 decoder params by the interface
  21. //
  22. typedef enum _AM_LINE21_CCLEVEL {  // should we use TC1, TC2 in stead?
  23.     AM_L21_CCLEVEL_TC2 = 0
  24. } AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL ;
  25.  
  26. typedef enum _AM_LINE21_CCSERVICE {
  27.     AM_L21_CCSERVICE_None = 0,
  28.     AM_L21_CCSERVICE_Caption1,
  29.     AM_L21_CCSERVICE_Caption2,
  30.     AM_L21_CCSERVICE_Text1,
  31.     AM_L21_CCSERVICE_Text2,
  32.     AM_L21_CCSERVICE_XDS,
  33.     AM_L21_CCSERVICE_DefChannel = 10,
  34.     AM_L21_CCSERVICE_Invalid
  35. } AM_LINE21_CCSERVICE, *PAM_LINE21_CCSERVICE ;
  36.  
  37. typedef enum _AM_LINE21_CCSTATE {
  38.     AM_L21_CCSTATE_Off = 0,
  39.     AM_L21_CCSTATE_On
  40. } AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE ;
  41.  
  42. typedef enum _AM_LINE21_CCSTYLE {
  43.     AM_L21_CCSTYLE_None = 0,
  44.     AM_L21_CCSTYLE_PopOn,
  45.     AM_L21_CCSTYLE_PaintOn,
  46.     AM_L21_CCSTYLE_RollUp
  47. } AM_LINE21_CCSTYLE, *PAM_LINE21_CCSTYLE ;
  48.  
  49. typedef enum _AM_LINE21_DRAWBGMODE {
  50.     AM_L21_DRAWBGMODE_Opaque,
  51.     AM_L21_DRAWBGMODE_Transparent
  52. } AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE ;
  53.  
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif // __cplusplus
  58.  
  59. //
  60. //  Line 21 Decoder standard COM interface
  61. //
  62. DECLARE_INTERFACE_(IAMLine21Decoder, IUnknown)
  63. {
  64.     public:
  65.         //
  66.         // Decoder options to be used by apps
  67.         //
  68.  
  69.         // What is the decoder's level
  70.         STDMETHOD(GetDecoderLevel)(THIS_ AM_LINE21_CCLEVEL *lpLevel) PURE ;  
  71.         // supported level value is AM_L21Level_TC2 only
  72.         // skipping the SetDecoderLevel( )
  73.  
  74.         // Which of the services is being currently used
  75.         STDMETHOD(GetCurrentService)(THIS_ AM_LINE21_CCSERVICE *lpService) PURE ;  
  76.         STDMETHOD(SetCurrentService)(THIS_ AM_LINE21_CCSERVICE Service) PURE ;  
  77.         // supported service values are AM_L21Service_Caption1, 
  78.         // AM_L21Service_Caption2, AM_L21Service_Text1, AM_L21Service_Text2, 
  79.         // AM_L21Service_XDS, AM_L21Service_None)
  80.  
  81.         // Query/Set the service state (On/Off)
  82.         // supported state values are AM_L21State_On and AM_L21State_Off
  83.         STDMETHOD(GetServiceState)(THIS_ AM_LINE21_CCSTATE *lpState) PURE ;  
  84.         STDMETHOD(SetServiceState)(THIS_ AM_LINE21_CCSTATE State) PURE ;  
  85.  
  86.         //
  87.         // Output options to be used by downstream filters
  88.         //
  89.  
  90.         // What size, bitdepth etc should the output video be
  91.         STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
  92.         // GetOutputFormat() method, if successful, returns 
  93.         // 1.  S_FALSE if no output format has so far been defined by downstream filters
  94.         // 2.  S_OK if an output format has already been defined by downstream filters
  95.         STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
  96.  
  97.         // Specify physical color to be used in colorkeying the background 
  98.         // for overlay mixing
  99.         STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
  100.         STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
  101.  
  102.         // Specify if whole output bitmap should be redrawn for each sample
  103.         STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
  104.         STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
  105.  
  106.         // Specify if the caption text background should be opaque/transparent
  107.         STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE *lpMode) PURE ;
  108.         STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_LINE21_DRAWBGMODE Mode) PURE ;
  109.         // supported mode values are AM_L21_DrawBGMode_Opaque and
  110.         // AM_L21_DrawBGMode_Transparent
  111.  
  112. } ;
  113.  
  114. #ifdef __cplusplus
  115. }
  116. #endif // __cplusplus
  117. #pragma option pop /*P_O_Pop*/
  118. #endif // __IL21DEC__
  119.