smlrtype.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:7k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef SMLRTYPE_H
  36. #define SMLRTYPE_H
  37. // Forward declarations
  38. typedef _INTERFACE IHXSite           IHXSite;
  39. typedef _INTERFACE IHXSiteManager    IHXSiteManager;
  40. typedef _INTERFACE IHXRenderer       IHXRenderer;
  41. typedef _INTERFACE IHXSiteTransition IHXSiteTransition;
  42. typedef _INTERFACE IHXValues         IHXValues;
  43. class CHXMapLongToObj;
  44. class CHXString;
  45. class CHXSimpleList;
  46. class CSmilEventHook;
  47. class CSmilTransition;
  48. //
  49. // struct that associates group,track,and playto property of a stream
  50. //
  51. struct SMILPlayToAssoc
  52. {
  53.     UINT16          m_uGroupIndex;
  54.     UINT16          m_uTrackIndex;
  55.     CHXMapLongToObj m_sourceMap;
  56.     CHXString       m_playTo;
  57.     CHXString       m_id;
  58.     CHXString       m_repeatid;
  59.     CHXString       m_tunerName;
  60.     CHXString       m_childTunerName;
  61.     CHXString       m_regionName;
  62.     CHXString       m_beginTransition;
  63.     CHXString       m_endTransition;
  64.     UINT32          m_ulDelay;
  65.     UINT32          m_ulDuration;
  66.     CHXSimpleList*  m_pHyperlinks;
  67.     CSmilEventHook* m_pRendererEventHook;
  68.     CHXSimpleList*  m_pSiteInfoList;
  69.     INT32           m_ulLexicalOrder;
  70.     CHXString       m_URL;
  71.     // ONLY HX_BITFIELD MEMBERS SHOULD GO BELOW THIS LINE!
  72.     // ALL OTHER MEMBER TYPES SHOULD GO ABOVE THIS LINE!
  73.     HX_BITFIELD     m_bIsPersistentSource : 1;
  74.     HX_BITFIELD     m_bDurationResolved : 1;
  75.     HX_BITFIELD     m_bRemoveSite : 1;
  76.     HX_BITFIELD     m_bRemovePending : 1;
  77.     HX_BITFIELD     m_bLiveSource : 1;
  78.     HX_BITFIELD     m_bXMMSource : 1;
  79.     HX_BITFIELD     m_bTrackStopped : 1;
  80. };
  81. //
  82. // site information - used
  83. // to handle site show/hide
  84. // behavior in seek and hyperlinking
  85. //
  86. struct SMILSiteInfo
  87. {
  88.     IHXSite*     m_pRendererSite;
  89.     IHXSite*     m_pRegionSite;
  90.     HXxSize       m_rendererSize;
  91.     UINT16        m_uGroupIndex;
  92.     UINT32        m_ulDelay;
  93.     UINT32        m_ulDuration;
  94.     UINT32        m_ulResumeTime;
  95.     CHXString     m_regionID;
  96.     IHXRenderer* m_pRenderer;
  97.     UINT32        m_ulLexicalOrder;
  98.     CHXString     m_MediaID;
  99.     INT32         m_lZIndex;
  100.     // ONLY HX_BITFIELD MEMBERS SHOULD GO BELOW THIS LINE!
  101.     // ALL OTHER MEMBER TYPES SHOULD GO ABOVE THIS LINE!
  102.     HX_BITFIELD   m_bRemoveSite : 1;
  103.     HX_BITFIELD   m_bNoRegion : 1;
  104. };
  105. // source information - contained
  106. // in SMILPlayToAssoc.m_sourceMap
  107. struct SMILSourceInfo
  108. {
  109.     IUnknown*       m_pStream;
  110.     IHXRenderer*   m_pRenderer;
  111.     CHXString       m_tunerName;
  112.     CHXString       m_childTunerName;
  113.     CSmilEventHook* m_pRendererEventHook;
  114.     UINT32          m_ulDuration;
  115.     UINT32          m_ulDelay;
  116. };
  117. struct SMILTransitionState
  118. {
  119.     UINT32              m_ulEndPercent;
  120.     UINT32              m_ulStartPercent;
  121.     UINT32              m_ulEndTime;
  122.     UINT32              m_ulDuration;
  123.     UINT16              m_uGroupIndex;
  124.     BOOL                m_bBegin;
  125.     IHXSiteTransition* m_pSiteTransition;
  126.     CHXString           m_id;
  127. };
  128. //
  129. // Renderer That Closed
  130. //
  131. struct SMILDelayedRendererClose
  132. {
  133.     UINT16        m_uGroup;
  134.     IHXRenderer* m_pRenderer;
  135.     IHXValues*   m_pInfo;
  136.     SMILSiteInfo* m_pSiteInfo;
  137. };
  138. //
  139. // group information
  140. //
  141. struct SMILGroupInfo
  142. {
  143.     int    m_nTracks;
  144.     int    m_nTracksAdded;
  145.     int    m_nTrackDurationsSet;
  146.     UINT32 m_ulDuration;
  147.     BOOL   m_bDurationSet;
  148. };
  149. //
  150. // event source info (endsync in SMIL)
  151. //
  152. struct SMILDeferredSourceInfo
  153. {
  154.     UINT32 m_ulDuration;
  155.     UINT32 m_ulDelay;
  156. };
  157. #if defined(BE_SITE_SUPPLIER_20010205)
  158. class SMILChildSiteInfo
  159. {
  160. public:
  161.     SMILChildSiteInfo(IHXSite*        pChildSite,
  162.                       IHXSite*        pParentSite,
  163.                       IHXSiteManager* pSiteMgr);
  164.     ~SMILChildSiteInfo();
  165.     IHXSite*        m_pChildSite;
  166.     IHXSite*        m_pParentSite;
  167.     IHXSiteManager* m_pSiteMgr;
  168. private:
  169.     SMILChildSiteInfo() {}; // /Don't allow default constructor.
  170. };
  171. #endif // defined(BE_SITE_SUPPLIER_20010205)
  172. class CExternalMediaMarkerInfo
  173. {
  174. public:
  175.     CExternalMediaMarkerInfo();
  176.     virtual ~CExternalMediaMarkerInfo();
  177.     char*          m_pszAddTrackURL;
  178.     char*          m_pszRendererURL;
  179.     CHXSimpleList* m_pIDList;
  180.     UINT16         m_usGroupIndex;
  181.     UINT16         m_usTrackIndex;
  182. };
  183. // /The CSmilDocumentRenderer's m_pPlayerResumeStack contains these:
  184. class CSmilPlayerResumePos
  185. {
  186. public:
  187.     CSmilPlayerResumePos(INT16 iGrp, UINT32 ulTime,
  188.                          SMILLinkPlaystate linkPlaystate);
  189.     ~CSmilPlayerResumePos() {};
  190.     INT16             m_iCurrentGroupIndex;
  191.     UINT32            m_ulCurrentTime;
  192.     SMILLinkPlaystate m_kLinkPlaystate;
  193. private:
  194.     CSmilPlayerResumePos() {}; // /Don't allow default constructor..
  195. };
  196. #if defined(HELIX_FEATURE_SMIL2_TRANSITIONS)
  197. class CSmilTransitionInfo
  198. {
  199. public:
  200.     CSmilTransitionInfo(CSmilTransition* pTrans, IUnknown* pUnk);
  201.     virtual ~CSmilTransitionInfo();
  202.     CSmilTransition* m_pTrans;
  203.     IUnknown*        m_pContext;
  204. };
  205. #endif /* #if defined(HELIX_FEATURE_SMIL2_TRANSITIONS) */
  206. #endif