You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
4.6 KiB
163 lines
4.6 KiB
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Name: IPConfaudt.h
|
|
//
|
|
// Description: Definition of the CIPConfAudioCaptureTerminal class and
|
|
// CIPConfAudioRenderTerminal class
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _IPConfAUDT_H_
|
|
#define _IPConfAUDT_H_
|
|
|
|
// the volume range for the API.
|
|
const long MIN_VOLUME = 0;
|
|
const long MAX_VOLUME = 0xFFFF;
|
|
|
|
const long BALANCE_LEFT = -100;
|
|
const long BALANCE_RIGHT = 100;
|
|
|
|
const long BOOST_FACTOR = 100;
|
|
|
|
// the volume range of the IAMInputMixer
|
|
const double MIXER_MIN_VOLUME = 0.0;
|
|
const double MIXER_MAX_VOLUME = 1.0;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CIPConfAudioCaptureTerminal
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
const DWORD AUDIO_CAPTURE_FILTER_NUMPINS = 1;
|
|
|
|
class CIPConfAudioCaptureTerminal :
|
|
public IDispatchImpl<ITBasicAudioTerminal, &__uuidof(ITBasicAudioTerminal), &LIBID_TAPI3Lib>,
|
|
public IDispatchImpl<ITStaticAudioTerminal, &__uuidof(ITStaticAudioTerminal), &LIBID_TAPI3Lib>,
|
|
public CIPConfBaseTerminal
|
|
{
|
|
|
|
BEGIN_COM_MAP(CIPConfAudioCaptureTerminal)
|
|
COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
|
|
COM_INTERFACE_ENTRY(ITStaticAudioTerminal)
|
|
COM_INTERFACE_ENTRY_CHAIN(CIPConfBaseTerminal)
|
|
END_COM_MAP()
|
|
|
|
public:
|
|
CIPConfAudioCaptureTerminal();
|
|
|
|
virtual ~CIPConfAudioCaptureTerminal();
|
|
|
|
static HRESULT CreateTerminal(
|
|
IN AudioDeviceInfo *pAudioDevieInfo,
|
|
IN MSP_HANDLE htAddress,
|
|
OUT ITTerminal **ppTerm
|
|
);
|
|
|
|
HRESULT Initialize (
|
|
IN AudioDeviceInfo *pAudioDevieInfo,
|
|
IN MSP_HANDLE htAddress
|
|
);
|
|
|
|
STDMETHODIMP DisconnectTerminal(
|
|
IN IGraphBuilder * pGraph,
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
// ITBasicAudioTerminal
|
|
STDMETHOD(get_Balance)(OUT long *pVal);
|
|
STDMETHOD(put_Balance)(IN long newVal);
|
|
STDMETHOD(get_Volume) (OUT long *pVal);
|
|
STDMETHOD(put_Volume) (IN long newVal);
|
|
|
|
// ITStaticAudioTerminal
|
|
STDMETHOD(get_WaveId) (OUT long * plWaveId);
|
|
|
|
protected:
|
|
|
|
HRESULT CreateFilter();
|
|
DWORD GetNumExposedPins() const
|
|
{
|
|
return AUDIO_CAPTURE_FILTER_NUMPINS;
|
|
}
|
|
|
|
HRESULT GetExposedPins(
|
|
IN IPin ** ppPins,
|
|
IN DWORD dwNumPins
|
|
);
|
|
|
|
protected:
|
|
UINT m_WaveID;
|
|
GUID m_DSoundGuid;
|
|
|
|
IAMAudioInputMixer * m_pIAMAudioInputMixer;
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CIPConfAudioRenderTerminal
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
const DWORD AUDIO_RENDER_FILTER_NUMPINS = 5;
|
|
|
|
class CIPConfAudioRenderTerminal :
|
|
public IDispatchImpl<ITBasicAudioTerminal, &__uuidof(ITBasicAudioTerminal), &LIBID_TAPI3Lib>,
|
|
public IDispatchImpl<ITStaticAudioTerminal, &__uuidof(ITStaticAudioTerminal), &LIBID_TAPI3Lib>,
|
|
public CIPConfBaseTerminal
|
|
{
|
|
|
|
BEGIN_COM_MAP(CIPConfAudioRenderTerminal)
|
|
COM_INTERFACE_ENTRY(ITBasicAudioTerminal)
|
|
COM_INTERFACE_ENTRY(ITStaticAudioTerminal)
|
|
COM_INTERFACE_ENTRY_CHAIN(CIPConfBaseTerminal)
|
|
END_COM_MAP()
|
|
|
|
public:
|
|
CIPConfAudioRenderTerminal();
|
|
|
|
virtual ~CIPConfAudioRenderTerminal();
|
|
|
|
static HRESULT CreateTerminal(
|
|
IN AudioDeviceInfo *pAudioDevieInfo,
|
|
IN MSP_HANDLE htAddress,
|
|
OUT ITTerminal **ppTerm
|
|
);
|
|
|
|
HRESULT Initialize (
|
|
IN AudioDeviceInfo *pAudioDevieInfo,
|
|
IN MSP_HANDLE htAddress
|
|
);
|
|
|
|
STDMETHODIMP DisconnectTerminal(
|
|
IN IGraphBuilder * pGraph,
|
|
IN DWORD dwReserved
|
|
);
|
|
|
|
// ITBasicAudioTerminal
|
|
STDMETHOD(get_Balance)(OUT long *pVal);
|
|
STDMETHOD(put_Balance)(IN long newVal);
|
|
STDMETHOD(get_Volume) (OUT long *pVal);
|
|
STDMETHOD(put_Volume) (IN long newVal);
|
|
|
|
// ITStaticAudioTerminal
|
|
STDMETHOD(get_WaveId) (OUT long * plWaveId);
|
|
|
|
protected:
|
|
|
|
HRESULT CreateFilter();
|
|
DWORD GetNumExposedPins() const
|
|
{
|
|
return AUDIO_RENDER_FILTER_NUMPINS;
|
|
}
|
|
|
|
HRESULT GetExposedPins(
|
|
IN IPin ** ppPins,
|
|
IN DWORD dwNumPins
|
|
);
|
|
protected:
|
|
UINT m_WaveID;
|
|
GUID m_DSoundGuid;
|
|
|
|
IBasicAudio * m_pIBasicAudio;
|
|
};
|
|
|
|
#endif // _IPConfAUDT_H_
|
|
|
|
// eof
|