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

📄 hxausvc.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 4 页
字号:
    /************************************************************************    *  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   IHXAudioDeviceDECLARE_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   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: *  *  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	BOOL	/*IN*/ bMute ) PURE;     /************************************************************************     *  Method:     *      IHXVolume::GetMute     *  Purpose:     *	    Call this to determine if the volume is muted.     *	  

⌨️ 快捷键说明

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