msptrmar.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _MSPTRMAR_H_
  7. #define _MSPTRMAR_H_
  8. #define WAVEOUT_NAME L"WaveOut Terminal"
  9. #define MIXER_NAME L"PCM Mixer"
  10. class CAudioRenderTerminal : public IDispatchImpl<ITBasicAudioTerminal,&IID_ITBasicAudioTerminal,&LIBID_TAPI3Lib>,public IDispatchImpl<ITStaticAudioTerminal,&IID_ITStaticAudioTerminal,&LIBID_TAPI3Lib>,public CSingleFilterStaticTerminal,public CMSPObjectSafetyImpl
  11. {
  12. public:
  13. CAudioRenderTerminal();
  14. virtual ~CAudioRenderTerminal();
  15. HRESULT InitializeDefaultTerminal();
  16. static HRESULT CreateTerminal(CComPtr<IMoniker> pMoniker,MSP_HANDLE htAddress,ITTerminal **ppTerm);
  17. HRESULT FindTerminalPin();
  18. BEGIN_COM_MAP(CAudioRenderTerminal)
  19. COM_INTERFACE_ENTRY(IObjectSafety)
  20. COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
  21. COM_INTERFACE_ENTRY(ITStaticAudioTerminal)
  22. COM_INTERFACE_ENTRY_CHAIN(CSingleFilterStaticTerminal)
  23. END_COM_MAP()
  24. DECLARE_VQI()
  25. DECLARE_LOG_ADDREF_RELEASE(CAudioRenderTerminal)
  26. public:
  27. STDMETHOD(get_Balance)(__LONG32 *pVal);
  28. STDMETHOD(put_Balance)(__LONG32 newVal);
  29. STDMETHOD(get_Volume)(__LONG32 *pVal);
  30. STDMETHOD(put_Volume)(__LONG32 newVal);
  31. STDMETHOD(get_WaveId) (__LONG32 *plWaveId);
  32. public:
  33. STDMETHODIMP CompleteConnectTerminal(void);
  34. STDMETHODIMP DisconnectTerminal(IGraphBuilder *pGraph,DWORD dwReserved);
  35. virtual HRESULT AddFiltersToGraph();
  36. virtual DWORD GetSupportedMediaTypes(void) { return (DWORD) TAPIMEDIATYPE_AUDIO; }
  37. HRESULT CreateFilters();
  38. private:
  39. bool m_bResourceReserved;
  40. CComPtr<IBasicAudio> m_pIBasicAudio;
  41. };
  42. #endif