home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / C_C++ / BorlandCompiler / freecommandLinetools.exe / Include / msptrmac.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-27  |  2.5 KB  |  100 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. //        Copyright (c) 1998-1999  Microsoft Corporation
  4. //
  5. //        Name: tmaudcap.h
  6. //
  7. // Description: Definition of the CAudioCaptureTerminal class
  8. //
  9. ///////////////////////////////////////////////////////////////////////////////
  10.  
  11. #ifndef _MSPTRMAC_H_
  12. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  13. #define _MSPTRMAC_H_
  14.  
  15. #define WAVEIN_NAME L"WaveIn Terminal"
  16.  
  17. /////////////////////////////////////////////////////////////////////////////
  18. // CAudioCaptureTerminal
  19.  
  20. class CAudioCaptureTerminal : 
  21.     public IDispatchImpl<ITBasicAudioTerminal, &IID_ITBasicAudioTerminal, &LIBID_TAPI3Lib>, 
  22.     public CSingleFilterTerminal
  23. {
  24.  
  25. BEGIN_COM_MAP(CAudioCaptureTerminal)
  26.     COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
  27.     COM_INTERFACE_ENTRY_CHAIN(CSingleFilterTerminal)
  28. END_COM_MAP()
  29.  
  30. DECLARE_VQI()
  31. DECLARE_LOG_ADDREF_RELEASE(CAudioCaptureTerminal)
  32.  
  33. public:
  34.     CAudioCaptureTerminal();
  35.     virtual ~CAudioCaptureTerminal();
  36.  
  37.     static HRESULT CreateTerminal(
  38.         IN    CComPtr<IMoniker>    pMoniker,
  39.         IN    MSP_HANDLE           htAddress,
  40.         OUT   ITTerminal         **ppTerm
  41.         );
  42.  
  43.     HRESULT FindTerminalPin();
  44.  
  45. // ITBasicAudioTerminal
  46. public:
  47.  
  48.     STDMETHOD(get_Balance)(OUT  long *pVal);
  49.     STDMETHOD(put_Balance)(IN   long newVal);
  50.     STDMETHOD(get_Volume) (OUT  long *pVal);
  51.     STDMETHOD(put_Volume) (IN   long newVal);
  52.  
  53. public:
  54.  
  55.     // public because CreateTerminal accesses it
  56.     CComPtr<IMoniker> m_pMoniker;
  57.  
  58.     // CBaseTerminal overrides 
  59.  
  60.     STDMETHODIMP CompleteConnectTerminal(void);
  61.  
  62.     STDMETHODIMP DisconnectTerminal(
  63.             IN      IGraphBuilder  * pGraph,
  64.             IN      DWORD            dwReserved
  65.             );
  66.  
  67.     virtual HRESULT AddFiltersToGraph();
  68.  
  69.     virtual DWORD GetSupportedMediaTypes(void)
  70.     {
  71.         return (DWORD) TAPIMEDIATYPE_AUDIO;
  72.     }
  73.  
  74.     // Helper methods.
  75.     HRESULT CreateFilters();
  76.  
  77.     // checks if the filters need to be created
  78.     inline HRESULT CreateFiltersIfRequired();
  79.  
  80. private:
  81.     bool m_bResourceReserved; // keeps track of whether we need to unreserve WaveOut
  82.     CComPtr<IAMAudioInputMixer> m_pIAMAudioInputMixer;
  83. };
  84.  
  85.  
  86.     
  87. inline HRESULT
  88. CAudioCaptureTerminal::CreateFiltersIfRequired(
  89.     )
  90. {                                           
  91.     if (m_pIFilter == NULL)   return CreateFilters();          
  92.     
  93.     return S_OK;
  94. }
  95.  
  96. #pragma option pop /*P_O_Pop*/
  97. #endif // _MSPTRMAC_H_
  98.  
  99. // eof
  100.