msptrmac.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 _MSPTRMAC_H_
  7. #define _MSPTRMAC_H_
  8. #define WAVEIN_NAME L"WaveIn Terminal"
  9. #ifdef __cplusplus
  10. class CAudioCaptureTerminal : public IDispatchImpl<ITBasicAudioTerminal,&IID_ITBasicAudioTerminal,&LIBID_TAPI3Lib>,public IDispatchImpl<ITStaticAudioTerminal,&IID_ITStaticAudioTerminal,&LIBID_TAPI3Lib>,public CSingleFilterStaticTerminal,public CMSPObjectSafetyImpl
  11. {
  12. BEGIN_COM_MAP(CAudioCaptureTerminal)
  13. COM_INTERFACE_ENTRY(IObjectSafety)
  14. COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
  15. COM_INTERFACE_ENTRY(ITStaticAudioTerminal)
  16. COM_INTERFACE_ENTRY_CHAIN(CSingleFilterStaticTerminal)
  17. END_COM_MAP()
  18. DECLARE_VQI()
  19. DECLARE_LOG_ADDREF_RELEASE(CAudioCaptureTerminal)
  20. public:
  21. CAudioCaptureTerminal();
  22. virtual ~CAudioCaptureTerminal();
  23. static HRESULT CreateTerminal(CComPtr<IMoniker> pMoniker,MSP_HANDLE htAddress,ITTerminal **ppTerm);
  24. HRESULT FindTerminalPin();
  25. public:
  26. STDMETHOD(get_Balance)(__LONG32 *pVal);
  27. STDMETHOD(put_Balance)(__LONG32 newVal);
  28. STDMETHOD(get_Volume) (__LONG32 *pVal);
  29. STDMETHOD(put_Volume) (__LONG32 newVal);
  30. public:
  31. STDMETHOD(get_WaveId) (__LONG32 *plWaveId);
  32. STDMETHODIMP CompleteConnectTerminal(void);
  33. STDMETHODIMP DisconnectTerminal(IGraphBuilder *pGraph,DWORD dwReserved);
  34. virtual HRESULT AddFiltersToGraph();
  35. virtual DWORD GetSupportedMediaTypes(void) { return (DWORD) TAPIMEDIATYPE_AUDIO; }
  36. HRESULT CreateFilters();
  37. inline HRESULT CreateFiltersIfRequired();
  38. private:
  39. bool m_bResourceReserved;
  40. CComPtr<IAMAudioInputMixer> m_pIAMAudioInputMixer;
  41. };
  42. inline HRESULT CAudioCaptureTerminal::CreateFiltersIfRequired() {
  43. if(!m_pIFilter) return CreateFilters();
  44. return S_OK;
  45. }
  46. #endif /* __cplusplus */
  47. #endif