1 /*
2  * Copyright (c) 2000 World Wide Web Consortium,
3  * (Massachusetts Institute of Technology, Institut National de
4  * Recherche en Informatique et en Automatique, Keio University). All
5  * Rights Reserved. This program is distributed under the W3C's Software
6  * Intellectual Property License. This program is distributed in the
7  * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
8  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
10  * details.
11  */
12 
13 package org.w3c.dom.smil;
14 
15 import org.w3c.dom.DOMException;
16 import org.w3c.dom.Element;
17 
18 /**
19  *  The <code>Time</code> interface is a datatype that represents times within
20  * the timegraph. A <code>Time</code> has a type, key values to describe the
21  * time, and a boolean to indicate whether the values are currently
22  * unresolved.  Still need to address the wallclock values.
23  */
24 public interface Time {
25     /**
26      *  A boolean indicating whether the current <code>Time</code> has been
27      * fully resolved to the document schedule.  Note that for this to be
28      * true, the current <code>Time</code> must be defined (not indefinite),
29      * the syncbase and all <code>Time</code> 's that the syncbase depends on
30      * must be defined (not indefinite), and the begin <code>Time</code> of
31      * all ascendent time containers of this element and all <code>Time</code>
32      *  elements that this depends upon must be defined (not indefinite).
33      * <br> If this <code>Time</code> is based upon an event, this
34      * <code>Time</code> will only be resolved once the specified event has
35      * happened, subject to the constraints of the time container.
36      * <br> Note that this may change from true to false when the parent time
37      * container ends its simple duration (including when it repeats or
38      * restarts).
39      */
getResolved()40     public boolean getResolved();
41 
42     /**
43      *  The clock value in seconds relative to the parent time container begin.
44      *  This indicates the resolved time relationship to the parent time
45      * container.  This is only valid if resolved is true.
46      */
getResolvedOffset()47     public double getResolvedOffset();
48 
49     // TimeTypes
50     public static final short SMIL_TIME_INDEFINITE      = 0;
51     public static final short SMIL_TIME_OFFSET          = 1;
52     public static final short SMIL_TIME_SYNC_BASED      = 2;
53     public static final short SMIL_TIME_EVENT_BASED     = 3;
54     public static final short SMIL_TIME_WALLCLOCK       = 4;
55     public static final short SMIL_TIME_MEDIA_MARKER    = 5;
56 
57     /**
58      *  A code representing the type of the underlying object, as defined
59      * above.
60      */
getTimeType()61     public short getTimeType();
62 
63     /**
64      *  The clock value in seconds relative to the syncbase or eventbase.
65      * Default value is <code>0</code> .
66      * @exception DOMException
67      *    NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this
68      *   readonly attribute.
69      */
getOffset()70     public double getOffset();
setOffset(double offset)71     public void setOffset(double offset)
72                                       throws DOMException;
73 
74     /**
75      *  The base element for a sync-based or event-based time.
76      * @exception DOMException
77      *    NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this
78      *   readonly attribute.
79      */
getBaseElement()80     public Element getBaseElement();
setBaseElement(Element baseElement)81     public void setBaseElement(Element baseElement)
82                                       throws DOMException;
83 
84     /**
85      *  If <code>true</code> , indicates that a sync-based time is relative to
86      * the begin of the baseElement.  If <code>false</code> , indicates that a
87      *  sync-based time is relative to the active end of the baseElement.
88      * @exception DOMException
89      *    NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this
90      *   readonly attribute.
91      */
getBaseBegin()92     public boolean getBaseBegin();
setBaseBegin(boolean baseBegin)93     public void setBaseBegin(boolean baseBegin)
94                                       throws DOMException;
95 
96     /**
97      *  The name of the event for an event-based time. Default value is
98      * <code>null</code> .
99      * @exception DOMException
100      *    NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this
101      *   readonly attribute.
102      */
getEvent()103     public String getEvent();
setEvent(String event)104     public void setEvent(String event)
105                                       throws DOMException;
106 
107     /**
108      *  The name of the marker from the media element, for media marker times.
109      * Default value is <code>null</code> .
110      * @exception DOMException
111      *    NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this
112      *   readonly attribute.
113      */
getMarker()114     public String getMarker();
setMarker(String marker)115     public void setMarker(String marker)
116                                       throws DOMException;
117 
118 }
119 
120