soundPlayback
Class PlaybackControl

java.lang.Object
  extended by PamController.PamControlledUnit
      extended by soundPlayback.PlaybackControl
All Implemented Interfaces:
PamSettings

public class PlaybackControl
extends PamControlledUnit
implements PamSettings

Main Pam Controller for sound playback modules.

Author:
Doug Gillespie

Nested Class Summary
(package private)  class PlaybackControl.PlaybackSettings
           
(package private)  class PlaybackControl.PlayLoadObserver
           
 
Field Summary
protected  FilePlayback filePlayback
           
protected  long playbackEndMillis
           
protected  PlaybackParameters playbackParameters
           
protected  PlaybackProcess playbackProcess
           
protected  PlaybackProgressMonitor playbackProgressMonitor
           
protected  long playbackStartMillis
           
protected  PlaybackSystem playbackSystem
           
private static PlaybackControl viewerPlayback
           
 
Fields inherited from class PamController.PamControlledUnit
isViewer
 
Constructor Summary
PlaybackControl(java.lang.String unitName)
           
 
Method Summary
 float choseSampleRate()
           
 javax.swing.JMenuItem createDetectionMenu(java.awt.Frame parentFrame)
          Create a JMenu object containing MenuItems associated with PamProcesses
 PlaybackSystem findPlaybackSystem(PamDataBlock sourceDataBlock)
           
 int getMaxPlaybackChannels(PlaybackSystem playbackSystem)
           
 PlaybackParameters getPlaybackParameters()
           
 java.io.Serializable getSettingsReference()
           
 long getSettingsVersion()
           
static PlaybackControl getViewerPlayback()
          Static easy access to the playback module in PAMGUARD viewer mode.
protected  void newSettings()
           
 void notifyModelChanged(int changeType)
          General notification when the PAMGAURD model changes.
 boolean playViewerData(long startMillis, long endMillis, PlaybackProgressMonitor playbackProgressMonitor)
          The simplest of the viewer instructions simply instructs the playback module to play data from it's own data source between the given times.
 boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings)
           
protected  void setPlaybackProgress(long timeMillis)
           
 
Methods inherited from class PamController.PamControlledUnit
addOtherRelatedMenuItems, addPamProcess, addRelatedMenuItems, canClose, createDisplayMenu, createFileMenu, createHelpMenu, fillXMLElement, fillXMLParameters, getFrameNumber, getNumPamProcesses, getPamController, getPamModuleInfo, getPamProcess, getPamView, getSidePanel, getTabClipCopier, getTabPanel, getTabSpecificMenuBar, getUnitName, getUnitType, gotoTab, notifyArrayChanged, pamHasStopped, pamToStart, removePamProcess, removeUnit, rename, saveViewerData, setFrameNumber, setPamController, setPamModuleInfo, setPamView, setSidePanel, setTabPanel, setupControlledUnit, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface PamController.PamSettings
getUnitName, getUnitType
 

Field Detail

playbackParameters

protected PlaybackParameters playbackParameters

playbackProcess

protected PlaybackProcess playbackProcess

filePlayback

protected FilePlayback filePlayback

playbackSystem

protected PlaybackSystem playbackSystem

viewerPlayback

private static PlaybackControl viewerPlayback

playbackStartMillis

protected long playbackStartMillis

playbackEndMillis

protected long playbackEndMillis

playbackProgressMonitor

protected PlaybackProgressMonitor playbackProgressMonitor
Constructor Detail

PlaybackControl

public PlaybackControl(java.lang.String unitName)
Method Detail

getViewerPlayback

public static PlaybackControl getViewerPlayback()
Static easy access to the playback module in PAMGUARD viewer mode. Other modules will be sending commands to this module instructing it to play sections of data out through the speakers.

This may involve allowing the playback module to use it's own data source, but it may also be instructed to take data from elsewhere - e.g. reconstructed clicks from the clickm detector.

Returns:

getSettingsReference

public java.io.Serializable getSettingsReference()
Specified by:
getSettingsReference in interface PamSettings
Returns:
The serialisable object that will be stored

getSettingsVersion

public long getSettingsVersion()
Specified by:
getSettingsVersion in interface PamSettings
Returns:
An integer version number for the settings

restoreSettings

public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings)
Specified by:
restoreSettings in interface PamSettings
Returns:
true if successful The object performs final checks (if needed) and then casts the settings data pamcontrolledunitSettings.settings into the correct type and uses as required

newSettings

protected void newSettings()

createDetectionMenu

public javax.swing.JMenuItem createDetectionMenu(java.awt.Frame parentFrame)
Description copied from class: PamControlledUnit
Create a JMenu object containing MenuItems associated with PamProcesses

Overrides:
createDetectionMenu in class PamControlledUnit
Parameters:
parentFrame - The owner frame of the menu
Returns:
reference to a JMenu which can be added to an existing menu or menu bar

Note that if multiple views are to use the same menu, then they should each create a new menu (by setting Create to true) the first time they call this method.


findPlaybackSystem

public PlaybackSystem findPlaybackSystem(PamDataBlock sourceDataBlock)

getMaxPlaybackChannels

public int getMaxPlaybackChannels(PlaybackSystem playbackSystem)

choseSampleRate

public float choseSampleRate()

notifyModelChanged

public void notifyModelChanged(int changeType)
Description copied from class: PamControlledUnit
General notification when the PAMGAURD model changes.

Overrides:
notifyModelChanged in class PamControlledUnit
Parameters:
changeType - type of change

getPlaybackParameters

public PlaybackParameters getPlaybackParameters()
Returns:
playback parameters.

playViewerData

public boolean playViewerData(long startMillis,
                              long endMillis,
                              PlaybackProgressMonitor playbackProgressMonitor)
The simplest of the viewer instructions simply instructs the playback module to play data from it's own data source between the given times.

Parameters:
startMillis - start time
endMillis - end time
playbackProgressMonitor - progress monitor

setPlaybackProgress

protected void setPlaybackProgress(long timeMillis)