Package soundPlayback
Class PlaybackControl
java.lang.Object
PamController.PamControlledUnit
soundPlayback.PlaybackControl
- All Implemented Interfaces:
PamSettings
,SettingsNameProvider
Main Pam Controller for sound playback modules.
- Author:
- Doug Gillespie
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfloat
createDetectionMenu
(Frame parentFrame) Create a JMenu object containing MenuItems associated with PamProcessesfindPlaybackSystem
(PamDataBlock sourceDataBlock) getGUI
(int flag) Get the GUI for the PAMControlled unit.int
getMaxPlaybackChannels
(PlaybackSystem playbackSystem) long
double
Returns the name of the unitstatic PlaybackControl
Static easy access to the playback module in PAMGUARD viewer mode.boolean
boolean
Returns true if the playback is real time.void
void
notifyModelChanged
(int changeType) General notification when the PAMGAURD model changes.boolean
playViewerData
(int channelMap, long startMillis, long endMillis, PlaybackProgressMonitor playbackProgressMonitor) Play back raw audio data for a specific channel.boolean
playViewerData
(int channelMap, long startMillis, long endMillis, PlaybackProgressMonitor playbackProgressMonitor, PlaybackDataServer playDataServer) This one is for playing back non-raw data through the sound card.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.static void
registerPlayButton
(AbstractButton button) static void
registerStopButton
(AbstractButton button) boolean
restoreSettings
(PamControlledUnitSettings pamControlledUnitSettings) void
setPlayBackParamters
(PlaybackParameters playbackParameters) Set the playback parameters.void
Stop viewer playback.Methods inherited from class PamController.PamControlledUnit
addOfflineTaskGroup, addOtherRelatedMenuItems, addPamProcess, addPamProcess, addRelatedMenuItems, canClose, canPlayViewerSound, createDisplayMenu, createFileMenu, createHelpMenu, flushDataBlockBuffers, getBackupInformation, getFrameNumber, getGuiFrame, getInstanceIndex, getModuleStatus, getModuleStatusManager, getModuleSummary, getModuleSummary, getNumOfflineTaskGroups, getNumPamProcesses, getOfflineState, getOfflineTaskGroup, getPamConfiguration, getPamController, getPamModuleInfo, getPamProcess, getPamView, getPlugin, getShortUnitType, getSidePanel, getTabClipCopier, getTabPanel, getTabSpecificMenuBar, getToolbarComponent, getVerboseLevel, gotoTab, isInMainConfiguration, isNetRx, isViewer, pamClose, pamHasStopped, pamToStart, playViewerSound, removePamProcess, removeUnit, rename, saveViewerData, setFrameNumber, setModuleStatusManager, setPamConfiguration, setPamController, setPamModuleInfo, setPamView, setSidePanel, setTabPanel, setToolbarComponent, setupControlledUnit, stopViewerSound, tellModule, terminalPrint, terminalPrintln, toString
-
Field Details
-
DEFAULT_OUTPUT_RATE
public static final int DEFAULT_OUTPUT_RATE- See Also:
-
-
Constructor Details
-
PlaybackControl
-
-
Method Details
-
getFilePlayback
- Returns:
- the filePlayback
-
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 click detector.
- Returns:
-
registerPlayButton
-
registerStopButton
-
getSettingsReference
- Specified by:
getSettingsReference
in interfacePamSettings
- Returns:
- The serialisable object that will be stored
-
getSettingsVersion
public long getSettingsVersion()- Specified by:
getSettingsVersion
in interfacePamSettings
- Returns:
- An integer version number for the settings
-
restoreSettings
- Specified by:
restoreSettings
in interfacePamSettings
- 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
public void newSettings() -
createDetectionMenu
Description copied from class:PamControlledUnit
Create a JMenu object containing MenuItems associated with PamProcesses- Overrides:
createDetectionMenu
in classPamControlledUnit
- 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
-
getMaxPlaybackChannels
-
getSourceSampleRate
public double getSourceSampleRate() -
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 classPamControlledUnit
- Parameters:
changeType
- type of change
-
getPlaybackParameters
- Returns:
- playback parameters.
-
setPlayBackParamters
Set the playback parameters.- Parameters:
playbackParameters
- - the playback parameters.
-
playViewerData
public boolean playViewerData(int channelMap, long startMillis, long endMillis, PlaybackProgressMonitor playbackProgressMonitor) Play back raw audio data for a specific channel.- Parameters:
channelMap
-startMillis
-endMillis
-playbackProgressMonitor
-- Returns:
- true if playback seems to have started OK
-
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 timeendMillis
- end timeplaybackProgressMonitor
- progress monitor- Returns:
- true if playback seems to have started OK
-
playViewerData
public boolean playViewerData(int channelMap, long startMillis, long endMillis, PlaybackProgressMonitor playbackProgressMonitor, PlaybackDataServer playDataServer) This one is for playing back non-raw data through the sound card. e.g. the click detector will play back clicks spaced with zeros between them.A new thread will be launched which will call back into playDataServer. playDataServer will have to prepare rawDataUnits which get passed on to the PlaybackProcess. These rawDataUnits will have to follow the basic form of any normal rawDataUnit, but can probably vary a bit in length if necessary.
- Parameters:
channelMap
-startMillis
-endMillis
-playbackProgressMonitor
-playDataServer
-- Returns:
- true if playback started successfully.
-
stopViewerPlayback
public void stopViewerPlayback()Stop viewer playback. -
hasPlayDataSource
public boolean hasPlayDataSource()- Returns:
- true if there is a valid data source and the options to play data are checked.
-
isRealTimePlayback
public boolean isRealTimePlayback()Returns true if the playback is real time. If source input device is real time, then the master PAM clock will be the input device (e.g. sound card, NI card, etc). If this is false, then we're talking file playback or viewer mode and the master clock will be the output device itself.- Returns:
- the realTimePlayback
-
getPlaybackProcess
- Returns:
- the playbackProcess
-
getDeviceState
-
getUnitName
Description copied from class:PamControlledUnit
Returns the name of the unit- Specified by:
getUnitName
in interfaceSettingsNameProvider
- Overrides:
getUnitName
in classPamControlledUnit
- Returns:
- the name of the unit
-
getUnitType
- Specified by:
getUnitType
in interfacePamSettings
- Overrides:
getUnitType
in classPamControlledUnit
- Returns:
- A Name specific to the type, e.g. Click detector
-
getPlaybackSystem
- Returns:
- the playbackSystem
-
getGUI
Description copied from class:PamControlledUnit
Get the GUI for the PAMControlled unit. This has multiple GUI options which are instantiated depending on the view type.- Overrides:
getGUI
in classPamControlledUnit
- Parameters:
flag
- . The GUI type flag defined in PAMGuiManager.- Returns:
- the GUI for the PamControlledUnit unit.
-