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

📄 hxplay.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 4 页
字号:
    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);    HX_RESULT		AddPrefetchTrack(UINT16 uGroupIndex, UINT16 uPrefetchTrackIndex, IHXValues* pValues);    HX_RESULT		UpdatePrefetchTrack(UINT16 uGroupIndex, UINT16 uPrefetchTrackIndex, IHXValues* pValues);    HX_RESULT		RemovePrefetchTrack(UINT16 uGroupIndex, UINT16 uPrefetchTrackIndex, IHXValues* pValues);    HX_RESULT		PrefetchTrackDone(UINT16 uGroupIndex, UINT16 uPrefetchTrackIndex, HX_RESULT status);    HX_RESULT		BeginTrack(UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pValues);        HX_RESULT		PauseTrack(UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pValues);    HX_RESULT		SeekTrack(UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pValues, UINT32 ulSeekTime);        HX_RESULT		StopTrack(UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pValues);        HX_RESULT		SetSoundLevel(UINT16 uGroupIndex, UINT16 uTrackIndex, UINT16 uSoundLevel, BOOL bReflushAudioDevice);        void                CheckSourceRegistration(void);    void                GetTimingFromURL(CHXURL* pURL, UINT32& ulStart, UINT32& ulEnd, UINT32& ulDelay, UINT32& ulDuration);#if defined(HELIX_FEATURE_RECORDCONTROL)    BOOL                IsRecordServiceEnabled();#endifprotected:    CHXSimpleList*	m_pAltURLs;    CHXURL*		m_pURL;    IHXRequest*	m_pRequest;    HX_RESULT		AdjustSeekOnRepeatedSource(SourceInfo*	pSourceInfo, 						   UINT32	ulSeekTime);    HX_RESULT 		DoNetworkOpen(SourceInfo*& pSourceInfo, BOOL bAltURL);    HX_RESULT 		DoFileSystemOpen(SourceInfo*& pSourceInfo, BOOL bAltURL);    HX_RESULT		CreateSourceInfo(SourceInfo*& pSourceInfo, BOOL bAltURL);    HX_RESULT		PrepareSourceInfo(IHXValues* pTrack, SourceInfo*& pSourceInfo);    HX_RESULT		DoURLOpen(CHXURL* pURL, char* pMimeType);    HX_RESULT		DoAltURL(void);    HX_RESULT		DoAltURLOpen(char* pURL, BOOL bDefault, SourceInfo* pMainSourceInfo);    HX_RESULT		SpawnSourceIfNeeded(SourceInfo* pSourceInfo);    HX_RESULT		SwitchSourceIfNeeded(void);    HX_RESULT		DoRedirect(void);    HX_RESULT		OpenRedirect(const char* pszURL);    HX_RESULT		InitializeRenderers(void);    HX_RESULT		LayoutRenderers(void);    virtual HX_RESULT	ProcessIdleExt(void);    void		CreateDefaultRendererWindow			    (				RendererInfo*		    pRInfo,				IHXRenderer*		    pRend,				IHXBuffer*		    pDisplayInfo,				const char*		    pName			    );    void		CreateLayoutWindow			    (				IHXMetaLayout*			pLayout			    );    /************************************************************************     *	Method:     *		ExecuteCurrentEvents     *	Purpose:     *		Send any due packets to the renderers     *     */    HX_RESULT	ProcessCurrentEvents(void);    /************************************************************************     *	Method:     *		DeleteAllEvents     *	Purpose:     *		Remove all pending events due to seek/stop.     *     */    HX_RESULT	DeleteAllEvents(void);    HX_RESULT	SendPreSeekEvents(void);    void	StopAllStreams(EndCode endCode = END_STOP);        virtual HX_RESULT	SendPreSeekEventsExt(void);             virtual HX_RESULT	StopAllStreamsExt(EndCode endCode = END_STOP);        virtual SourceInfo*	    NewSourceInfo(void);    virtual HXFileSource*  NewFileSource(void);    virtual HXNetSource*   NewNetSource(void);    virtual HX_RESULT	    OpenTrackExt(void);    void	CloseAllRenderers(INT32 nGroupSwitchTo);    HX_RESULT	UnRegisterCurrentSources(void);    HX_RESULT	SetupAllStreams(void);    void	ResetPlayer(void);    void	ResetGroup(void);    void	SetMinimumPushdown(void);    void	SchedulePlayer(void);    HX_RESULT	CheckForAudioResume(void);    HX_RESULT	InitializeNetworkDrivers(void);    inline	void	UpdateCurrentPlayTime( ULONG32 ulCurrentPlayTime );        HX_RESULT	ActualReport(			    const UINT8	unSeverity,  			    HX_RESULT	ulHXCode,			    const ULONG32	ulUserCode,			    const char*	pUserString,			    const char*	pMoreInfoURL);    IHXPendingStatus*	m_pMetaSrcStatus;    // list of sources    CHXMapPtrToPtr*	m_pSourceMap;    CHXSimpleList*	m_pPendingTrackList;    // current time on the timeline for this player..    // this would either be updated by the audio services of any rendering object    // happens to be an audio renderer and decides to use our audio services...    // ELSE it will be updated by a timer object...     ULONG32		m_ulCurrentPlayTime;	    #if defined(_MACINTOSH) || defined(_MAC_UNIX)    // this tracks the current timeline for this player, with the caveat    // that it's only updated when the current play time is updated at    // system time. This is useful for deciding whether to allocated "extra"    // time to the player or giving it back to the system -- a pretty    // complicated issue on MacOS 8.    ULONG32		m_ulCurrentSystemPlayTime;#endif        // Length of all sources!    ULONG32		m_ulPresentationDuration;    // used to inform renderers the pre and post seek info..    ULONG32		m_ulTimeBeforeSeek;    ULONG32		m_ulTimeAfterSeek;    BufferingReason	m_BufferingReason;    CHXEventList	m_EventList;	// contains packets for all streams    IHXScheduler*	m_pScheduler;    /* m_uNumSourcesActive gets decremented when we have sucked out all the packets     * from the source      */    UINT16		m_uNumSourcesActive : 16;    /* m_uNumCurrentSourceNotDone gets decremented when a given source has received     * all the packets from the server     */    UINT16		m_uNumCurrentSourceNotDone : 16;    HX_BITFIELD		m_bSourceMapUpdated : 1;    HX_BITFIELD		m_bInitialized : 1;           // m_bIsDone: single presentation/individual group in a SMIL file    // m_bIsPresentationDone: single/SMIL presentation    HX_BITFIELD		m_bIsDone : 1;    HX_BITFIELD		m_bIsPresentationDone : 1;    HX_BITFIELD		m_bInStop : 1;    HX_BITFIELD		m_bIsPresentationClosedToBeSent : 1;    HX_BITFIELD		m_bCloseAllRenderersPending : 1;    HX_BITFIELD		m_bUseCoreThread : 1;    HX_BITFIELD		m_bCoreLocked : 1;    HX_BITFIELD		m_bPaused : 1;    HX_BITFIELD		m_bBeginPending : 1;    HX_BITFIELD		m_bIsFirstBeginPending : 1;    HX_BITFIELD		m_bIsFirstBegin : 1;    HX_BITFIELD		m_bUserHasCalledBegin : 1;    HX_BITFIELD		m_bTimelineToBeResumed : 1;    HX_BITFIELD		m_bIsPlaying : 1;    HX_BITFIELD		m_bNetInitialized : 1;    HX_BITFIELD		m_bPrefTransportInitialized : 1;    HX_BITFIELD		m_bSetupLayoutSiteGroup : 1;        HX_BITFIELD		m_bTimeSyncLocked : 1;    HX_BITFIELD		m_bIsLive : 1;    HX_BITFIELD		m_bLiveSeekToBeDone : 1;    HX_BITFIELD		m_bProcessEventsLocked : 1;    HX_BITFIELD		m_bDidWeDeleteAllEvents : 1;    ULONG32		m_ulLowestGranularity;    UINT32		m_ulElapsedPauseTime;    UINT32		m_ulLiveSeekTime;    UINT32		m_ulTimeOfPause;    UINT32		m_ulMinimumAudioPreroll;    UINT32		m_ulMinimumTotalPreroll;        friend class HXPlayerCallback;//#if defined(HELIX_FEATURE_STATS) && defined(HELIX_FEATURE_REGISTRY)    friend class UpdateStatsCallback;//#endif /* HELIX_FEATURE_STATS && HELIX_FEATURE_REGISTRY */    /* Used for multiple kive stream synchrnoization*/    UINT32		m_ulFirstTimeSync;    UINT32		m_ulFSBufferingEndTime;    UINT16		m_uNumSourceToBeInitializedBeforeBegin : 16;    HX_BITFIELD		m_bFastStartInProgress : 1;    HX_BITFIELD		m_bIsFirstTimeSync : 1;    HX_BITFIELD		m_bPlayerWithoutSources : 1;    HX_BITFIELD		m_bInternalPauseResume : 1;    HX_BITFIELD		m_bInternalReset : 1;    HX_BITFIELD		m_bCurrentPresentationClosed : 1;    HX_BITFIELD		m_bContactingDone : 1;    HX_BITFIELD		m_bFSBufferingEnd : 1;    HX_BITFIELD		m_bAllLocalSources : 1;    HX_BITFIELD		m_b100BufferingToBeSent : 1;    HX_BITFIELD		m_bSetupToBeDone : 1;    HX_BITFIELD		m_bPostSetupToBeDone : 1;    HX_BITFIELD		m_bInternalReportError : 1;    HX_BITFIELD		m_bPartOfNextGroup : 1;       HX_BITFIELD		m_bLastGroup : 1;    HX_BITFIELD		m_bNextGroupStarted : 1;    HX_BITFIELD		m_bBeginChangeLayoutTobeCalled : 1;    HX_BITFIELD		m_bPendingAudioPause : 1;    HX_BITFIELD		m_bPlayStateNotified : 1;    HX_BITFIELD		m_bResumeOnlyAtSystemTime : 1;    HX_BITFIELD		m_bSetModal : 1;#if defined(HELIX_FEATURE_PREFETCH)    PrefetchManager*	m_pPrefetchManager;#else    void*		m_pPrefetchManager;#endif /* HELIX_FEATURE_PREFETCH */#ifdef _WIN32    BOOL		m_bScreenSaverActive; #endif#if defined(HELIX_FEATURE_NEXTGROUPMGR)    NextGroupManager*	m_pNextGroupManager;#else    void*		m_pNextGroupManager;#endif /* HELIX_FEATURE_NEXTGROUPMGR*/    IHXGroup*		m_pCurrentGroup;    IHXPlayer*		m_pParentPlayer;    CHXSimpleList*	m_pChildPlayerList;#if defined(HELIX_FEATURE_ASM)    IHXBandwidthManager* m_pBandwidthMgr;    /* Only used for load testing */    IHXBandwidthManager* m_pASM;#endif /* HELIX_FEATURE_ASM */    CHXSimpleList	m_ToBeginRendererList;	    void		EnterToBeginList(RendererInfo* pRendInfo);    void		EmptyBeginList(void) {m_ToBeginRendererList.RemoveAll();};    HX_RESULT		CheckBeginList(void);    void		RemoveFromPendingList(RendererInfo* pRendInfo);    void		CheckToStartNextGroup(void);    void		AdjustPresentationTime(void);    void		SetPresentationTime(UINT32 ulPresentationTime);    void		UpdateSourceActive(void);    HX_RESULT		UpdateSourceInfo(SourceInfo* pSourceInfo, 					 UINT32 ulParentRegId,					 UINT16 ulTrackIndex);    HX_RESULT		UpdatePersistentSrcInfo(SourceInfo* pSourceInfo,                                                 UINT32 ulParentRegId,                                                UINT16 ulTrackIndex);    /*     * The following members are related to the new layout support.     */#if defined(HELIX_FEATURE_VIDEO)    CHXSiteManager*	m_pSiteManager;    IHXSiteSupplier*	m_pSiteSupplier;#else    void*		m_pSiteManager;    void*		m_pSiteSupplier;#endif /* HELIX_FEATURE_VIDEO */    CHXSimpleList	m_SiteRequestIDList;        void		SetupRendererSite(IUnknown* pRenderer, IHXValues* pProps, BOOL bIsPersistent);    void		SetupLayoutSiteGroup(IUnknown* pLSG, BOOL bIsPersistent);    STDMETHODIMP	SetupLayout(BOOL bIsPersistent);    STDMETHODIMP	CleanupLayout(void);    HX_RESULT		StartDownload(void);    HX_RESULT		PauseDownload(void);    void		UnregisterNonActiveSources();    BOOL		AreAllSourcesSeekable(void);    void		ResetError(void);    void		ResetRedirectList(void);    void		SetLastError(HX_RESULT theErr);    void		Close();    void		AbortPlayer(void);    void		StopPlayer(EndCode endCode = END_STOP);    HX_RESULT		PausePlayer(BOOL bNotifyTLC = TRUE);    HX_RESULT		SeekPlayer(ULONG32 ulTime);    HX_RESULT		BeginPlayer(void);    HX_RESULT		SetupAudioPlayer(void);    virtual HX_RESULT	PrepareAudioPlayer(void);//#if defined(HELIX_FEATURE_AUTHENTICATION)    void		ProcessPendingAuthentication();    void		ClearPendingAuthenticationRequests();//#endif /* HELIX_FEATURE_AUTHENTICATION */    void		SendPostSeekIfNecessary(RendererInfo* pRendererInfo);    BOOL		ScheduleOnTimeSync(void);    BOOL		DurationTimeSyncAllSent(SourceInfo* pSourceInfo);    virtual void	DisableScreenSaver();    void                RemovePendingCallback(CHXGenericCallback* pCB);#if defined(HELIX_FEATURE_AUTOUPGRADE)    IHXUpgradeCollection* m_pUpgradeCollection;#else    void* m_pUpgradeCollection;#endif /* HELIX_FEATURE_AUTOUPGRADE */    friend class NextGroupManager;//#if defined(HELIX_FEATURE_PREFETCH)    friend class PrefetchManager;//#endif /* HELIX_FEATURE_PREFETCH */        // used to notify of changes to the precache group#if defined(HELIX_FEATURE_ADVANCEDGROUPMGR)    friend class HXAdvancedGroup;        friend class HXAdvancedGroupManager;    #endif /* HELIX_FEATURE_ADVANCEDGROUPMGR */#if defined(HELIX_FEATURE_BASICGROUPMGR)    friend class HXBasicGroup;    friend class HXBasicGroupManager;#endif /* HELIX_FEATURE_BASICGROUPMGR */    HX_RESULT NextGroupSet(UINT16 uGroupIndex);//#if defined(HELIX_FEATURE_AUTHENTICATION)#ifndef _WIN16    // Store pending requests    friend class _CHXAuthenticationRequests;    _CHXAuthenticationRequests m_AuthenticationRequestsPending;#endif /* _WIN16 *///#endif /* HELIX_FEATURE_AUTHENTICATION */    HXMutex*		m_pCoreMutex;    /*     * -- LIVE SYNC SUPPORT --     *     * The following is related to shared wall clock support     * for syncronizing several live sources. See srcinfo.cpp     * for more informantion.     */private:    CHXMapStringToOb*	m_pSharedWallClocks;    friend class SharedWallClock;    IHXRecordService*	m_pRecordService;    BOOL                m_bRecordServiceEnabled;public:    BOOL FindSharedWallClocks(const char* pClockName, void*& ppValue)	    {		return m_pSharedWallClocks->Lookup(pClockName,ppValue);	    };};#if defined(HELIX_FEATURE_STATS) && defined(HELIX_FEATURE_REGISTRY)class UpdateStatsCallback : public IHXCallback{public:    HXPlayer*		m_pPlayer;    CallbackHandle	m_PendingHandle;    BOOL		m_bIsCallbackPending;			UpdateStatsCallback();    /*     *	IUnknown methods     */    STDMETHOD(QueryInterface)	(THIS_				    REFIID riid,				    void** ppvObj);    STDMETHOD_(ULONG32,AddRef)	(THIS);    STDMETHOD_(ULONG32,Release)	(THIS);    /*     *	IHXCallback methods     */    STDMETHOD(Func)		(THIS);protected:			~UpdateStatsCallback();    LONG32		m_lRefCount;};#endif /* HELIX_FEATURE_STATS && HELIX_FEATURE_REGISTRY */#if defined (_WIN32) || defined (_MACINTOSH) || defined(THREADS_SUPPORTED)class HXPlayerCallback : public CHXGenericCallback                       , public IHXInterruptSafe{public:        BOOL m_bInterrupSafe;    HXPlayerCallback(void* pParam, fGenericCBFunc pFunc);        STDMETHOD_(ULONG32,AddRef)	(THIS) {return CHXGenericCallback::AddRef();}    STDMETHOD_(ULONG32,Release)	(THIS) {return CHXGenericCallback::Release();}    STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj);    STDMETHOD_(BOOL,IsInterruptSafe) (THIS);protected:    ~HXPlayerCallback() {};};#endif //(_WIN32) || defined (_MACINTOSH) || defined(THREADS_SUPPORTED)#endif //_HXPLAYER_

⌨️ 快捷键说明

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