Package mgui.interfaces.graphics.video
Class Video
java.lang.Object
mgui.interfaces.AbstractInterfaceObject
mgui.interfaces.graphics.video.Video
- All Implemented Interfaces:
InterfaceObject
,NamedObject
,TreeObject
,CleanableObject
,XMLObject
- Direct Known Subclasses:
Video3D
public abstract class Video extends AbstractInterfaceObject implements XMLObject
Represents a video schedule, using a list of
VideoTask
objects which are activated at
specific time points. A VideoTask
typically effects some visible change to an
InterfaceGraphic
window, which occurs at run-time, and can optionally be written as
a movie file.- Since:
- 1.0
- Version:
- 1.0
- Author:
- Andrew Reid
- See Also:
VideoTask
-
Nested Class Summary
Nested classes/interfaces inherited from interface mgui.interfaces.xml.XMLObject
XMLObject.XMLEncoding, XMLObject.XMLType
-
Field Summary
Fields Modifier and Type Field Description long
clock
long
duration
long
refresh
java.util.ArrayList<VideoTask>
tasks
InterfaceGraphic<?>
window
Fields inherited from class mgui.interfaces.AbstractInterfaceObject
isDestroyed, tree_nodes
-
Constructor Summary
Constructors Constructor Description Video()
-
Method Summary
Modifier and Type Method Description void
addListener(VideoListener l)
void
addTask(VideoTask task)
void
fireClockChanged(VideoEvent e)
void
fireClockLagged(VideoEvent e, long lag)
void
fireClockStarted(VideoEvent e)
void
fireClockStopped(VideoEvent e)
long
getClock()
Gets the current state of the clock.java.lang.String
getDTD()
Returns the Data Type Declaration (DTD) for this object's XML representationjava.lang.String
getLocalName()
Returns the local name associated with this XML object.java.lang.String
getName()
Gets the name for this object.java.lang.String
getShortXML(int tab)
Returns a short XML representation of this object.java.util.ArrayList<VideoTask>
getTasks()
Returns all tasks in this video.abstract java.lang.String
getType()
java.lang.String
getXML()
Returns this object's XML representation as a single string.java.lang.String
getXML(int tab)
Returns this object's XML representation as a single string.java.lang.String
getXMLSchema()
Returns the XML schema for this object's XML representationvoid
handleXMLElementEnd(java.lang.String localName)
Handles the end of an XML element.void
handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
Handles the start of an XML element.void
handleXMLString(java.lang.String s)
Handles a string within an XML element.protected void
init()
boolean
isStopped()
Determines whether this video is currently running or not.void
removeListener(VideoListener l)
void
removeTask(VideoTask task)
void
reset()
Resets the clock and all tasks in this video.void
restart()
Restarts this video by resetting the clock and resuming playback.void
resume()
Resumes playback of this video.void
setClock(long c)
Sets the clock to a specific value and alerts all listeners of this.void
setName(java.lang.String name)
Sets the name for this object.void
setRefreshRate(long rate)
Sets the refresh rate of this video.void
setTasks(java.util.ArrayList<VideoTask> tasks)
void
sortTasks()
void
start()
Initiates the running of this video.void
stop()
Stops the video and alerts all video listeners of this.void
updateTasks(InterfaceDisplayPanel panel)
void
writeXML(int tab, java.io.Writer writer)
Writes the XML representation of this object to file.void
writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)
Writes the XML representation of this object to file, asXMLType.Normal
.void
writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar)
Writes the XML representation of this object to file.Methods inherited from class mgui.interfaces.AbstractInterfaceObject
clean, destroy, getTreeLabel, isDestroyed, issueTreeNode, setTreeNode, updateTreeNodes
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
tasks
-
refresh
public long refresh -
clock
public long clock -
duration
public long duration -
window
-
-
Constructor Details
-
Video
public Video()
-
-
Method Details
-
init
protected void init() -
getTasks
Returns all tasks in this video.- Returns:
-
getClock
public long getClock()Gets the current state of the clock.- Returns:
-
isStopped
public boolean isStopped()Determines whether this video is currently running or not.- Returns:
-
start
public void start()Initiates the running of this video. Alerts all video listeners of this. -
reset
public void reset()Resets the clock and all tasks in this video. Alerts all video listeners of this. -
restart
Restarts this video by resetting the clock and resuming playback. Alerts all video listeners of this.- Throws:
VideoException
-
stop
public void stop()Stops the video and alerts all video listeners of this. -
setClock
public void setClock(long c)Sets the clock to a specific value and alerts all listeners of this.- Parameters:
c
-
-
setRefreshRate
public void setRefreshRate(long rate)Sets the refresh rate of this video.- Parameters:
rate
-
-
getName
public java.lang.String getName()Description copied from interface:NamedObject
Gets the name for this object.- Specified by:
getName
in interfaceNamedObject
- Overrides:
getName
in classAbstractInterfaceObject
- Returns:
-
setName
public void setName(java.lang.String name)Description copied from interface:NamedObject
Sets the name for this object.- Specified by:
setName
in interfaceNamedObject
- Overrides:
setName
in classAbstractInterfaceObject
-
setTasks
-
sortTasks
public void sortTasks() -
addTask
-
removeTask
-
addListener
-
removeListener
-
fireClockChanged
-
fireClockStopped
-
fireClockStarted
-
fireClockLagged
-
resume
Resumes playback of this video. Playback will be handled in a separate Foxtrot thread, so this method returns after initiating it. Video loops at a rate determined by its refresh rate, unless this is smaller than the time lag required for processing task procedures. Playback can be stopped by calling thestop
method.- Throws:
VideoException
- if no source window is set
-
getType
public abstract java.lang.String getType() -
getDTD
public java.lang.String getDTD()Description copied from interface:XMLObject
Returns the Data Type Declaration (DTD) for this object's XML representationSee http://en.wikipedia.org/wiki/Document_Type_Definition for a description.
-
getXMLSchema
public java.lang.String getXMLSchema()Description copied from interface:XMLObject
Returns the XML schema for this object's XML representation- Specified by:
getXMLSchema
in interfaceXMLObject
- Returns:
-
getXML
public java.lang.String getXML(int tab)Description copied from interface:XMLObject
Returns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)
functions to write larger objects to file. -
updateTasks
-
getXML
public java.lang.String getXML()Description copied from interface:XMLObject
Returns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)
functions to write larger objects to file. -
getShortXML
public java.lang.String getShortXML(int tab)Description copied from interface:XMLObject
Returns a short XML representation of this object.- Specified by:
getShortXML
in interfaceXMLObject
- Returns:
-
handleXMLString
public void handleXMLString(java.lang.String s)Description copied from interface:XMLObject
Handles a string within an XML element.- Specified by:
handleXMLString
in interfaceXMLObject
- Parameters:
s
- String to handle
-
handleXMLElementStart
public void handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)Description copied from interface:XMLObject
Handles the start of an XML element.- Specified by:
handleXMLElementStart
in interfaceXMLObject
- Parameters:
localName
- Local name of the elementattributes
- Set of element attributestype
- TheXMLType
of this element
-
handleXMLElementEnd
public void handleXMLElementEnd(java.lang.String localName)Description copied from interface:XMLObject
Handles the end of an XML element.- Specified by:
handleXMLElementEnd
in interfaceXMLObject
- Parameters:
localName
- Local name of the element
-
writeXML
public void writeXML(int tab, java.io.Writer writer) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format ofXMLFormat.Ascii
will be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes the XML representation of this object to file, asXMLType.Normal
. The default format ofXMLFormat.Ascii
will be used. The basic contract for this method is that it should not write a newline character at its start or end. -
writeXML
public void writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format ofXMLFormat.Ascii
will be used. -
getLocalName
public java.lang.String getLocalName()Description copied from interface:XMLObject
Returns the local name associated with this XML object.- Specified by:
getLocalName
in interfaceXMLObject
- Returns:
-