/* * Copyright (c) 2000 World Wide Web Consortium, * (Massachusetts Institute of Technology, Institut National de * Recherche en Informatique et en Automatique, Keio University). All * Rights Reserved. This program is distributed under the W3C's Software * Intellectual Property License. This program is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more * details. */ package org.w3c.dom.smil; import org.w3c.dom.DOMException; import org.w3c.dom.Element; /** * The <code>Time</code> interface is a datatype that represents times within * the timegraph. A <code>Time</code> has a type, key values to describe the * time, and a boolean to indicate whether the values are currently * unresolved. Still need to address the wallclock values. */ public interface Time { /** * A boolean indicating whether the current <code>Time</code> has been * fully resolved to the document schedule. Note that for this to be * true, the current <code>Time</code> must be defined (not indefinite), * the syncbase and all <code>Time</code> 's that the syncbase depends on * must be defined (not indefinite), and the begin <code>Time</code> of * all ascendent time containers of this element and all <code>Time</code> * elements that this depends upon must be defined (not indefinite). * <br> If this <code>Time</code> is based upon an event, this * <code>Time</code> will only be resolved once the specified event has * happened, subject to the constraints of the time container. * <br> Note that this may change from true to false when the parent time * container ends its simple duration (including when it repeats or * restarts). */ public boolean getResolved(); /** * The clock value in seconds relative to the parent time container begin. * This indicates the resolved time relationship to the parent time * container. This is only valid if resolved is true. */ public double getResolvedOffset(); // TimeTypes public static final short SMIL_TIME_INDEFINITE = 0; public static final short SMIL_TIME_OFFSET = 1; public static final short SMIL_TIME_SYNC_BASED = 2; public static final short SMIL_TIME_EVENT_BASED = 3; public static final short SMIL_TIME_WALLCLOCK = 4; public static final short SMIL_TIME_MEDIA_MARKER = 5; /** * A code representing the type of the underlying object, as defined * above. */ public short getTimeType(); /** * The clock value in seconds relative to the syncbase or eventbase. * Default value is <code>0</code> . * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this * readonly attribute. */ public double getOffset(); public void setOffset(double offset) throws DOMException; /** * The base element for a sync-based or event-based time. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this * readonly attribute. */ public Element getBaseElement(); public void setBaseElement(Element baseElement) throws DOMException; /** * If <code>true</code> , indicates that a sync-based time is relative to * the begin of the baseElement. If <code>false</code> , indicates that a * sync-based time is relative to the active end of the baseElement. * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this * readonly attribute. */ public boolean getBaseBegin(); public void setBaseBegin(boolean baseBegin) throws DOMException; /** * The name of the event for an event-based time. Default value is * <code>null</code> . * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this * readonly attribute. */ public String getEvent(); public void setEvent(String event) throws DOMException; /** * The name of the marker from the media element, for media marker times. * Default value is <code>null</code> . * @exception DOMException * NO_MODIFICATION_ALLOWED_ERR: Raised on attempts to modify this * readonly attribute. */ public String getMarker(); public void setMarker(String marker) throws DOMException; }