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

📄 hxplay.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
     *	    IHXErrorMessages::Report
     *	Purpose:
     *	    Call this method to report an error, event, or status message.
     */
    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
						);

    /*
     *	IHXRegistryID methods
     */

    /************************************************************************
     *	Method:
     *	    IHXRegistryID::GetID
     *	Purpose:
     *	    Get registry ID(hash_key) of the objects(player, source and stream)
     *
     */
    STDMETHOD(GetID)		(THIS_
				REF(UINT32)	/*OUT*/  ulRegistryID);

    STDMETHOD(HandleAuthenticationRequest) 
                                     (IHXAuthenticationManagerResponse*);
    STDMETHOD(HandleAuthenticationRequest2)
    				    (IHXAuthenticationManagerResponse*, IHXValues*);

    // IHXAuthenticationManagerResponse
    STDMETHOD(AuthenticationRequestDone)
    (
	HX_RESULT HX_RESULTStatus,
	const char* pcharUser,
	const char* pcharPassword
    );
    
    /*
     *  IHXGroupSink methods
     */
    /************************************************************************
    *  Method:
    *      IHXGroupSink::GroupAdded
    *  Purpose:
    *		Notification of a new group being added to the presentation.
    */
    STDMETHOD(GroupAdded)    (THIS_
			    UINT16 	    /*IN*/ uGroupIndex,
			    IHXGroup*	    /*IN*/ pGroup);

    /************************************************************************
    *  Method:
    *      IHXGroupSink::GroupRemoved
    *  Purpose:
    *		Notification of a group being removed from the presentation.
    */
    STDMETHOD(GroupRemoved)    (THIS_
				UINT16 	    /*IN*/ uGroupIndex,
				IHXGroup*  /*IN*/ pGroup);

    /************************************************************************
    *  Method:
    *      IHXGroupSink::AllGroupsRemoved
    *  Purpose:
    *		Notification that all groups have been removed from the 
    *		current presentation.
    */
    STDMETHOD(AllGroupsRemoved)  (THIS);

    /************************************************************************
    *  Method:
    *      IHXGroupSink::TrackAdded
    *  Purpose:
    *		Notification of a new track being added to a group.
    */
    STDMETHOD(TrackAdded)  (THIS_
			    UINT16 	    /*IN*/ uGroupIndex,
			    UINT16 	    /*IN*/ uTrackIndex,
			    IHXValues*	    /*IN*/ pTrack);

    /************************************************************************
    *  Method:
    *      IHXGroupSink::TrackAdded
    *  Purpose:
    *		Notification of a track being removed from a group.
    */
    STDMETHOD(TrackRemoved)    (THIS_
				UINT16 		/*IN*/ uGroupIndex,
				UINT16 		/*IN*/ uTrackIndex,
				IHXValues*	/*IN*/ pTrack);

    /************************************************************************
    *  Method:
    *      IHXGroupSink::TrackStarted
    *  Purpose:
    *		Notification of a track being started in a group.
    */
    STDMETHOD(TrackStarted)    (THIS_
				UINT16 		/*IN*/ uGroupIndex,
				UINT16 		/*IN*/ uTrackIndex,
				IHXValues*	/*IN*/ pTrack);

    /************************************************************************
    *  Method:
    *      IHXGroupSink::TrackStopped
    *  Purpose:
    *		Notification of a track being stopped in a group.
    */
    STDMETHOD(TrackStopped)    (THIS_
				UINT16 		/*IN*/ uGroupIndex,
				UINT16 		/*IN*/ uTrackIndex,
				IHXValues*	/*IN*/ pTrack);

   /************************************************************************
    *  Method:
    *      IHXGroupSink::CurrentGroupSet
    *  Purpose:
    *		This group is being currently played in the presentation.
    */
    STDMETHOD(CurrentGroupSet)	(THIS_
				UINT16 	    /*IN*/ uGroupIndex,
				IHXGroup*  /*IN*/ pGroup);
           
    /*
     * IHXLayoutSiteGroupManager methods
     */
    /************************************************************************
    *  Method:
    *      IHXLayoutSiteGroupManager::AddLayoutSiteGroup
    *  Purpose:
    *		Add this LSG to the presentation
    */
    STDMETHOD(AddLayoutSiteGroup)	(THIS_
					IUnknown*  /*IN*/ pLSG);

    /************************************************************************
    *  Method:
    *      IHXLayoutSiteGroupManager::RemoveLayoutSiteGroup
    *  Purpose:
    *		Remove this LSG from the presentation
    */
    STDMETHOD(RemoveLayoutSiteGroup)	(THIS_
					IUnknown*  /*IN*/ pLSG);

    /*
     * IHXRendererUpgrade methods
     */
    /************************************************************************
    *  Method:
    *      IHXRendererUpgrade::IsRendererAvailable
    *  Purpose:
    *	   Is a renderer with this mime type already loaded?
    */
    STDMETHOD_(BOOL,IsRendererAvailable)(THIS_
					const char* /*IN*/ pMimeType);

    /************************************************************************
    *  Method:
    *      IHXRendererUpgrade::ForceUpgrade
    *  Purpose:
    *	   Force an upgrade of all renderers in list
    */
    STDMETHOD(ForceUpgrade)		(THIS);

    /*
     * IHXInternalReset method
     */
    STDMETHOD(InternalReset) (THIS);

    /*
     *	IHXPlayerState methods
     */
    STDMETHOD_(BOOL, IsPlaying)    (THIS) {return m_bIsPlaying;}

    /************************************************************************
     *  IHXViewSourceCommand methods
     */
    STDMETHOD_(BOOL, CanViewSource)	(THIS_  
					IHXStreamSource* pStream);
    STDMETHOD(DoViewSource)		(THIS_
					IHXStreamSource* pStream);
    STDMETHOD(GetViewSourceURL)		(THIS_
					IHXStreamSource*	    pSource,
					IHXViewSourceURLResponse*  pResp);

    /*
     * IHXOverrideDefaultServices methods
     */

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

    /*
     * IHXPlayerNavigator methods
     */

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::AddChildPlayer
     *	Purpose:
     *	    Add child player to the current player
     */
    STDMETHOD(AddChildPlayer)	    (THIS_
				    IHXPlayer* pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::RemoveChildPlayer
     *	Purpose:
     *	    Remove child player from the current player
     */
    STDMETHOD(RemoveChildPlayer)    (THIS_
				    IHXPlayer* pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::GetNumChildPlayer
     *	Purpose:
     *	    Get number of the child players
     */
    STDMETHOD_(UINT16, GetNumChildPlayer)    (THIS);

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::GetChildPlayer
     *	Purpose:
     *	    Get Nth child player
     */
    STDMETHOD(GetChildPlayer)	    (THIS_
				    UINT16 uPlayerIndex,
				    REF(IHXPlayer*) pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::SetParentPlayer
     *	Purpose:
     *	    Set the parent player
     */
    STDMETHOD(SetParentPlayer)	    (THIS_
				    IHXPlayer* pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::RemoveParentPlayer
     *	Purpose:
     *	    Remove the parent player
     */
    STDMETHOD(RemoveParentPlayer)   (THIS_
				    IHXPlayer* pPlayer);

    /************************************************************************
     *	Method:
     *	    IHXPlayerNavigator::GetParentPlayer
     *	Purpose:
     *	    Get the parent player
     */
    STDMETHOD(GetParentPlayer)	    (THIS_
				    REF(IHXPlayer*) pPlayer);

    /* 
     * IHXRecordManager methods 
     */ 

    /************************************************************************ 
     *  Method: 
     *      IHXRecordManager::LoadRecordService 
     *  Purpose: 
     *      Called by TLC to supply the Core with record service. 
     */ 
    STDMETHOD(LoadRecordService) (THIS_ IHXRecordService* pRecordService); 

    /************************************************************************ 
     *  Method: 
     *      IHXRecordManager::GetRecordService 
     *  Purpose: 
     *      return current record service for the Player. 
     */ 
    STDMETHOD(GetRecordService) (THIS_ REF(IHXRecordService*) pRecordService); 

    /************************************************************************ 
     *  Method: 
     *      IHXRecordManager::UnloadRecordService 
     *  Purpose: 
     *      Called by TLC to ask the Core to stop using record service. 
     */ 
    STDMETHOD(UnloadRecordService) (THIS); 

    ////////////////////////////////////////////////////////////////////
    //
    // The following members are related to meta-file support.
    //
public:
    void		SetModal(BOOL bModal) {m_bSetModal = bModal;};
    HX_RESULT		SetSingleURLPresentation(const CHXURL* pURL);

    HX_RESULT		AddURL(SourceInfo*& pSourceInfo, BOOL bAltURL);

    void		GetActiveRequest(IHXRequest*& pRequest)
			{
			    pRequest = NULL;			    

			    if (m_pRequest)
			    {
#if defined(HELIX_FEATURE_NESTEDMETA)
				// we want to keep the original copy of IHXRequest in SMIL/RAM
				// so that individual source within will have a "clean" copy of 
				// IHXRequest to start with
				if (m_pPersistentComponentManager &&
				    m_pPersistentComponentManager->m_pRootPersistentComponent &&
				    !m_pPersistentComponentManager->m_pRootPersistentComponent->m_bToBeClosed)
				{
				    CHXRequest::CreateFromWithRequestHeaderOnly(m_pRequest, &pRequest);
				}
				else
#endif /* HELIX_FEATURE_NESTEDMETA */
				if (m_bActiveRequest)
				{
				    pRequest = m_pRequest;
				    pRequest->AddRef();				
				}
			    }
			};

    void		ResetActiveRequest() {m_bActiveRequest = FALSE;};

    void		SetGranularity(ULONG32 ulGranularity);
    ULONG32		GetGranularity(void) {return m_ulLowestGranularity;};

    HX_RESULT		SetGranularity(HXSource* pSource, UINT16 uStreamNumber, 
				       UINT32 ulGranularity);

    void                ClosePlayer(void);
    
    void		InternalPause();		

    HX_RESULT		EventReady(HXSource* pSource, CHXEvent* pEvent);

    void		ShutDown(void);

    void		RegisterSourcesDone(void);

    BOOL		IsInitialized(void) {return m_bInitialized;};

    BOOL		CanBeStarted(HXSource* pSource, SourceInfo* pThisSourceInfo, BOOL bPartOfNextGroup);
    void		EndOfSource(HXSource* pSource);

    BOOL		CanBeFastStarted(SourceInfo* pSourceInfo);
    void		SureStreamSourceRegistered(SourceInfo* pSourceInfo);
    void		SureStreamSourceUnRegistered(SourceInfo* pSourceInfo);

    ULONG32		GetInternalCurrentPlayTime(void)
			    { return m_ulCurrentPlayTime; };

    HX_RESULT		HandleRedirectRequest(UINT16 nGroup, UINT16 nTrack, char* pURL);
    BOOL		IsAtSourceMap(SourceInfo* pSourceInfo);

    HX_RESULT		RepeatTrackAdded(UINT16		/*IN*/ uGroupIndex,
					 UINT16		/*IN*/ uTrackIndex,
					 IHXValues*	/*IN*/ pTrack);

    /* Temporary function */
    void		SetInterrupt(BOOL bUseCoreThread) 
			    {m_bUseCoreThread = bUseCoreThread;};
    virtual HX_RESULT	SendPacket(CHXEvent* pEvent);
    CHXAudioPlayer*	GetAudioPlayer(void) {return m_pAudioPlayer;};
    INT32		GetCurrentGroupID(void) {return m_nCurrentGroup;};
    void                NotifyPlaybackEndToTLC() {m_bIsPresentationClosedToBeSent = TRUE;};
    HX_RESULT		CopyRegInfo(UINT32 ulFromRegID, UINT32 ulToRegID);

    BOOL                IsSitePresent(IHXSite* pSite);
    void		CheckIfRendererNeedFocus(IUnknown* pRenderer);

    static void         PlayerCallback(void *pParam);
    static void		SetupCallback(void *pParam);
#if defined(HELIX_FEATURE_AUTHENTICATION)
    static void	        AuthenticationCallback(void *pParam);
#endif
    
    friend		class SourceInfo;
    friend		class HXSource;
    friend		class HXNetSource;
    friend		class HXFileSource;
    friend		class HXPersistentComponent;
    friend		class HXPersistentComponentManager;

private:
    HX_BITFIELD		m_bForceStatsUpdate : 1;
    HX_BITFIELD		m_bActiveRequest : 1;
    HX_BITFIELD		m_bAddLayoutSiteGroupCalled : 1;
    HX_BITFIELD		m_bDoRedirect : 1;
    HX_BITFIELD		m_bFastStartCheckDone : 1;
    HX_BITFIELD		m_bFastStart : 1;

    TurboPlayOffReason	m_turboPlayOffReason;

    UINT32		m_ulActiveSureStreamSource;

    INT32		m_nCurrentGroup;
    INT32		m_nGroupCount;

    HX_RESULT		DoOpenGroup(UINT16 nGroupNumber);
    HX_RESULT		OpenTrack(IHXValues* pTrack, UINT16 uGroupID, UINT16 uTrackID);
    void		PlayNextGroup();

    BOOL		CheckTrackAndSourceOnTrackStarted(INT32 nGroup, INT32 nTrack, UINT32 sourceID);

    BOOL		GetViewSourceStream(REF(IHXStreamSource*) pStrmSource);
    BOOL		AreAllPacketsSent();

    HX_RESULT		GetSourceInfo(UINT16 uGroupIndex, UINT16 uTrackIndex, SourceInfo*& pSourceInfo);
    HX_RESULT		UpdateTrack(UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pValues);
    HX_RESULT		RemoveTrack(UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pValues);

⌨️ 快捷键说明

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