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

📄 sm1doc.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
    void resizeSite			(HXxSize newSize);
    void resizeSite			(IHXSite* pSite,
					double dXScale,
					double dYScale);
    void resizeRegionSiteAbs(CSmil1BasicRegion* pRegion,
                             double            dXAbsScale,
                             double            dYAbsScale);
    BOOL draw				(HXxEvent* pEvent,
					IHXSite* pSite,
					HXxColor ulBgColor);
    void insertZOrder			(IHXSite* pSite, 
					INT32 lZOrder);
    void setZOrder			();
    HX_RESULT handleElements		();
    void setProperty			(IHXValues* pValues, 
					const char* pName, 
					const char* pValue);
    HX_RESULT parseDimension		(const char* pDimensionString,
					REF(UINT32) ulValue,
					REF(BOOL) bIsPercent);
    HX_RESULT regionToRect		(CSmil1Region* pElement,
					HXxRect* pRect,
					BOOL& bWidthUnspecified,
					BOOL& bHeightUnspecified);
    CSmil1AAnchorElement*
	findHyperlinkElement		(const char* pID,
					UINT16 uXPos,
					UINT16 uYPos);
    HX_RESULT convertURL		(const char* pURL,
					CHXString& newURL);
    HX_RESULT updateStreamTiming	(const char* pElementID,
					UINT32 ulDuration);
    HX_RESULT updateStreamDelay		(UINT16 uGroupIndex,
					UINT32 ulDelay);
    HX_RESULT updateSiteEvents		(UINT16 uGroupIndex);
    HX_RESULT createRegionSites		();

    void      RemoveEvents		(UINT32 ulGroupIndex, IHXSite* pSite);
    HX_RESULT flushAllEvents		(UINT32 ulFlushToTime, BOOL bBreak=FALSE );
    inline HX_RESULT flushAllEvents () { return flushAllEvents( m_ulCurrentTime ); }

    BOOL      IsFullScreen();
    void      computeMediaFitSize(HXxSize cRegSize, HXxSize cMedSize,
                                  const char* pszFitAttr, REF(HXxSize) rcFitSize);
    HX_RESULT getPreference(IUnknown*        pContext,
                            const char*      pszKey,
                            REF(IHXBuffer*) rpValue);
    HX_RESULT getBooleanPreference(IUnknown*   pContext, 
                                   const char* pszKey,
                                   REF(BOOL)   rbValue);

#if defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX)))
    void ConvertPNxColorToXColor(HXxColor hxxColor, XColor& xcolor);
    XData* InitXVisualSupport(IHXSite* pSite, HXxWindow* pWnd);
#endif

    CSmil1Renderer*			m_pParent;
    CSmil1Parser*			m_pSmilParser;
    HX_RESULT				m_ulParseResult;
    IHXSite*				m_pMISUSSite;
    IHXScheduler*			m_pScheduler;
public:
    HXxSize				m_topSiteSize;
    HXxSize				m_topSiteOriginalSize;
private:
    IHXValues*				m_pValues;
    char*				m_pFragment;
    CHXMapStringToOb*			m_pRegionMap;
    CHXMapPtrToPtr*			m_pSiteInfoByRendererMap;
    CHXMapPtrToPtr*			m_pSiteWatcherMap;
    CHXMapLongToObj*			m_pGroupInfoMap;
    CHXMapLongToObj*			m_pGroupMap;
    CHXMapStringToOb*			m_pDeferredSourceMap;
    CHXMapStringToOb*			m_pRepeatIDMap;
    CHXSimpleList*			m_pSiteInfoList;
    CHXSimpleList*			m_pPlayToAssocList;
    CHXSimpleList*			m_pEventList;
    CHXSimpleList*			m_pZOrderList;
    LISTPOSITION			m_ulEventListPosition;
    INT16				m_uCurrentGroupIndex;
    INT16				m_nFragmentTracks;
    UINT32				m_ulCurrentTime;
    LONG32				m_lRefCount;
    IUnknown*				m_pContext;
    IHXSiteManager*			m_pSiteMgr;
    IHXStatusMessage*			m_pStatusMessage;
    BOOL				m_bFirstTimeSync;
    BOOL				m_bSettingFragment;
    BOOL				m_bInHyperlink;
    BOOL				m_bShowDependencies;
    BOOL				m_bSiteLayoutComplete;
    BOOL				m_bStatusMessageSet;
    double				m_dResizeXScale;
    double				m_dResizeYScale;
    UINT32                              m_ulPktnum;
    UINT16                              m_usOldXPos;
    UINT16                              m_usOldYPos;
    ProcessElementCallback*		m_pProcessElementCallback;

#ifdef _WINDOWS
    HCURSOR 				m_hHyperlinkCursor;
    HCURSOR				m_hPreHyperlinkCursor;
    BOOL				m_bNeedToSetHyperlinkCursor;
#endif
#if defined(_MACINTOSH) || defined(_MAC_UNIX)
    BOOL				m_bResetCursor;
    CursHandle				m_hHyperlinkCursor;
    CResourceLoader*			m_pResourceLoader;
#endif

#if defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX)))
    // needed for background drawing
    XVisualInfo*                        m_pVisualInfo;
    Cursor                              m_hHyperlinkCursor;
    Cursor                              m_hCurrentCursor;
    Display*                            m_pDisplay;          
    Window                              m_Window;
    Display*                            m_pPixmapDisplay;
    CHXMapPtrToPtr                      m_siteToXDataMap;
#endif

    BOOL				m_bRootLayoutWidthSet;
    BOOL				m_bRootLayoutHeightSet;
    UINT32				m_ulRootLayoutHeight;
    UINT32				m_ulRootLayoutWidth;
    HXxColor				m_ulRootLayoutBGColor;

    UINT32		    m_ulGroupIndex;
    UINT32		    m_ulTrackIndex;
    UINT16		    m_uGroupIndexWithin;
    BOOL		    m_bSitesDetached;
    BOOL		    m_bInRAM20;
    BOOL		    m_bLastGroupInRAM20;
    INT32		    m_ulPersistentComponentDelay;
    UINT32		    m_ulPersistentComponentID;
    UINT16		    m_uPersistentGroupID;
    UINT16		    m_uPersistentTrackID;
    ElementWithinTag	    m_elementWithinTag;
    IHXValues*		    m_pPersistentProperties;
    IHXPersistentRenderer* m_pPersistentParentRenderer;
    BOOL                    m_bCloseCalled;

    HX_RESULT		    InitPersistent(UINT32		    ulPersistentComponentID,
					   UINT16		    uPersistentGroupID,
					   UINT16		    uPersistentTrackID,
					   IHXPersistentRenderer*  pPersistentParent);

    HX_RESULT		    setupRootLayout();
    BOOL		    IsNestedMetaSupported(UINT16& uSupportedType);
    void		    PersistentDurationSet(UINT32 ulDuration, UINT32 ulDelay, BOOL bIsLive);
};

class CSmil1SiteWatcher: public CHXBaseCountingObject,
                         public IHXSiteWatcher
{
public:
    CSmil1SiteWatcher		    (CSmil1DocumentRenderer* pDoc, 
				    const char* pID,
				    BOOL bIsChildSite);
    ~CSmil1SiteWatcher		    ();

    HX_RESULT close		    ();

    IHXSite*			    GetSite() { return m_pSite; }
    void			    SiteChangingSize(BOOL bFlag) { m_bChangingSize = bFlag; }

    /*
     * IUnknown methods
     */
    STDMETHOD(QueryInterface)	    (THIS_
				    REFIID riid,
				    void** ppvObj);
    STDMETHOD_(ULONG32, AddRef)	    (THIS);
    STDMETHOD_(ULONG32, Release)    (THIS);

    /*
     * IHXSiteWatcher methods
     */
    STDMETHOD(AttachSite)	    (THIS_
				    IHXSite* pSite);

    STDMETHOD(DetachSite)	    (THIS);
				    
    STDMETHOD(ChangingPosition)	    (THIS_
				    HXxPoint posOld,
				    REF(HXxPoint) posNew);

    STDMETHOD(ChangingSize)	    (THIS_
				    HXxSize sizeOld,
				    REF(HXxSize) posNew);
private:
    CHXString		    	    m_id;
    CSmil1DocumentRenderer*  	    m_pDoc;
    IHXSite*		    	    m_pSite;
    BOOL			    m_bIsChildSite;
    BOOL			    m_bChangingSize;
    LONG32		    	    m_lRefCount;
    BOOL                            m_bFirstSetSize;
};

class CSmil1EventHook: public CHXBaseCountingObject,
                       public IHXEventHook
{
public:
    CSmil1EventHook		    (CSmil1DocumentRenderer* pDoc,
				    const char* pRegionName,
				    const char* pChannelName,
				    BOOL bNoRegion);
    virtual ~CSmil1EventHook	    ();

    /*
     * IUnknown methods
     */
    STDMETHOD(QueryInterface)	    (THIS_
				    REFIID riid,
				    void** ppvObj);
    STDMETHOD_(ULONG32, AddRef)	    (THIS);
    STDMETHOD_(ULONG32, Release)    (THIS);

    /*
     * IHXEventHook methods
     */
    STDMETHOD(HandleEvent)	    (IHXSite* pSite,
				    HXxEvent* pEvent);
    STDMETHOD(SiteAdded)	    (IHXSite* pSite);
    STDMETHOD(SiteRemoved)	    (IHXSite* pSite);
    
    char*			    m_pChannelName;

private:
    CSmil1DocumentRenderer*	    m_pDoc;
    char*			    m_pRegionName;
    IHXSite*			    m_pSite;
    BOOL			    m_bNoRegion;
    CSmil1PassiveSiteWatcher*	    m_pSiteWatcher;
    LONG32			    m_lRefCount;
};

class CSmil1PassiveSiteWatcher: public CHXBaseCountingObject,
                                public IHXPassiveSiteWatcher
{
public:
    CSmil1PassiveSiteWatcher	    (CSmil1DocumentRenderer* pDoc,
				    const char* pRegionName);
    ~CSmil1PassiveSiteWatcher	    ();

    /*
     * IUnknown methods
     */
    STDMETHOD(QueryInterface)	    (THIS_
				    REFIID riid,
				    void** ppvObj);
    STDMETHOD_(ULONG32, AddRef)	    (THIS);
    STDMETHOD_(ULONG32, Release)    (THIS);

    /*
     * IHXPassiveSiteWatcher methods
     */
    STDMETHOD(PositionChanged)	    (THIS_
				    HXxPoint* pPoint);
    STDMETHOD(SizeChanged)	    (THIS_
				    HXxSize* pSize);

private:
    LONG32			    m_lRefCount;
    CSmil1DocumentRenderer*	    m_pDoc;
    char*			    m_pRegionName;
};

class CSmil1SiteUser: public CHXBaseCountingObject,
                      public IHXSiteUser
{
public:
    CSmil1SiteUser		    (CSmil1DocumentRenderer* pDoc,
				    HXxColor ulBGColor);
    ~CSmil1SiteUser		    ();

    /*
     * IUnknown methods
     */
    STDMETHOD(QueryInterface)	    (THIS_
				    REFIID riid,
				    void** ppvObj);
    STDMETHOD_(ULONG32, AddRef)	    (THIS);
    STDMETHOD_(ULONG32, Release)    (THIS);

    /*
     * IHXSiteUser methods
     */
    STDMETHOD(AttachSite)	    (THIS_
				    IHXSite* pSite);
    STDMETHOD(DetachSite)	    (THIS);
    STDMETHOD(HandleEvent)	    (THIS_
				    HXxEvent* pEvent);
    STDMETHOD_(BOOL,NeedsWindowedSites)	(THIS);

private:
    LONG32			    m_lRefCount;
    HXxColor			    m_ulBGColor;
    CSmil1DocumentRenderer*	    m_pDoc;
    IHXSite*			    m_pSite;
};

/*
 * CSmil1BasicRegion methods
 */

class CSmil1BasicRegion : public CHXBaseCountingObject
{
public:
    CSmil1BasicRegion		    (const char* pName, 
				    HXxRect rect, 
				    INT32 lZindex, 
				    const char* pFit, 
				    HXxColor ulBgColor,
				    BOOL bBgColorSet, 
				    BOOL bImplicitRegion,
				    BOOL bWidthUnspecified,
				    BOOL bHeightUnspecified);
    ~CSmil1BasicRegion();

    HXxRect m_rect;
    HXxRect m_originalRect;
    HXxSize m_mediaSize;
    HXxSize m_originalMediaSize;
    BOOL    m_bMediaSizeSet;
    IHXSite* m_pSite;
    IHXSiteUser* m_pSiteUser;
    INT32 m_lZIndex;
    CHXString m_region;
    CHXString m_fit;
    HXxColor m_ulBgColor;
    BOOL m_bBgColorSet;
    BOOL m_bImplicitRegion;
    BOOL m_bWidthUnspecified;
    BOOL m_bHeightUnspecified;
};

class ProcessElementCallback : public IHXCallback
{
public:
    CHXString			m_elementID;
    CSmil1DocumentRenderer*	m_pOwner;
    CallbackHandle		m_PendingHandle;
    BOOL			m_bIsCallbackPending;

			ProcessElementCallback();
    /*
     *	IUnknown methods
     */
    STDMETHOD(QueryInterface)	(THIS_
				REFIID riid,
				void** ppvObj);
    STDMETHOD_(ULONG32,AddRef)	(THIS);
    STDMETHOD_(ULONG32,Release)	(THIS);

    /*
     *	IHXCallback methods
     */
    STDMETHOD(Func)		(THIS);

protected:
			~ProcessElementCallback();
    LONG32		m_lRefCount;
};

#endif /* _SM1DOC_H_ */

⌨️ 快捷键说明

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