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

📄 hxausvc.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 4 页
字号:

DECLARE_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.
    */
    STDMETHOD(SetAudioPushdown)   (THIS_
				   UINT32 /*IN*/ ulAudioPushdown
			     	  ) PURE;
};


/****************************************************************************
 * 
 *  Interface:
 * 
 *      IHXAudioHookManager
 * 
 *  Purpose:
 *
 *  This interface can be used to add a hook at the audio device layer.
 * 
 *  IID_IHXAudioHookManager:
 * 
 *  {0000070E-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXAudioHookManager, 0x0000070E, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
            0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXAudioHookManager

DECLARE_INTERFACE_(IHXAudioHookManager, IUnknown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)		(THIS_
					REFIID riid,
					void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)		(THIS) PURE;

    STDMETHOD_(ULONG32,Release)		(THIS) PURE;
    
   /*
    *  IHXAudioHookManager methods
    */
   /************************************************************************
    *  Method:
    *      IHXAudioHookManager::AddHook
    *  Purpose:
    *	    Use this to add a hook 
    */
    STDMETHOD(AddHook)   (THIS_
			  IHXAudioHook* /*IN*/ pHook
			  ) PURE;

   /************************************************************************
    *  Method:
    *      IHXAudioHookManager::RemoveHook
    *  Purpose:
    *	    Use this to remove a hook 
    */
    STDMETHOD(RemoveHook) (THIS_
			  IHXAudioHook* /*IN*/ pHook
			  ) PURE;
};

// $Private:
/****************************************************************************
 * 
 *  Interface:
 * 
 *      IHXMultiPlayPauseSupport
 * 
 *  Purpose:
 *
 *  This interface can be used to control whether audio services handles multi-player pause / rewind support
 * 
 *  IID_IHXMultiPlayPauseSupport:
 * 
 *  {0000070F-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXMultiPlayPauseSupport, 
	    0x0000070F, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXMultiPlayPauseSupport

DECLARE_INTERFACE_(IHXMultiPlayPauseSupport, IUnknown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)		(THIS_
					REFIID riid,
					void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)		(THIS) PURE;

    STDMETHOD_(ULONG32,Release)		(THIS) PURE;
    
   /*
    *  IHXMultiPlayPauseSupport methods
    */
    STDMETHOD_(BOOL,GetDisableMultiPlayPauseSupport)	(THIS) PURE;
};

/****************************************************************************
 * 
 *  Interface:
 * 
 *  IHXAudioDeviceManager2
 * 
 *  Purpose:
 * 
 *  Audio Device Manager extension
 *
 *  IID_IHXAudioDeviceManager2:
 * 
 *  {00000710-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXAudioDeviceManager2, 0x00000710, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
            0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXAudioDeviceManager2

DECLARE_INTERFACE_(IHXAudioDeviceManager2, IUnknown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)       (THIS_
				    REFIID riid,
				    void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;

    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    /*
     *  IHXAudioDeviceManager2 methods
     */

    /**********************************************************************
     *  Method:
     *      IHXAudioDeviceManager2::IsReplacedDevice
     *  Purpose:
     *  This is used to determine if the audio device has been replaced.
     */
    STDMETHOD_(BOOL, IsReplacedDevice)         (THIS) PURE;

};


/****************************************************************************
 * 
 *  Interface:
 * 
 *  IHXAudioResampler
 * 
 *  Purpose:
 * 
 *  Audio Resampler
 *
 *  IID_IHXAudioResampler:
 * 
 *  {00000711-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXAudioResampler, 0x00000711, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
            0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXAudioResampler

DECLARE_INTERFACE_(IHXAudioResampler, IUnknown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)       (THIS_
				    REFIID riid,
				    void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;

    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    /*
     *  IHXAudioResampler methods
     */

    /**********************************************************************
     *  Method:
     *      IHXAudioResampler::Resample
     *  Purpose:
     *  Will produce 1 output frame for every (upFactor/downFactor) inputs
     *  frames, straddling if not an integer.  Works down to 1 sample/call.
     * 
     *  Returns actual number of output frames.
     ***********************************************************************/

    STDMETHOD_(UINT32, Resample)    (   THIS_
                                        UINT16*	pInput, 
                                        UINT32	ulInputBytes, 
                                        UINT16*	pOutput) PURE;

    /**********************************************************************
     *  Method:
     *      IHXAudioResampler::Requires
     *  Purpose:
     *  Returns number of input frames required to produce this number
     *  of output frames, given the current state of the filter.
     */

    STDMETHOD_(UINT32, Requires)    (   THIS_
                                        UINT32	ulOutputFrames) PURE;
};

/****************************************************************************
 * 
 *  Interface:
 * 
 *  IHXAudioResamplerManager
 * 
 *  Purpose:
 * 
 *  Audio Resampler Manager
 *
 *  IID_IHXAudioResamplerManager:
 * 
 *  {00000712-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXAudioResamplerManager, 0x00000712, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
            0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXAudioResamplerManager

DECLARE_INTERFACE_(IHXAudioResamplerManager, IUnknown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)       (THIS_
				    REFIID riid,
				    void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;

    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    /*
     *  IHXAudioResamplerManager methods
     *
     */
    STDMETHOD(CreateResampler)	(THIS_
				HXAudioFormat		    inAudioFormat,
				REF(HXAudioFormat)	    outAudioFormat,
				REF(IHXAudioResampler*)    pResampler) PURE;
};

/****************************************************************************
 * 
 *  Interface:
 * 
 *  IHXAudioPushdown2
 * 
 *  Purpose:
 * 
 *  Audio PushDown access methods
 *
 *  IID_IHXAudioPushdown2:
 * 
 *  {00000713-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXAudioPushdown2, 0x00000713, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
            0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXAudioPushdown2

DECLARE_INTERFACE_(IHXAudioPushdown2, IHXAudioPushdown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)       (THIS_
				    REFIID riid,
				    void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;

    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

   /************************************************************************
    *  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.
    */
    STDMETHOD(SetAudioPushdown)			(THIS_
						UINT32	/*IN */ ulAudioPushdown) PURE;

   /************************************************************************
    *  Method:
    *      IHXAudioPushdown2::GetAudioPushdown
    *  Purpose:
    *	    Use this to get 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.
    */
    STDMETHOD(GetAudioPushdown)			(THIS_
						REF(UINT32) /*OUT*/ ulAudioPushdown) PURE;

   /************************************************************************
    *  Method:
    *      IHXAudioPushdown2::GetCurrentAudioDevicePushdown
    *  Purpose:
    *	    Use this to get the audio pushed down to the audio device and haven't
    *	    been played yet
    */
    STDMETHOD(GetCurrentAudioDevicePushdown)   (THIS_
						REF(UINT32) /*OUT*/ ulAudioPusheddown) PURE;
};

/****************************************************************************
 * 
 *  Interface:
 * 
 *  IHXAudioMultiChannel
 * 
 *  Purpose:
 * 
 *  Multi-channel audio support
 *
 *  IID_IHXAudioMultiChannel:
 * 
 *  {00000714-0901-11d1-8B06-00A024406D59}
 * 
 */
DEFINE_GUID(IID_IHXAudioMultiChannel, 0x00000714, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
            0xa0, 0x24, 0x40, 0x6d, 0x59);

#undef  INTERFACE
#define INTERFACE   IHXAudioMultiChannel

DECLARE_INTERFACE_(IHXAudioMultiChannel, IUnknown)
{
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface)       (THIS_
				    REFIID riid,
				    void** ppvObj) PURE;

    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;

    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

   /*
    *  IHXAudioMultiChannel methods
    */
    STDMETHOD_(BOOL,GetMultiChannelSupport)    (THIS) PURE;
};
// $EndPrivate.

#endif  /* _HXAUSVC_H_ */

⌨️ 快捷键说明

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