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.BaseButtonm_ButtonPauseResumethe button pausing/resuming playback.protected adams.gui.core.BaseButtonm_ButtonStartthe button starting playback.protected adams.gui.core.BaseButtonm_ButtonStopthe button stopping playback.protected Clipm_Clipthe current clip.protected Filem_CurrentFilethe current file.protected AudioFileChooserm_FileChooserthe filechooser for selecing audio files.protected JLabelm_LabelTimethe text displaying the time.protected booleanm_Pausedwhether the playback is paused.protected booleanm_Playingwhether audio is being played back.protected Timerm_RefreshTimertimer for refreshing the playback time.protected JSliderm_Sliderthe slider for the current position.static StringNO_TIMEthe 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 voidcleanUp()Cleans up data structures, frees up memory.protected voidfinishInit()Finishes up the initialization.FilegetCurrentFile()Returns the currently loaded file, if any.longgetTimestamp()Returns the current timestamp in millisecond.protected voidinitGUI()Initializes the widgets.protected voidinitialize()Initializes the members.booleanisPaused()Returns whether playback is currently paused.booleanisPlaying()Returns whether playback is currently active.booleanisSliderVisible()Returns whether the slider is visible.booleanisTimeVisible()Returns whether the time is visible.booleanopen()Lets the user select an audio file for playback.voidopen(File file)Opens the specified file for playback.voidpauseOrResume()Pauses or resumes the playback.protected voidresetTime()Resets the time/slider.voidsetSliderVisible(boolean value)Sets the visible state of the slider.voidsetTimeVisible(boolean value)Sets the visible state of the time.voidstart()Starts the playback.voidstop()Stops the playback.protected voidupdate()Updates buttons and time.voidupdate(LineEvent event)Informs the listener that a line's state has changed.protected voidupdateButtons()Updates the enabled state of the buttons.protected voidupdateTime(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:
initializein classadams.gui.core.BasePanel
-
initGUI
protected void initGUI()
Initializes the widgets.- Overrides:
initGUIin classadams.gui.core.BasePanel
-
finishInit
protected void finishInit()
Finishes up the initialization.- Overrides:
finishInitin 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 invokeLineEventmethods to obtain information about the event.- Specified by:
updatein 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:
cleanUpin interfaceadams.core.CleanUpHandler
-
-