com.guiseframework.audio
Class Audio

java.lang.Object
  extended by com.globalmentor.beans.BoundPropertyObject
      extended by com.guiseframework.event.GuiseBoundPropertyObject
          extended by com.guiseframework.platform.AbstractDepictedObject
              extended by com.guiseframework.audio.Audio
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, ProgressListenable<java.lang.Long>, DepictedObject

public class Audio
extends AbstractDepictedObject
implements ProgressListenable<java.lang.Long>

Audio that can be played. The installed depictor must be of the specialized type Audio.Depictor.

Author:
Garret Wilson

Nested Class Summary
static interface Audio.Depictor<A extends Audio>
          The custom depictor type for audio.
 
Field Summary
static java.lang.String AUDIO_URI_PROPERTY
          The bound property of the audio URI.
static java.lang.String STATE_PROPERTY
          The bound property of the state.
static java.lang.String TIME_LENGTH_PROPERTY
          The bound property of the play duration using microseconds.
static java.lang.String TIME_POSITION_PROPERTY
          The bound property of the play position in time using microseconds.
 
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
 
Constructor Summary
Audio()
          Default constructor.
Audio(java.net.URI audioURI)
          Audio URI constructor.
 
Method Summary
 void addProgressListener(ProgressListener<java.lang.Long> progressListener)
          Adds a progress listener.
protected  void finalize()
          Prepares the object for garbage collection.
protected  void fireProgressed(long timePosition, long timeDuration)
          Fires a progress event to all registered progress listeners.
protected  void fireProgressed(ProgressEvent<java.lang.Long> progressEvent)
          Fires a given progress event to all registered progress listeners.
 java.net.URI getAudioURI()
           
 Audio.Depictor<? extends Audio> getDepictor()
           
 com.globalmentor.model.TaskState getState()
           
 long getTimeLength()
           
 long getTimePosition()
           
 void pause()
          Requests that the audio pause.
 void play()
          Requests that the audio start playing.
 void removeProgressListener(ProgressListener<java.lang.Long> progressListener)
          Removes an progress listener.
 void setAudioURI(java.net.URI newAudioURI)
          Sets the URI of the audio.
 void setState(com.globalmentor.model.TaskState newState)
          Updates the state of the audio.
 void setTimePosition(long newTimePosition)
          Requests a new time-based play position.
 void stop()
          Requests that the audio stop.
protected  void updateTimeLength(long newTimeLength)
          Updates the duration of the audio.
protected  void updateTimePosition(long newTimePosition)
          Updates the time-based play position.
 void updateTimeProgress(long timePosition, long timeLength)
          Updates the progress of the audio, firing the appropriate progress event.
 
Methods inherited from class com.guiseframework.platform.AbstractDepictedObject
depict, equals, exportTransfer, getDepictID, getEventListenerManager, hashCode, processEvent, toString
 
Methods inherited from class com.guiseframework.event.GuiseBoundPropertyObject
getSession
 
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.guiseframework.platform.DepictedObject
getSession
 

Field Detail

AUDIO_URI_PROPERTY

public static final java.lang.String AUDIO_URI_PROPERTY
The bound property of the audio URI.


STATE_PROPERTY

public static final java.lang.String STATE_PROPERTY
The bound property of the state.


TIME_LENGTH_PROPERTY

public static final java.lang.String TIME_LENGTH_PROPERTY
The bound property of the play duration using microseconds.


TIME_POSITION_PROPERTY

public static final java.lang.String TIME_POSITION_PROPERTY
The bound property of the play position in time using microseconds.

Constructor Detail

Audio

public Audio()
Default constructor.


Audio

public Audio(java.net.URI audioURI)
Audio URI constructor.

Parameters:
audioURI - The new URI of the audio, which may be a resource URI, or null if there is no audio URI.
Method Detail

getDepictor

public Audio.Depictor<? extends Audio> getDepictor()
Specified by:
getDepictor in interface DepictedObject
Overrides:
getDepictor in class AbstractDepictedObject
Returns:
The depictor for this object.

getAudioURI

public java.net.URI getAudioURI()
Returns:
The audio URI, which may be a resource URI, or null if there is no audio URI.

setAudioURI

public void setAudioURI(java.net.URI newAudioURI)
Sets the URI of the audio. This is a bound property of type URI.

Parameters:
newAudioURI - The new URI of the audio, which may be a resource URI, or null if there is no audio URI.
See Also:
AUDIO_URI_PROPERTY

getState

public com.globalmentor.model.TaskState getState()
Returns:
The state of the audio, or null if the audio has not been started.

setState

public void setState(com.globalmentor.model.TaskState newState)
Updates the state of the audio. This method is called by the associated depictor and should normally not be called directly by applications. This is a bound property.

Parameters:
newState - The new state of the audio, or null if the audio has not been started.
See Also:
STATE_PROPERTY

getTimePosition

public long getTimePosition()
Returns:
The current play position in microseconds.

updateTimePosition

protected void updateTimePosition(long newTimePosition)
Updates the time-based play position. This is a bound property.

Parameters:
newTimePosition - The new play position in microseconds.
Throws:
java.lang.IllegalArgumentException - if the given position is negative.
See Also:
TIME_POSITION_PROPERTY

setTimePosition

public void setTimePosition(long newTimePosition)
Requests a new time-based play position. This is an asynchronous bound property.

Parameters:
newTimePosition - The new play position in microseconds.
Throws:
java.lang.IllegalArgumentException - if the given position is negative.
See Also:
TIME_POSITION_PROPERTY

getTimeLength

public long getTimeLength()
Returns:
The current duration or estimated duration in microseconds, or -1 if not known.

updateTimeLength

protected void updateTimeLength(long newTimeLength)
Updates the duration of the audio. This is a bound property.

Parameters:
newTimeLength - The new duration in microseconds.
See Also:
TIME_LENGTH_PROPERTY

play

public void play()
Requests that the audio start playing. If the audio is currently starting to play or already playing, no action occurs.


pause

public void pause()
Requests that the audio pause. If the audio is not playing, no action occurs.


stop

public void stop()
Requests that the audio stop. If the audio is not initializing, playing, or paused, no action occurs.


updateTimeProgress

public void updateTimeProgress(long timePosition,
                               long timeLength)
Updates the progress of the audio, firing the appropriate progress event. This method is called by the associated depictor and should normally not be called directly by applications.

Parameters:
timePosition - The current play position in microseconds, or -1 if not known.
timeLength - The duration or estimated duration of the audio in microseconds, or -1 if not known.

addProgressListener

public void addProgressListener(ProgressListener<java.lang.Long> progressListener)
Adds a progress listener.

Specified by:
addProgressListener in interface ProgressListenable<java.lang.Long>
Parameters:
progressListener - The progress listener to add.

removeProgressListener

public void removeProgressListener(ProgressListener<java.lang.Long> progressListener)
Removes an progress listener.

Specified by:
removeProgressListener in interface ProgressListenable<java.lang.Long>
Parameters:
progressListener - The progress listener to remove.

fireProgressed

protected void fireProgressed(long timePosition,
                              long timeDuration)
Fires a progress event to all registered progress listeners. This method delegates to #fireProgessed(ProgressEvent).

Parameters:
timePosition - The current position in microseconds, or -1 if not known.
timeDuration - The length or estimated length of the audio in microseconds, or -1 if not known.
See Also:
ProgressListener, ProgressEvent

fireProgressed

protected void fireProgressed(ProgressEvent<java.lang.Long> progressEvent)
Fires a given progress event to all registered progress listeners.

Parameters:
progressEvent - The progress event to fire.

finalize

protected void finalize()
                 throws java.lang.Throwable
Prepares the object for garbage collection. This implementation makes sure the audio is stopped.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable


Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.