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

📄 hxcleng.h

📁 symbian 下的helix player源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
     *	Method:
     *	    IHXClientEngine::GetPlayerCount
     *	Purpose:
     *	    Returns the current number of IHXPlayer instances supported by
     *	    this client engine instance.
     */
    STDMETHOD_(UINT16, GetPlayerCount)(THIS);

    /************************************************************************
     *	Method:
     *	    IHXClientEngine::GetPlayer
     *	Purpose:
     *	    Returns the Nth IHXPlayer instances supported by this client 
     *	    engine instance.
     */
    STDMETHOD(GetPlayer)	(THIS_
				UINT16		nPlayerNumber,
				REF(IUnknown*)	pUnknown);

    /************************************************************************
     *	Method:
     *	    IHXClientEngine::EventOccurred
     *	Purpose:
     *	    Clients call this to pass OS events to all players. HXxEvent
     *	    defines a cross-platform event.
     */
    STDMETHOD(EventOccurred)	(THIS_
				HXxEvent* /*IN*/ pEvent);

	/*
	 *	IHXMimeTypeMapper methods
	 */

    STDMETHOD(MapFromExtToMime)	(THIS_
				const char*	    /*IN*/  pExtension,
				REF(const char*)    /*OUT*/ pMimeType);
#ifdef _UNIX
    STDMETHOD_(INT32,Select) (THIS_
			      INT32 n,
			      fd_set* readfds,
			      fd_set* writefds,
			      fd_set* exceptfds,
			      struct timeval* timeout);

    STDMETHOD(Add)           (THIS_
			      IHXCallback* pCallback,
			      INT32         lFileDescriptor,
			      UINT32        ulFlags);
    STDMETHOD(Remove)        (THIS_
			      INT32         lFileDescriptor,
			      UINT32        ulFlags);

    CHXSimpleList*            m_select_callbacks;
#endif

    /*
     * IHXClientEngineSetup methods
     */

    /************************************************************************
     *	Method:
     *	    IHXClientEngineSetup::Setup
     *	Purpose:
     *      Top level clients use this interface to over-ride certain basic 
     *	    interfaces are: IHXPreferences, IHXHyperNavigate
     */
    STDMETHOD(Setup)		(THIS_
				IUnknown* pContext);

    /*
     * IHXInterruptState methods
     */
    STDMETHOD_(BOOL,AtInterruptTime)	(THIS);

    STDMETHOD(EnterInterruptState)	(THIS);

    STDMETHOD(LeaveInterruptState)	(THIS);

    STDMETHOD(EnableInterrupt)		(THIS_
					BOOL	bEnable);
    
    STDMETHOD_(BOOL, IsInterruptEnabled) (THIS);

    /*
     * IHXShutDownEverything methods
     */

    /************************************************************************
     *	Method:
     *	    IHXShutDownEverything::ShutDown
     *	Purpose:
     *	    Shutdown all the renderers/fileformats
     *
     */
    STDMETHOD(ShutDown)		(THIS);

    /************************************************************************
     *	Method:
     *	    IHXShutDownEverything::StopAllOtherPlayers
     *	Purpose:
     *	    Stop all the players in other processes if they use audio
     *
     */
    STDMETHOD(StopAllOtherPlayers)	(THIS);

    /************************************************************************
     *	Method:
     *	    IHXShutDownEverything::AskAllOtherPlayersToReload
     *	Purpose:
     *	    Ask all other players in other processes to reload their 
     *	    DLLs.
     *
     */
    STDMETHOD(AskAllOtherPlayersToReload)	(THIS);

    /************************************************************************
     *	Method:
     *	    IHXShutDownEverything::AskAllOtherPlayersToUnload
     *	Purpose:
     *	    Ask all other players in other processes to unload their 
     *	    unused DLLs.
     *
     */

    STDMETHOD(AskAllOtherPlayersToUnload)	(THIS);

    /*
     * IHXOverrideDefaultServices methods
     */

    /************************************************************************
     *  Method:
     *      IHXOverrideDefaultServices::OverrideServices
     *  Purpose:
     *      Override default services provided by the G2 system.
     * 
     */
    STDMETHOD(OverrideServices)         (THIS_
				IUnknown* pContext);
    /*
     *  IHXErrorMessages methods
     */

    /************************************************************************
     *	Method:
     *	    IHXErrorMessages::Report
     *	Purpose:
     *	    Call this method to report an error, event, or status message.
     *	Parameters:
     *
     *	    const UINT8	unSeverity
     *	    Type of report. This value will impact how the player, tool, or
     *	    server will react to the report. Possible values are described 
     *	    above. Depending on the error type, an error message with the 
     *	    RMA code, anda string translation of that code will be displayed. 
     *	    The error dialog includes a "more info" section that displays the
     *	    user code and string, and a link to the more info URL. In the 
     *	    server these messages are logged to the log file.
     *
     *	    const ULONG32   ulHXCode
     *	    Well known RMA error code. This will be translated to a text
     *	    representation for display in an error dialog box or log file.
     *
     *	    const ULONG32   ulUserCode
     *	    User specific error code. This will NOT be translated to a text
     *	    representation. This can be any value the caller wants, it will
     *	    be logged or displayed but not interpretted.
     *
     *	    const char*	    pUserString
     *	    User specific error string. This will NOT be translated or 
     *	    modified. This can be any value the caller wants, it will
     *	    be logged or displayed but not interpretted.
     *
     *	    const char*	    pMoreInfoURL
     *	    User specific more info URL string.
     *
     */
    STDMETHOD(Report)		(THIS_
				const UINT8	unSeverity,  
				HX_RESULT	ulHXCode,
				const ULONG32	ulUserCode,
				const char*	pUserString,
				const char*	pMoreInfoURL);

    /************************************************************************
     *	Method:
     *	    IHXErrorMessages::GetErrorText
     *	Purpose:
     *	    Call this method to get the text description of a RMA error code.
     *	Parameters:
     *	    HX_RESULT ulHXCode (A RMA error code)
     *  Return Value:
     *	    IHXBuffer* containing error text.
     */
    STDMETHOD_(IHXBuffer*, GetErrorText)	(THIS_
						HX_RESULT	ulHXCode);

    /************************************************************************
     *	Method:
     *	    IHXClientEngineMapper::GetPlayerBySite
     *	Purpose:
     *	    Returns the IHXPlayer instance supported by this client 
     *	    engine instance that contains the specified IHXSite.
     */
    STDMETHOD(GetPlayerBySite)	(THIS_
				IHXSite*	pSite,
				REF(IUnknown*)	pUnknown);

    /************************************************************************
     *	Method:
     *	    IHXCoreMutex::LockCoreMutex
     *	Purpose:
     *      Call this method to lock the client engine's core mutex.
     */
    STDMETHOD(LockCoreMutex)    (THIS);

    /************************************************************************
     *	Method:
     *	    IHXCoreMutex::UnlockCoreMutex
     *	Purpose:
     *      Call this method to unlock the client engine's core mutex.
     */
    STDMETHOD(UnlockCoreMutex)    (THIS);

#if defined(_MACINTOSH) && defined(_CARBON) && defined(THREADS_SUPPORTED)

    /************************************************************************
     *	Method:
     *	    IHXMacBlitMutex::LockMacBlitMutex
     *	Purpose:
     *      Call this method to lock the Mac blitting mutex
     */
    STDMETHOD(LockMacBlitMutex)    (THIS);

    /************************************************************************
     *	Method:
     *	    IHXMacBlitMutex::UnlockMacBlitMutex
     *	Purpose:
     *      Call this method to unlock the Mac blitting mutex
     */
    STDMETHOD(UnlockMacBlitMutex)    (THIS);

#endif

    STDMETHOD(StopAudioPlayback)	(THIS);

    virtual void Close();

    HXMutex*	GetCoreMutex()	{return m_pCoreMutex;};

    CHXResMgr*	GetResMgr() {return m_pResMgr;};

    void	NotifyPlayState(BOOL bInPlayingState);

    HXCookies*	GetCookies() {return m_pCookies;};

    UINT32	m_lROBActive;

protected:
    void			_Initialize();
    virtual CHXAudioSession*	NewAudioSession();
    virtual HXPlayer*		NewPlayer();
    virtual HXCookies*		NewCookies();
    void			CreatePrefIfNoExist(const char* pName, const char* pValue);
    void			CreatePluginDir();
    void			CreateCodecDir();
    void			InitializeThreadedObjects();
    void			InitializeRegistry();
    IHXBuffer*			CreateBufferAndSetToString(const char* pStr);
    void			InitPaths();

    CHXSimpleList		m_PlayerList;
    HX_RESULT			m_LastError;
    HX_BITFIELD			m_bIsSchedulerStarted : 1;
    HX_BITFIELD			m_bInitialized : 1;
    BOOL			m_bUseCoreThread;
    HX_BITFIELD			m_bUseCoreThreadExternallySet : 1;
    HXCoreComm*			m_pCoreComm;
    HXMutex*			m_pCoreMutex;
#if defined(_MACINTOSH) && defined(_CARBON) && defined(THREADS_SUPPORTED)
    BOOL			m_bUseMacBlitMutex;
    HXMutex*			m_pMacBlitMutex;
#endif
    const char*			m_AUName;
};

#endif // HXClientEngine

⌨️ 快捷键说明

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