📄 hxausvc.h
字号:
DECLARE_INTERFACE_(IHXAudioPushdown, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioPushdown methods
*/
/************************************************************************
* Method:
* IHXAudioPushdown::SetAudioPushdown
* Purpose:
* Use this to set the minimum audio pushdown value in ms.
* This is the amount of audio data that is being written
* to the audio device before starting playback.
*/
STDMETHOD(SetAudioPushdown) (THIS_
UINT32 /*IN*/ ulAudioPushdown
) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioHookManager
*
* Purpose:
*
* This interface can be used to add a hook at the audio device layer.
*
* IID_IHXAudioHookManager:
*
* {0000070E-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioHookManager, 0x0000070E, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioHookManager
DECLARE_INTERFACE_(IHXAudioHookManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioHookManager methods
*/
/************************************************************************
* Method:
* IHXAudioHookManager::AddHook
* Purpose:
* Use this to add a hook
*/
STDMETHOD(AddHook) (THIS_
IHXAudioHook* /*IN*/ pHook
) PURE;
/************************************************************************
* Method:
* IHXAudioHookManager::RemoveHook
* Purpose:
* Use this to remove a hook
*/
STDMETHOD(RemoveHook) (THIS_
IHXAudioHook* /*IN*/ pHook
) PURE;
};
// $Private:
/****************************************************************************
*
* Interface:
*
* IHXMultiPlayPauseSupport
*
* Purpose:
*
* This interface can be used to control whether audio services handles multi-player pause / rewind support
*
* IID_IHXMultiPlayPauseSupport:
*
* {0000070F-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXMultiPlayPauseSupport,
0x0000070F, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXMultiPlayPauseSupport
DECLARE_INTERFACE_(IHXMultiPlayPauseSupport, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXMultiPlayPauseSupport methods
*/
STDMETHOD_(BOOL,GetDisableMultiPlayPauseSupport) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioDeviceManager2
*
* Purpose:
*
* Audio Device Manager extension
*
* IID_IHXAudioDeviceManager2:
*
* {00000710-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioDeviceManager2, 0x00000710, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioDeviceManager2
DECLARE_INTERFACE_(IHXAudioDeviceManager2, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioDeviceManager2 methods
*/
/**********************************************************************
* Method:
* IHXAudioDeviceManager2::IsReplacedDevice
* Purpose:
* This is used to determine if the audio device has been replaced.
*/
STDMETHOD_(BOOL, IsReplacedDevice) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioResampler
*
* Purpose:
*
* Audio Resampler
*
* IID_IHXAudioResampler:
*
* {00000711-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioResampler, 0x00000711, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioResampler
DECLARE_INTERFACE_(IHXAudioResampler, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioResampler methods
*/
/**********************************************************************
* Method:
* IHXAudioResampler::Resample
* Purpose:
* Will produce 1 output frame for every (upFactor/downFactor) inputs
* frames, straddling if not an integer. Works down to 1 sample/call.
*
* Returns actual number of output frames.
***********************************************************************/
STDMETHOD_(UINT32, Resample) ( THIS_
UINT16* pInput,
UINT32 ulInputBytes,
UINT16* pOutput) PURE;
/**********************************************************************
* Method:
* IHXAudioResampler::Requires
* Purpose:
* Returns number of input frames required to produce this number
* of output frames, given the current state of the filter.
*/
STDMETHOD_(UINT32, Requires) ( THIS_
UINT32 ulOutputFrames) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioResamplerManager
*
* Purpose:
*
* Audio Resampler Manager
*
* IID_IHXAudioResamplerManager:
*
* {00000712-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioResamplerManager, 0x00000712, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioResamplerManager
DECLARE_INTERFACE_(IHXAudioResamplerManager, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioResamplerManager methods
*
*/
STDMETHOD(CreateResampler) (THIS_
HXAudioFormat inAudioFormat,
REF(HXAudioFormat) outAudioFormat,
REF(IHXAudioResampler*) pResampler) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioPushdown2
*
* Purpose:
*
* Audio PushDown access methods
*
* IID_IHXAudioPushdown2:
*
* {00000713-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioPushdown2, 0x00000713, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioPushdown2
DECLARE_INTERFACE_(IHXAudioPushdown2, IHXAudioPushdown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/************************************************************************
* Method:
* IHXAudioPushdown::SetAudioPushdown
* Purpose:
* Use this to set the minimum audio pushdown value in ms.
* This is the amount of audio data that is being written
* to the audio device before starting playback.
*/
STDMETHOD(SetAudioPushdown) (THIS_
UINT32 /*IN */ ulAudioPushdown) PURE;
/************************************************************************
* Method:
* IHXAudioPushdown2::GetAudioPushdown
* Purpose:
* Use this to get the minimum audio pushdown value in ms.
* This is the amount of audio data that is being written
* to the audio device before starting playback.
*/
STDMETHOD(GetAudioPushdown) (THIS_
REF(UINT32) /*OUT*/ ulAudioPushdown) PURE;
/************************************************************************
* Method:
* IHXAudioPushdown2::GetCurrentAudioDevicePushdown
* Purpose:
* Use this to get the audio pushed down to the audio device and haven't
* been played yet
*/
STDMETHOD(GetCurrentAudioDevicePushdown) (THIS_
REF(UINT32) /*OUT*/ ulAudioPusheddown) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioMultiChannel
*
* Purpose:
*
* Multi-channel audio support
*
* IID_IHXAudioMultiChannel:
*
* {00000714-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioMultiChannel, 0x00000714, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioMultiChannel
DECLARE_INTERFACE_(IHXAudioMultiChannel, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioMultiChannel methods
*/
STDMETHOD_(BOOL,GetMultiChannelSupport) (THIS) PURE;
};
// $EndPrivate.
#endif /* _HXAUSVC_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -