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

📄 smldoc.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 4 页
字号:
/* ***** BEGIN LICENSE BLOCK ***** 
 * Version: RCSL 1.0/RPSL 1.0 
 *  
 * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
 *      
 * The contents of this file, and the files included with this file, are 
 * subject to the current version of the RealNetworks Public Source License 
 * Version 1.0 (the "RPSL") available at 
 * http://www.helixcommunity.org/content/rpsl unless you have licensed 
 * the file under the RealNetworks Community Source License Version 1.0 
 * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
 * in which case the RCSL will apply. You may also obtain the license terms 
 * directly from RealNetworks.  You may not use this file except in 
 * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
 * applicable to this file, the RCSL.  Please see the applicable RPSL or 
 * RCSL for the rights, obligations and limitations governing use of the 
 * contents of the file.  
 *  
 * This file is part of the Helix DNA Technology. RealNetworks is the 
 * developer of the Original Code and owns the copyrights in the portions 
 * it created. 
 *  
 * This file, and the files included with this file, is distributed and made 
 * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
 * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
 * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
 * 
 * Technology Compatibility Kit Test Suite(s) Location: 
 *    http://www.helixcommunity.org/content/tck 
 * 
 * Contributor(s): 
 *  
 * ***** END LICENSE BLOCK ***** */ 

#ifndef SMLDOC_H
#define SMLDOC_H

// Forward declarations
typedef _INTERFACE IHXSite               IHXSite;
typedef _INTERFACE IHXValues             IHXValues;
typedef _INTERFACE IHXRenderer           IHXRenderer;
typedef _INTERFACE IHXGroup              IHXGroup;
typedef _INTERFACE IHXBuffer             IHXBuffer;
typedef _INTERFACE IHXScheduler          IHXScheduler;
typedef _INTERFACE IHXSiteManager        IHXSiteManager;
typedef _INTERFACE IHXStatusMessage      IHXStatusMessage;
typedef _INTERFACE IHXViewPortManager    IHXViewPortManager;
typedef _INTERFACE IHXErrorMessages      IHXErrorMessages;
typedef _INTERFACE IHXErrorSink          IHXErrorSink;
typedef _INTERFACE IHXHyperNavigate      IHXHyperNavigate;
typedef _INTERFACE IHXMutex              IHXMutex;
typedef _INTERFACE IHXSiteUser           IHXSiteUser;
typedef _INTERFACE IHXPlayer             IHXPlayer;
typedef _INTERFACE IHXPersistentRenderer IHXPersistentRenderer;
typedef _INTERFACE IHXLayoutStream       IHXLayoutStream;
typedef void*                             LISTPOSITION;
typedef void*                             POSITION;
class  CSmilRenderer;
class  CSmilAddGroup;
class  CSmilRegion;
class  CSmilRegPoint;
#if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT)
class  CSmilViewport;
#endif /* #if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT) */
class  CSmilRootLayout;
class  CSmilSource;
class  CSmilMeta;
class  CSmilMetadata;
class  CSmilEndLayout;
class  CSmilRendererPreFetch;
class  CSmilSourceUpdate;
class  CSmilTransition;
class  SMILNode;
class  CSmilAnimateElement;
class  CSmilElement;
class  CSmilSiteUser;
class  CSmilBasicRegion;
#if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT)
class  CSmilBasicViewport;
#endif /* #if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT) */
#if defined(HELIX_FEATURE_SMIL2_TRANSITIONS)
class  CSmilTransitionInfo;
#endif /* #if defined(HELIX_FEATURE_SMIL2_TRANSITIONS) */
class  CAnimationSandwichLayer;
class  CSmilBasicBox;
class  CSmilAnimateInfo;
class  CAttr;
class  CSmilSiteWatcher;
class  CSmilLayoutEvent;
class  CHXSimpleList;
class  CSmilAAnchorElement;
class  CSmilParser;
class  CHXMapStringToOb;
class  CSmilBasicRootLayout;
class  CHXMapPtrToPtr;
class  CHXMapLongToObj;
class  CSmilTransition;
class  CSmilShowSiteEvent;
class  CSmilAnimateEvent;
class  CHyperlinkCallback;
class  HandlePendingSchedulingCallback;
class  CHXString;
class  CHXStack;
class  CExternalMediaMarkerInfo;
#if defined(_MACINTOSH) || defined(_MAC_UNIX)
class CResourceLoader;
#elif defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX)))
class XData;
#endif
struct SMILSiteInfo;
struct SMILPlayToAssoc;
struct SMILGroupInfo;
struct SMILSourceInfo;

#if defined(_UNIX) && (!(defined(_BEOS))) && (!(defined(_MAC_UNIX)))
//We need to include the X headers...
// XXXMEH - try to get rid of these - not
// usually a good idea to have includes
// inside of a header file
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include "hxmap.h"
#include "hxvsurf.h"
#endif

#define DEFAULT_ROOT_LAYOUT_WIDTH  320
#define DEFAULT_ROOT_LAYOUT_HEIGHT 240

class CSmilDocumentRenderer:  public IHXRendererAdviseSink,
                              public IHXClientAdviseSink,
                              public IHXGroupSink,
                              public IHXPrefetchSink,
                              public IHXTrackSink,
#if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT)
                              public IHXViewPortSink,
#if defined(XXXMEH_DO_VIEWPORT_TLC)
                              public IHXViewPortSupplier,
#endif
#endif /* #if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT) */
#if defined(BE_SITE_SUPPLIER_20010205)
                              public IHXSiteSupplier,
#endif
                              public IHXMediaMarkerSink,
                              public IHXEventSink,
                              public IHXErrorSink,
                              public CSmilElementHandler,
                              public CSmilEventHookResponse,
                              public CSmilSiteUserResponse,
                              public CSmilPassiveSiteWatcherResponse
{
public:
    CSmilDocumentRenderer(CSmilRenderer* pParent, IUnknown* pContext);
    virtual ~CSmilDocumentRenderer();

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

    // IHXRendererAdviseSink methods
    STDMETHOD(TrackDurationSet)         (THIS_ UINT32 ulGroupIndex, UINT32 ulTrackIndex,
                                               UINT32 ulDuration,   UINT32 ulDelay,
                                               BOOL   bIsLive);
    STDMETHOD(RepeatedTrackDurationSet) (THIS_ const char* pID, UINT32 ulDuration,
                                               BOOL bIsLive);
    STDMETHOD(TrackUpdated)             (THIS_ UINT32 ulGroupIndex, UINT32 ulTrackIndex,
                                               IHXValues* pValues);
    STDMETHOD(RendererInitialized)      (THIS_ IHXRenderer* pRend, IUnknown* pStream,
                                               IHXValues* pInfo);
    STDMETHOD(RendererClosed)           (THIS_ IHXRenderer* pRend, IHXValues* pInfo);

   // IHXClientAdviseSink methods               ref:  hxclsnk.h
    STDMETHOD (OnPosLength)  (THIS_ UINT32 ulPosition, UINT32 ulLength);
    STDMETHOD (OnPresentationOpened) (THIS);
    STDMETHOD (OnPresentationClosed) (THIS);
    STDMETHOD (OnStatisticsChanged)  (THIS);
    STDMETHOD (OnPreSeek)    (THIS_ UINT32 ulOldTime, UINT32 ulNewTime);
    STDMETHOD (OnPostSeek)   (THIS_ UINT32 ulOldTime, UINT32 ulNewTime);
    STDMETHOD (OnStop)       (THIS);
    STDMETHOD (OnPause)      (THIS_ UINT32 ulTime);
    STDMETHOD (OnBegin)      (THIS_ UINT32 ulTime);
    STDMETHOD (OnBuffering)  (THIS_ UINT32 ulFlags, UINT16 unPercentComplete);
    STDMETHOD (OnContacting) (THIS_ const char* pHostName);

    // IHXGroupSink methods
    STDMETHOD(GroupAdded)       (THIS_ UINT16 uGroupIndex, IHXGroup* pGroup);
    STDMETHOD(GroupRemoved)     (THIS_ UINT16 uGroupIndex, IHXGroup* pGroup);
    STDMETHOD(AllGroupsRemoved) (THIS);
    STDMETHOD(TrackAdded)       (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pTrack);
    STDMETHOD(TrackRemoved)     (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pTrack);
    STDMETHOD(TrackStarted)     (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pTrack);
    STDMETHOD(TrackStopped)     (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex, IHXValues* pTrack);
    STDMETHOD(CurrentGroupSet)  (THIS_ UINT16 uGroupIndex, IHXGroup* pGroup);

    // IHXPrefetchSink methods
    STDMETHOD(PrefetchTrackAdded)   (THIS_ UINT16 uGroupIndex, UINT16 uPrefetchTrackId,
                                           IHXValues* pTrack);
    STDMETHOD(PrefetchTrackRemoved) (THIS_ UINT16 uGroupIndex, UINT16 uPrefetchTrackId,
                                           IHXValues* pTrack);
    STDMETHOD(PrefetchTrackDone)    (THIS_ UINT16 uGroupIndex, UINT16 uPrefetchTrackId,
                                           HX_RESULT   status);

    // IHXTrackSink methods
    STDMETHOD(BeginDone)             (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex);
    STDMETHOD(SeekDone)              (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex,
                                            UINT32 ulSeekTime);
    STDMETHOD(PauseDone)             (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex);
    STDMETHOD(StopDone)              (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex);
    STDMETHOD(OnSoundLevelAnimation) (THIS_ UINT16 uGroupIndex, UINT16 uTrackIndex,
                                            UINT32 ulSoundLevelAnimationTime);

#if defined(HELIX_FEATURE_SMIL2_MULTIWINDOWLAYOUT)

⌨️ 快捷键说明

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