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
  • Field Details

    • tasks

      public java.util.ArrayList<VideoTask> tasks
    • refresh

      public long refresh
    • clock

      public long clock
    • duration

      public long duration
    • window

      public InterfaceGraphic<?> window
  • Constructor Details

    • Video

      public Video()
  • Method Details

    • init

      protected void init()
    • getTasks

      public java.util.ArrayList<VideoTask> 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

      public void restart() throws VideoException
      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 interface NamedObject
      Overrides:
      getName in class AbstractInterfaceObject
      Returns:
    • setName

      public void setName​(java.lang.String name)
      Description copied from interface: NamedObject
      Sets the name for this object.
      Specified by:
      setName in interface NamedObject
      Overrides:
      setName in class AbstractInterfaceObject
    • setTasks

      public void setTasks​(java.util.ArrayList<VideoTask> tasks)
    • sortTasks

      public void sortTasks()
    • addTask

      public void addTask​(VideoTask task)
    • removeTask

      public void removeTask​(VideoTask task)
    • addListener

      public void addListener​(VideoListener l)
    • removeListener

      public void removeListener​(VideoListener l)
    • fireClockChanged

      public void fireClockChanged​(VideoEvent e)
    • fireClockStopped

      public void fireClockStopped​(VideoEvent e)
    • fireClockStarted

      public void fireClockStarted​(VideoEvent e)
    • fireClockLagged

      public void fireClockLagged​(VideoEvent e, long lag)
    • resume

      public void resume() throws VideoException
      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 the stop 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 representation

      See http://en.wikipedia.org/wiki/Document_Type_Definition for a description.

      Specified by:
      getDTD in interface XMLObject
      Returns:
    • getXMLSchema

      public java.lang.String getXMLSchema()
      Description copied from interface: XMLObject
      Returns the XML schema for this object's XML representation

      See http://en.wikipedia.org/wiki/XML_schema.

      Specified by:
      getXMLSchema in interface XMLObject
      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 the XMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater) functions to write larger objects to file.
      Specified by:
      getXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the opening XML wrapper
      Returns:
    • updateTasks

      public void updateTasks​(InterfaceDisplayPanel panel)
    • 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 the XMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater) functions to write larger objects to file.
      Specified by:
      getXML in interface XMLObject
      Returns:
    • 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 interface XMLObject
      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 interface XMLObject
      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 interface XMLObject
      Parameters:
      localName - Local name of the element
      attributes - Set of element attributes
      type - The XMLType 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 interface XMLObject
      Parameters:
      localName - Local name of the element
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer) throws java.io.IOException
      Description 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 of XMLFormat.Ascii will be used.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      Throws:
      java.io.IOException
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file, as XMLType.Normal. The default format of XMLFormat.Ascii will be used. The basic contract for this method is that it should not write a newline character at its start or end.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      progress_bar - Optional progress updater (may be null)
      Throws:
      java.io.IOException
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOException
      Description 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 of XMLFormat.Ascii will be used.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      options - XMLOutputOptions defining the write parameters
      progress_bar - Optional progress updater (may be null)
      Throws:
      java.io.IOException
    • getLocalName

      public java.lang.String getLocalName()
      Description copied from interface: XMLObject
      Returns the local name associated with this XML object.
      Specified by:
      getLocalName in interface XMLObject
      Returns: