📄 hxausvc.h
字号:
* Method:
* IHXAudioStream::GetAudioVolume
* Purpose:
* Get the audio stream's volume interface. This volume controls
* the volume level for this audio stream.
*/
STDMETHOD_(IHXVolume*,GetAudioVolume) (THIS) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioDevice
*
* Purpose:
*
* Object that exports audio device API
* This interface is currently to be used ONLY by the RMA engine
* internally.
*
* IID_IHXAudioDevice:
*
* {00000703-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioDevice, 0x00000703, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioDevice
DECLARE_INTERFACE_(IHXAudioDevice, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioDevice methods
*/
/************************************************************************
* Method:
* IHXAudioDevice::Open
* Purpose:
* The caller calls this to open the audio device using the audio
* format given.
*/
STDMETHOD(Open) (THIS_
const HXAudioFormat* /*IN*/ pAudioFormat,
IHXAudioDeviceResponse* /*IN*/ pStreamResponse) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::Close
* Purpose:
* The caller calls this to close the audio device.
*/
STDMETHOD(Close) (THIS_
const BOOL /*IN*/ bFlush ) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::Resume
* Purpose:
* The caller calls this to start or resume audio playback.
*/
STDMETHOD(Resume) (THIS) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::Pause
* Purpose:
* The caller calls this to pause the audio device. If bFlush is
* TRUE, any buffers in the audio device will be flushed; otherwise,
* the buffers are played.
*/
STDMETHOD(Pause) (THIS) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::Write
* Purpose:
* The caller calls this to write an audio buffer.
*/
STDMETHOD(Write) (THIS_
const HXAudioData* /*IN*/ pAudioData) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::InitVolume
* Purpose:
* The caller calls this to inform the audio stream of the client's
* volume range. The audio stream maps the client's volume range
* into the audio device volume range.
* NOTE: This function returns TRUE if volume is supported by this
* audio device.
*/
STDMETHOD_(BOOL,InitVolume) (THIS_
const UINT16 /*IN*/ uMinVolume,
const UINT16 /*IN*/ uMaxVolume) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::SetVolume
* Purpose:
* The caller calls this to set the audio device volume level.
*/
STDMETHOD(SetVolume) (THIS_
const UINT16 /*IN*/ uVolume) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::GetVolume
* Purpose:
* The caller calls this to get the audio device volume level.
*/
STDMETHOD_(UINT16,GetVolume) (THIS) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::Reset
* Purpose:
* The caller calls this to reset the audio device.
*/
STDMETHOD(Reset) (THIS) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::Drain
* Purpose:
* The caller calls this to drain the audio device.
*/
STDMETHOD(Drain) (THIS) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::CheckFormat
* Purpose:
* The caller calls this to check the input format with the
* audio device format.
*/
STDMETHOD(CheckFormat) (THIS_
const HXAudioFormat* /*IN*/ pAudioFormat ) PURE;
/************************************************************************
* Method:
* IHXAudioDevice::GetCurrentAudioTime
* Purpose:
* The caller calls this to get current system audio time.
*/
STDMETHOD(GetCurrentAudioTime) (THIS_
REF(ULONG32) /*OUT*/ ulCurrentTime) PURE;
};
/****************************************************************************
*
* Interface:
* IHXAudioDeviceResponse
*
* Purpose:
*
* Object that exports audio device Response API
* This interface is currently to be used ONLY by the RMA engine
* internally.
*
* IID_IHXAudioDeviceResponse:
*
* {00000704-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioDeviceResponse, 0x00000704, 0x901, 0x11d1, 0x8b, 0x6,
0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioDeviceResponse
DECLARE_INTERFACE_(IHXAudioDeviceResponse, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioDeviceResponse methods
*/
/************************************************************************
* Method:
* IHXAudioDeviceResponse::OnTimeSync
* Purpose:
* Notification interface provided by users of the IHXAudioDevice
* interface. This method is called by the IHXAudioDevice when
* audio playback occurs.
*/
STDMETHOD(OnTimeSync) (THIS_
ULONG32 /*IN*/ ulTimeEnd) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioHook
*
* Purpose:
*
* Clients must implement this interface to access pre- or post-mixed
* audio data. Use this interface to get post processed audio buffers and
* their associated audio format.
*
* IID_IHXAudioHook:
*
* {00000705-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioHook, 0x00000705, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioHook
DECLARE_INTERFACE_(IHXAudioHook, IUnknown)
{
/*
* IUnknown methods!
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioHook methods
*/
/************************************************************************
* Method:
* IHXAudioHook::OnInit
* Purpose:
* Audio Services calls OnInit() with the audio data format of the
* audio data that will be provided in the OnBuffer() method.
*/
STDMETHOD(OnInit) (THIS_
HXAudioFormat* /*IN*/ pFormat) PURE;
/************************************************************************
* Method:
* IHXAudioHook::OnBuffer
* Purpose:
* Audio Services calls OnBuffer() with audio data packets. The
* renderer should not modify the data in the IHXBuffer part of
* pAudioInData. If the renderer wants to write a modified
* version of the data back to Audio Services, then it should
* create its own IHXBuffer, modify the data and then associate
* this buffer with the pAudioOutData->pData member.
*/
STDMETHOD(OnBuffer) (THIS_
HXAudioData* /*IN*/ pAudioInData,
HXAudioData* /*OUT*/ pAudioOutData) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXAudioStreamInfoResponse
*
* Purpose:
*
* Clients must implement this interface when interested in receiving
* notification of the total number of streams associated with this
* audio player.
*
* IID_IHXAudioStreamInfoResponse:
*
* {00000706-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXAudioStreamInfoResponse, 0x00000706, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXAudioStreamInfoResponse
DECLARE_INTERFACE_(IHXAudioStreamInfoResponse, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXAudioStreamInfoResponse methods
*/
/************************************************************************
* Method:
* IHXAudioStreamInfoResponse::OnStream
* Purpose:
* The client implements this to get notification of streams
* associated with this player. Use
* AudioPlayer::SetStreamInfoResponse() to register your
* implementation with the AudioPlayer. Once player has been
* initialized, it will call OnStream() multiple times to pass all
* the streams. Since a stream can be added mid-presentation,
* IHXAudioStreamInfoResponse object should be written to handle
* OnStream() in the midst of the presentation as well.
*/
STDMETHOD(OnStream) (THIS_
IHXAudioStream* /*IN*/ pAudioStream) PURE;
};
/****************************************************************************
*
* Interface:
*
* IHXVolume
*
* Purpose:
*
* This interface provides access to Audio Services volume control. Use this
* interface to get, set, or receive notifications of volume changes. Audio
* Services implements IHXVolume for IHXAudioPlayer, IHXAudioStream and
* for the audio device. Clients can use the IHXVolume interface to get/set
* volume levels of each audio stream, to get/set volume levels for the
* audio player's mixed data, or to get/set the volume levels of the audio
* device. See AudioStream::GetStreamVolume() (TBD), AudioPlayer::
* GetAudioVolume() and AudioPlayer::GetDeviceVolume().
*
* IID_IHXVolume:
*
* {00000707-0901-11d1-8B06-00A024406D59}
*
*/
DEFINE_GUID(IID_IHXVolume, 0x00000707, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
0xa0, 0x24, 0x40, 0x6d, 0x59);
#undef INTERFACE
#define INTERFACE IHXVolume
DECLARE_INTERFACE_(IHXVolume, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
void** ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXVolume methods
*/
/************************************************************************
* Method:
* IHXVolume::SetVolume
* Purpose:
* Call this to set the volume level.
*/
STDMETHOD(SetVolume) (THIS_
const UINT16 /*IN*/ uVolume ) PURE;
/************************************************************************
* Method:
* IHXVolume::GetVolume
* Purpose:
* Call this to get the current volume level.
*/
STDMETHOD_(UINT16,GetVolume) (THIS) PURE;
/************************************************************************
* Method:
* IHXVolume::SetMute
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -