?? hxausvc.h
字號:
*/ /************************************************************************ * 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 HXBOOL /*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_(HXBOOL,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 IHXAudioDeviceResponseDECLARE_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 IHXAudioHookDECLARE_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: * * IHXAudioDeviceHookManager * * Purpose: * * Allows setting audio hooks in the audio device itself. * * IID_IHXAudioDeviceHookManager: * * {00000715-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAudioDeviceHookManager, 0x00000715, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAudioDeviceHookManagerDECLARE_INTERFACE_(IHXAudioDeviceHookManager, IUnknown){ /* * IUnknown methods! */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXAudioDeviceHookManager methods */ /************************************************************************ * Method: * IHXAudioDeviceHookManager::AddAudioDeviceHook * Purpose: * Last chance to modify data being written to the audio device. */ STDMETHOD(AddAudioDeviceHook) (THIS_ IHXAudioHook* /*IN*/ pHook, AudioDeviceHookType /*IN*/ type ) PURE; /************************************************************************ * Method: * IHXAudioDeviceHookManager::RemoveAudioDeviceHook * Purpose: * Removes the audio device hook that was set with AddAudioDeviceHook. */ STDMETHOD(RemoveAudioDeviceHook) (THIS_ IHXAudioHook* /*IN*/ pHook ) PURE; /************************************************************************ * Method: * IHXAudioDeviceHookManager::ProcessHooks * Purpose: * Called by audio device implementations to process the hooks on a * given audio buffer */ STDMETHOD(ProcessAudioDeviceHooks) (THIS_ IHXBuffer*& /*IN/OUT*/ pBuffer, HXBOOL& /*OUT*/ bChanged ) 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 IHXAudioStreamInfoResponseDECLARE_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 IHXVolumeDECLARE_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 * Purpose: * Call this to mute the volume. */ STDMETHOD(SetMute) (THIS_ const HXBOOL /*IN*/ bMute ) PURE; /************************************************************************ * Method: * IHXVolume::GetMute
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -