?? hxausvc.h
字號:
* Purpose: * Call this to determine if the volume is muted. * */ STDMETHOD_(HXBOOL,GetMute) (THIS) PURE; /************************************************************************ * Method: * IHXVolume::AddAdviseSink * Purpose: * Call this to register an IHXVolumeAdviseSink. The advise sink * methods: OnVolumeChange() and OnMuteChange() are called when * ever IHXVolume::SetVolume() and IHXVolume::SetMute() are * called. */ STDMETHOD(AddAdviseSink) (THIS_ IHXVolumeAdviseSink* /*IN*/ pSink ) PURE; /************************************************************************ * Method: * IHXVolume::RemoveAdviseSink * Purpose: * Call this to unregister an IHXVolumeAdviseSink. Use this when * you are no longer interested in receiving volume or mute change * notifications. */ STDMETHOD(RemoveAdviseSink) (THIS_ IHXVolumeAdviseSink* /*IN*/ pSink ) PURE;};/**************************************************************************** * * Interface: * * IHXVolumeAdviseSink * * Purpose: * * This interface provides access to notifications of volume changes. A * client must implement this interface if they are interested in receiving * notifications of volume level changes or mute state changes. A client must * register their volume advise sink using IHXVolume::AddAdviseSink(). * See the IHXVolume interface. * * IID_IHXVolumeAdviseSink: * * {00000708-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXVolumeAdviseSink, 0x00000708, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXVolumeAdviseSinkDECLARE_INTERFACE_(IHXVolumeAdviseSink, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXVolumeAdviseSink methods */ /************************************************************************ * Method: * IHXVolumeAdviseSink::OnVolumeChange * Purpose: * This interface is called whenever the associated IHXVolume * SetVolume() is called. */ STDMETHOD(OnVolumeChange) (THIS_ const UINT16 uVolume ) PURE; /************************************************************************ * Method: * IHXVolumeAdviseSink::OnMuteChange * Purpose: * This interface is called whenever the associated IHXVolume * SetMute() is called. * */ STDMETHOD(OnMuteChange) (THIS_ const HXBOOL bMute ) PURE;};/**************************************************************************** * * Interface: * * IHXAudioLevelNormalization * * IID_IHXAudioLevelNormalization: * * {00000716-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAudioLevelNormalization, 0x00000716, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAudioLevelNormalizationDECLARE_INTERFACE_(IHXAudioLevelNormalization, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXAudioLevelNormalization methods */ STDMETHOD(SetSoundLevelOffset) (THIS_ INT16 nOffset) PURE; STDMETHOD_(INT16, GetSoundLevelOffset)(THIS) PURE; };/**************************************************************************** * * Interface: * * IHXDryNotification * * Purpose: * * Audio Renderer should implement this if it needs notification when the * audio stream is running dry. * * IID_IHXDryNotification: * * {00000709-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXDryNotification, 0x00000709, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXDryNotificationDECLARE_INTERFACE_(IHXDryNotification, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXDryNotification methods */ /************************************************************************ * Method: * IHXDryNotification::OnDryNotification * Purpose: * This function is called when it is time to write to audio device * and there is not enough data in the audio stream. The renderer can * then decide to add more data to the audio stream. This should be * done synchronously within the call to this function. * It is OK to not write any data. Silence will be played instead. */ STDMETHOD(OnDryNotification) (THIS_ UINT32 /*IN*/ ulCurrentStreamTime, UINT32 /*IN*/ ulMinimumDurationRequired ) PURE;};/**************************************************************************** * * Interface: * * IHXAudioDeviceManager * * Purpose: * * Allows the default audio device to be replaced. * * IID_IHXAudioDeviceManager: * * {0000070A-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAudioDeviceManager, 0x0000070A, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAudioDeviceManagerDECLARE_INTERFACE_(IHXAudioDeviceManager, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXAudioDeviceManager methods */ /********************************************************************** * Method: * IHXAudioDeviceManager::Replace * Purpose: * This is used to replace the default implementation of the audio * device by the given audio device interface. */ STDMETHOD(Replace) (THIS_ IHXAudioDevice* /*IN*/ pAudioDevice) PURE; /********************************************************************** * Method: * IHXAudioDeviceManager::Remove * Purpose: * This is used to remove the audio device given to the manager in * the earlier call to Replace. */ STDMETHOD(Remove) (THIS_ IHXAudioDevice* /*IN*/ pAudioDevice) PURE; /************************************************************************ * Method: * IHXAudioDeviceManager::AddFinalHook * Purpose: * One last chance to modify data being written to the audio device. * This hook allows the user to change the audio format that * is to be written to the audio device. This can be done in call * to OnInit() in IHXAudioHook. */ STDMETHOD(SetFinalHook) (THIS_ IHXAudioHook* /*IN*/ pHook ) PURE; /************************************************************************ * Method: * IHXAudioDeviceManager::RemoveFinalHook * Purpose: * Remove final hook */ STDMETHOD(RemoveFinalHook) (THIS_ IHXAudioHook* /*IN*/ pHook ) PURE; /************************************************************************ * Method: * IHXAudioDeviceManager::GetAudioFormat * Purpose: * Returns the audio format in which the audio device is opened. * This function will fill in the pre-allocated HXAudioFormat * structure passed in. */ STDMETHOD(GetAudioFormat) (THIS_ HXAudioFormat* /*IN/OUT*/pAudioFormat) PURE;};/**************************************************************************** * * Interface: * * IHXAudioCrossFade * * Purpose: * * This interface can be used to cross-fade two audio streams. It is exposed * by IHXAudioPlayer * * IID_IHXAudioCrossFade: * * {0000070B-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAudioCrossFade, 0x0000070B, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAudioCrossFadeDECLARE_INTERFACE_(IHXAudioCrossFade, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXAudioCrossFade methods */ /************************************************************************ * Method: * IHXAudioCrossFade::CrossFade * Purpose: * Cross-fade two audio streams. * pStreamFrom - Stream to be cross faded from * pStreamTo - Stream to be cross faded to * ulFromCrossFadeStartTime- "From" Stream time when cross fade is * to be started * ulToCrossFadeStartTime - "To" Stream time when cross fade is to * be started * ulCrossFadeDuration - Duration over which cross-fade needs * to be done * */ STDMETHOD(CrossFade) (THIS_ IHXAudioStream* pStreamFrom, IHXAudioStream* pStreamTo, UINT32 ulFromCrossFadeStartTime, UINT32 ulToCrossFadeStartTime, UINT32 ulCrossFadeDuration) PURE;};/**************************************************************************** * * Interface: * * IHXAudioStream2 * * Purpose: * * This interface contains some last-minute added audio stream functions * * IID_IHXAudioStream2: * * {0000070C-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAudioStream2, 0x0000070C, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAudioStream2DECLARE_INTERFACE_(IHXAudioStream2, IUnknown){ /* * IUnknown methods */ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE; STDMETHOD_(ULONG32,AddRef) (THIS) PURE; STDMETHOD_(ULONG32,Release) (THIS) PURE; /* * IHXAudioStream2 methods */ /************************************************************************ * Method: * IHXAudioStream2::RemoveDryNotification * Purpose: * Use this to remove itself from the notification response object * during the stream switching. */ STDMETHOD(RemoveDryNotification) (THIS_ IHXDryNotification* /*IN*/ pNotification ) PURE; /************************************************************************ * Method: * IHXAudioStream2::GetAudioFormat * Purpose: * Returns the input audio format of the data written by the * renderer. This function will fill in the pre-allocated * HXAudioFormat structure passed in. */ STDMETHOD(GetAudioFormat) (THIS_ HXAudioFormat* /*IN/OUT*/pAudioFormat) PURE;};/**************************************************************************** * * Interface: * * IHXAudioPushdown * * Purpose: * * This interface can be used to setup the audio pushdown time. * * IID_IHXAudioPushdown: * * {0000070D-0901-11d1-8B06-00A024406D59} * */DEFINE_GUID(IID_IHXAudioPushdown, 0x0000070D, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXAudioPushdownDECLARE_INTERFACE_(IHXAudioPushdown, IUnknown){ /* * IUnknown methods */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -