| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the mingw-w64 runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _MSPTRMAC_H_ | |
| #define _MSPTRMAC_H_ | |
| #define WAVEIN_NAME L"WaveIn Terminal" | |
| #ifdef __cplusplus | |
| class CAudioCaptureTerminal : public IDispatchImpl<ITBasicAudioTerminal,&IID_ITBasicAudioTerminal,&LIBID_TAPI3Lib>,public IDispatchImpl<ITStaticAudioTerminal,&IID_ITStaticAudioTerminal,&LIBID_TAPI3Lib>,public CSingleFilterStaticTerminal,public CMSPObjectSafetyImpl | |
| { | |
| BEGIN_COM_MAP(CAudioCaptureTerminal) | |
| COM_INTERFACE_ENTRY(IObjectSafety) | |
| COM_INTERFACE_ENTRY(ITBasicAudioTerminal) | |
| COM_INTERFACE_ENTRY(ITStaticAudioTerminal) | |
| COM_INTERFACE_ENTRY_CHAIN(CSingleFilterStaticTerminal) | |
| END_COM_MAP() | |
| DECLARE_VQI() | |
| DECLARE_LOG_ADDREF_RELEASE(CAudioCaptureTerminal) | |
| public: | |
| CAudioCaptureTerminal(); | |
| virtual ~CAudioCaptureTerminal(); | |
| static HRESULT CreateTerminal(CComPtr<IMoniker> pMoniker,MSP_HANDLE htAddress,ITTerminal **ppTerm); | |
| HRESULT FindTerminalPin(); | |
| public: | |
| STDMETHOD(get_Balance)(__LONG32 *pVal); | |
| STDMETHOD(put_Balance)(__LONG32 newVal); | |
| STDMETHOD(get_Volume) (__LONG32 *pVal); | |
| STDMETHOD(put_Volume) (__LONG32 newVal); | |
| public: | |
| STDMETHOD(get_WaveId) (__LONG32 *plWaveId); | |
| STDMETHODIMP CompleteConnectTerminal(void); | |
| STDMETHODIMP DisconnectTerminal(IGraphBuilder *pGraph,DWORD dwReserved); | |
| virtual HRESULT AddFiltersToGraph(); | |
| virtual DWORD GetSupportedMediaTypes(void) { return (DWORD) TAPIMEDIATYPE_AUDIO; } | |
| HRESULT CreateFilters(); | |
| inline HRESULT CreateFiltersIfRequired(); | |
| private: | |
| bool m_bResourceReserved; | |
| CComPtr<IAMAudioInputMixer> m_pIAMAudioInputMixer; | |
| }; | |
| inline HRESULT CAudioCaptureTerminal::CreateFiltersIfRequired() { | |
| if(!m_pIFilter) return CreateFilters(); | |
| return S_OK; | |
| } | |
| #endif /* __cplusplus */ | |
| #endif |