Package adams.gui.audio
Class AudioPlaybackPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.audio.AudioPlaybackPanel
-
- All Implemented Interfaces:
adams.core.CleanUpHandler
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,LineListener
public class AudioPlaybackPanel extends adams.gui.core.BasePanel implements adams.core.CleanUpHandler, LineListener
Simple audio playback panel.- Author:
- FracPete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected adams.gui.core.BaseButton
m_ButtonPauseResume
the button pausing/resuming playback.protected adams.gui.core.BaseButton
m_ButtonStart
the button starting playback.protected adams.gui.core.BaseButton
m_ButtonStop
the button stopping playback.protected Clip
m_Clip
the current clip.protected File
m_CurrentFile
the current file.protected AudioFileChooser
m_FileChooser
the filechooser for selecing audio files.protected JLabel
m_LabelTime
the text displaying the time.protected boolean
m_Paused
whether the playback is paused.protected boolean
m_Playing
whether audio is being played back.protected Timer
m_RefreshTimer
timer for refreshing the playback time.protected JSlider
m_Slider
the slider for the current position.static String
NO_TIME
the placeholder for no time.-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
Constructor Summary
Constructors Constructor Description AudioPlaybackPanel()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanUp()
Cleans up data structures, frees up memory.protected void
finishInit()
Finishes up the initialization.File
getCurrentFile()
Returns the currently loaded file, if any.long
getTimestamp()
Returns the current timestamp in millisecond.protected void
initGUI()
Initializes the widgets.protected void
initialize()
Initializes the members.boolean
isPaused()
Returns whether playback is currently paused.boolean
isPlaying()
Returns whether playback is currently active.boolean
isSliderVisible()
Returns whether the slider is visible.boolean
isTimeVisible()
Returns whether the time is visible.boolean
open()
Lets the user select an audio file for playback.void
open(File file)
Opens the specified file for playback.void
pauseOrResume()
Pauses or resumes the playback.protected void
resetTime()
Resets the time/slider.void
setSliderVisible(boolean value)
Sets the visible state of the slider.void
setTimeVisible(boolean value)
Sets the visible state of the time.void
start()
Starts the playback.void
stop()
Stops the playback.protected void
update()
Updates buttons and time.void
update(LineEvent event)
Informs the listener that a line's state has changed.protected void
updateButtons()
Updates the enabled state of the buttons.protected void
updateTime(boolean updateSlider)
Updates the displayed time.-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, beforeShow, closeParent, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle, setVisible
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
NO_TIME
public static final String NO_TIME
the placeholder for no time.- See Also:
- Constant Field Values
-
m_ButtonStart
protected adams.gui.core.BaseButton m_ButtonStart
the button starting playback.
-
m_ButtonPauseResume
protected adams.gui.core.BaseButton m_ButtonPauseResume
the button pausing/resuming playback.
-
m_ButtonStop
protected adams.gui.core.BaseButton m_ButtonStop
the button stopping playback.
-
m_LabelTime
protected JLabel m_LabelTime
the text displaying the time.
-
m_Slider
protected JSlider m_Slider
the slider for the current position.
-
m_Playing
protected boolean m_Playing
whether audio is being played back.
-
m_Paused
protected boolean m_Paused
whether the playback is paused.
-
m_CurrentFile
protected File m_CurrentFile
the current file.
-
m_Clip
protected transient Clip m_Clip
the current clip.
-
m_FileChooser
protected AudioFileChooser m_FileChooser
the filechooser for selecing audio files.
-
m_RefreshTimer
protected Timer m_RefreshTimer
timer for refreshing the playback time.
-
-
Method Detail
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classadams.gui.core.BasePanel
-
initGUI
protected void initGUI()
Initializes the widgets.- Overrides:
initGUI
in classadams.gui.core.BasePanel
-
finishInit
protected void finishInit()
Finishes up the initialization.- Overrides:
finishInit
in classadams.gui.core.BasePanel
-
open
public boolean open()
Lets the user select an audio file for playback.- Returns:
- whether a file was selected
-
open
public void open(File file)
Opens the specified file for playback.- Parameters:
file
- the file
-
getCurrentFile
public File getCurrentFile()
Returns the currently loaded file, if any.- Returns:
- the file, null if none loaded
-
start
public void start()
Starts the playback.
-
pauseOrResume
public void pauseOrResume()
Pauses or resumes the playback.
-
stop
public void stop()
Stops the playback.
-
isPlaying
public boolean isPlaying()
Returns whether playback is currently active.- Returns:
- true if playback active
-
isPaused
public boolean isPaused()
Returns whether playback is currently paused.- Returns:
- true if playback paused
-
getTimestamp
public long getTimestamp()
Returns the current timestamp in millisecond.- Returns:
- the timestamp, -1 if not active
-
resetTime
protected void resetTime()
Resets the time/slider.- See Also:
NO_TIME
-
updateTime
protected void updateTime(boolean updateSlider)
Updates the displayed time.- Parameters:
updateSlider
- whether to update the slider
-
updateButtons
protected void updateButtons()
Updates the enabled state of the buttons.
-
update
protected void update()
Updates buttons and time.
-
update
public void update(LineEvent event)
Informs the listener that a line's state has changed. The listener can then invokeLineEvent
methods to obtain information about the event.- Specified by:
update
in interfaceLineListener
- Parameters:
event
- a line event that describes the change
-
setSliderVisible
public void setSliderVisible(boolean value)
Sets the visible state of the slider.- Parameters:
value
- true to make it visible
-
isSliderVisible
public boolean isSliderVisible()
Returns whether the slider is visible.- Returns:
- true if visible
-
setTimeVisible
public void setTimeVisible(boolean value)
Sets the visible state of the time.- Parameters:
value
- true to make it visible
-
isTimeVisible
public boolean isTimeVisible()
Returns whether the time is visible.- Returns:
- true if visible
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUp
in interfaceadams.core.CleanUpHandler
-
-