sm1elem.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:9k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: sm1elem.h,v 1.1.22.1 2004/07/09 01:57:34 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49.  
  50. #ifndef _SM1ELEM_H_
  51. #define _SM1ELEM_H_
  52. #include "sm1parse.h"
  53. class CSmil1AddGroup;
  54. class CSmil1Region;
  55. class CSmil1RootLayout;
  56. class CSmil1Source;
  57. class CSmil1MetaValues;
  58. class CSmil1EndLayout;
  59. class CSmil1SourceUpdate;
  60. class CSmil1TimelineElement;
  61. class CSmil1ElementHandler
  62. {
  63. public:
  64.     virtual HX_RESULT handleAddGroup(CSmil1AddGroup* pAddGroup) = 0;
  65.     virtual HX_RESULT handleRootLayout(CSmil1RootLayout* pRootLayout) = 0;
  66.     virtual HX_RESULT handleRegion(CSmil1Region* pRegion) = 0;
  67.     virtual HX_RESULT handleSource(CSmil1Source* pSource) = 0;
  68.     virtual HX_RESULT handleMeta(CSmil1Meta* pMeta) = 0;
  69.     virtual HX_RESULT handleEndLayout(CSmil1EndLayout* pEndLayout) = 0;
  70.     virtual HX_RESULT handleRendererPreFetch(CSmil1RendererPreFetch* pRend) = 0;
  71.     virtual HX_RESULT handleSourceUpdate(CSmil1SourceUpdate* pUpdate) = 0;
  72. };
  73. class CSmil1Element
  74. {
  75. public:
  76.     CSmil1Element (SMIL1Node* pNode);
  77.     virtual ~CSmil1Element ();
  78.     virtual void addDuration (UINT32 ulDuration);
  79.     virtual void addElement (CSmil1Element* pElement,
  80.      UINT32& ulStartTime,
  81. UINT32& ulDuration);
  82.     virtual HX_RESULT handleElement () { return HXR_OK; }
  83.     UINT32 m_ulClipBegin; // start of clip
  84.     UINT32 m_ulClipEnd; // clip end time
  85.     UINT32 m_ulBeginOffset; // clip delay
  86.     UINT32 m_ulDuration; // clip duration
  87.     UINT32 m_ulMaxDuration;
  88.     UINT32 m_ulTimestamp; // timestamp to send packet
  89.     UINT32 m_ulEndOffset;
  90.     UINT32 m_ulEndSync;
  91.     UINT32 m_ulDelay; // presentation delay
  92.     BOOL   m_bInsertedIntoTimeline; // TRUE when inserted
  93.     BOOL   m_bIndefiniteDuration;
  94.     UINT32 m_ulRepeatValue;
  95.  
  96.     CHXString m_title;
  97.     SMILEventSourceTag m_nBeginEventSourceTag;
  98.     CHXString m_BeginEventSourceID;
  99.     UINT32 m_ulBeginEventClockValue;
  100.     SMILEventSourceTag m_nEndEventSourceTag;
  101.     CHXString m_EndEventSourceID;
  102.     UINT32 m_ulEndEventClockValue;
  103.     
  104.     SMILEventSourceTag m_nEndsyncEventSourceTag;
  105.     CHXString m_EndsyncEventSourceID;
  106.     SMIL1Node* m_pNode;
  107.     CSmil1TimelineElement* m_pTimelineElement;
  108.     CSmil1ElementHandler* m_pHandler;
  109.     CHXSimpleList* m_pHyperlinks;
  110. };
  111. class CSmil1AddGroup: public CSmil1Element
  112. {
  113. public:
  114.     CSmil1AddGroup ();
  115.     virtual ~CSmil1AddGroup ();
  116.     virtual HX_RESULT handleElement ();
  117.     IHXValues* m_pValues;
  118.     int m_nGroup;
  119.     int m_nTotalTracks;
  120.     int m_nInitTracks;
  121.     UINT32 m_ulDuration;
  122. };
  123. class CSmil1RootLayout: public CSmil1Element
  124. {
  125. public:
  126.     CSmil1RootLayout (SMIL1Node* pNode);
  127.     virtual ~CSmil1RootLayout ();
  128.     virtual HX_RESULT handleElement ();
  129.     UINT32 m_ulHeight;
  130.     UINT32 m_ulWidth;
  131.     BOOL m_bWidthUnspecified;
  132.     BOOL m_bHeightUnspecified;
  133.     HXxColor m_ulBgColor;
  134.     CHXString m_overflow;
  135.     CHXString m_title;
  136. };
  137. class CSmil1Region: public CSmil1Element
  138. {
  139. public:
  140.     CSmil1Region (SMIL1Node* pNode);
  141.     virtual ~CSmil1Region ();
  142.     virtual HX_RESULT handleElement ();
  143.     CHXString m_left;
  144.     CHXString m_top;
  145.     CHXString m_height;
  146.     CHXString m_width;
  147.     INT32 m_zIndex;
  148.     CHXString m_fit;
  149.     HXxColor m_ulBgColor;
  150.     BOOL m_bBgColorSet;
  151. private:
  152. };
  153. class CSmil1Meta: public CSmil1Element
  154. {
  155. public:
  156.     CSmil1Meta (SMIL1Node* pNode);
  157.     virtual ~CSmil1Meta ();
  158.     virtual HX_RESULT handleElement ();
  159.     CHXString m_name;
  160.     CHXString m_content;
  161. };
  162. class CSmil1RendererPreFetch: public CSmil1Element
  163. {
  164. public:
  165.     CSmil1RendererPreFetch (SMIL1Node* pNode);
  166.     virtual ~CSmil1RendererPreFetch ();
  167.     virtual HX_RESULT handleElement ();
  168.     CHXString m_mimeType;
  169. };
  170. class CSmil1EndLayout: public CSmil1Element
  171. {
  172. public:
  173.     CSmil1EndLayout ();
  174.     virtual ~CSmil1EndLayout ();
  175.     virtual HX_RESULT handleElement ();
  176. };
  177. class CSmil1MetaValues: public CSmil1Element
  178. {
  179. public:
  180.     CSmil1MetaValues ();
  181.     virtual ~CSmil1MetaValues ();
  182.     IHXValues* m_pValues;
  183. };
  184. class CSmil1Source: public CSmil1Element
  185. {
  186. public:
  187.     CSmil1Source (SMIL1Node* pNode);
  188.     virtual ~CSmil1Source ();
  189.     virtual HX_RESULT handleElement ();
  190.     void setRange (const char* pRange);
  191.     CHXString m_src;
  192.     CHXString m_region;
  193.     CHXString m_fill;
  194. };
  195. class CSmil1SourceUpdate: public CSmil1Element
  196. {
  197. public:
  198.     CSmil1SourceUpdate ();
  199.     virtual ~CSmil1SourceUpdate ();
  200.     virtual HX_RESULT handleElement ();
  201.     CHXString m_srcID;
  202.     UINT32 m_ulUpdatedDuration;
  203.     UINT32 m_ulUpdatedDelay;
  204. };
  205. class CSmil1AAnchorElement: public CSmil1Element
  206. {
  207. public:
  208.     CSmil1AAnchorElement (SMIL1Node* pNode);
  209.     virtual ~CSmil1AAnchorElement ();
  210.     virtual BOOL isCurrentLink (UINT32 ulTime,
  211. UINT32 ulXOffset,
  212. UINT32 ulYOffset,
  213. HXxRect regionRect);
  214.     virtual void rescale (double dXScale,
  215. double dYScale,
  216. BOOL bResetOriginalCoords);
  217.     virtual void rescaleAbsolute(double dXScale, double dYScale);
  218.     CHXString m_href;
  219.     CHXString m_show;
  220. };
  221. class CSmil1AnchorElement: public CSmil1AAnchorElement
  222. {
  223. public:
  224.     CSmil1AnchorElement (SMIL1Node* pNode);
  225.     virtual ~CSmil1AnchorElement ();
  226.     virtual BOOL isCurrentLink (UINT32 ulTime,
  227. UINT32 ulXOffset,
  228. UINT32 ulYOffset,
  229. HXxRect regionRect);
  230.     virtual void rescale (double dXScale,
  231. double dYScale,
  232. BOOL bResetOriginalCoords);
  233.     virtual void rescaleAbsolute(double dXScale, double dYScale);
  234.     BOOL m_bTimeValueSet;
  235.     BOOL m_bCoordsSet;
  236.     UINT32 m_ulLeftX;
  237.     UINT32 m_ulOriginalLeftX;
  238.     BOOL m_bLeftXIsPercent;
  239.     UINT32 m_ulTopY;
  240.     UINT32 m_ulOriginalTopY;
  241.     BOOL m_bTopYIsPercent;
  242.     UINT32 m_ulRightX;
  243.     UINT32 m_ulOriginalRightX;
  244.     BOOL m_bRightXIsPercent;
  245.     UINT32 m_ulBottomY;
  246.     UINT32 m_ulOriginalBottomY;
  247.     BOOL m_bBottomYIsPercent;
  248.     CHXString m_fragmentID;
  249.     INT32 m_zIndex;
  250. };
  251. class CSmil1ParElement: public CSmil1Element
  252. {
  253. public:
  254.     CSmil1ParElement (SMIL1Node* pNode);
  255.     virtual ~CSmil1ParElement ();
  256. };
  257. class CSmil1SeqElement: public CSmil1Element
  258. {
  259. public:
  260.     CSmil1SeqElement (SMIL1Node* pNode);
  261.     virtual ~CSmil1SeqElement ();
  262. };
  263. #endif /* _SM1ELEM_H_ */