⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hxausvc.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 4 页
字号:
     */    STDMETHOD_(BOOL,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 BOOL bMute				) 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     */    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.    */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -