org.pscode.ui.tracker
Class TrackerPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.pscode.ui.tracker.TrackerPanel
All Implemented Interfaces:
KeyListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, LineListener

public class TrackerPanel
extends JPanel
implements KeyListener, LineListener

An audio track player with GUI and simple controls.

Version:
2009-09-23
Author:
Andrew Thompson
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 inherited from class javax.swing.JComponent
accessibleContext, 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
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
TrackerPanel(String applicationName)
           
 
Method Summary
 void adjustVolume(boolean up)
          Adjusts the volume one notch of the volume slider
 void clearTraceSoon()
           
 AudioPlotPanel getAudioPlotPanel()
           
 JPanel getControlPanel()
           
 double getDBVolume(double gain)
          Provides the DB version of a linear volume.
 double getLinearVolume(double gainDB)
          Provides the linear version of a volume in DB.
 int getSeconds()
           
 String getTimeString(double seconds)
           
 int getTranspired()
           
 boolean isInvokedStop()
           
 void keyPressed(KeyEvent ke)
          Respond to arrow keys.
 void keyReleased(KeyEvent ke)
           
 void keyTyped(KeyEvent ke)
           
 void play()
           
 void rewind()
           
static String secondsToTime(int seconds)
          Convert a raw count in seconds to the more conventional, hours/minutes/seconds
 void setActive(boolean active)
          Sets the activity flag of the thread.
 void setClip(Clip newClip)
           
 void setClipTime()
           
 void setDefaultFocus()
           
 void setKeyListener(KeyListener keyListener)
           
 void setLineListener(LineListener lineListener)
           
 void showProgressBar(String name)
           
 void shutDown()
          flag the thread to end, then exit the VM.
 void skipBack()
          skipMicroseconds backwards in the current track.
 void skipForward()
          skipMicroseconds forwards in the current track.
 void stopClip()
           
 void update()
          Update the GUI (progress and trace) as well as act on rewind/ff buttons (repeat rate) every 80 milliseconds.
 void update(LineEvent le)
           
 void updatePlotPanel()
           
 void updateVolume()
           
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, setVisible, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TrackerPanel

public TrackerPanel(String applicationName)
Method Detail

setKeyListener

public void setKeyListener(KeyListener keyListener)

updateVolume

public void updateVolume()

showProgressBar

public void showProgressBar(String name)

updatePlotPanel

public void updatePlotPanel()

setClipTime

public void setClipTime()

isInvokedStop

public boolean isInvokedStop()

update

public void update(LineEvent le)
Specified by:
update in interface LineListener

setLineListener

public void setLineListener(LineListener lineListener)

getTimeString

public String getTimeString(double seconds)

getControlPanel

public JPanel getControlPanel()

setDefaultFocus

public void setDefaultFocus()

clearTraceSoon

public void clearTraceSoon()

rewind

public void rewind()

getAudioPlotPanel

public AudioPlotPanel getAudioPlotPanel()

stopClip

public void stopClip()

setClip

public void setClip(Clip newClip)

play

public void play()

skipBack

public void skipBack()
skipMicroseconds backwards in the current track.


skipForward

public void skipForward()
skipMicroseconds forwards in the current track.


getLinearVolume

public double getLinearVolume(double gainDB)
Provides the linear version of a volume in DB.


getDBVolume

public double getDBVolume(double gain)
Provides the DB version of a linear volume.


update

public void update()
Update the GUI (progress and trace) as well as act on rewind/ff buttons (repeat rate) every 80 milliseconds.


setActive

public void setActive(boolean active)
Sets the activity flag of the thread. As well as the stop/play button text.


shutDown

public void shutDown()
flag the thread to end, then exit the VM.


keyReleased

public void keyReleased(KeyEvent ke)
Specified by:
keyReleased in interface KeyListener

keyTyped

public void keyTyped(KeyEvent ke)
Specified by:
keyTyped in interface KeyListener

keyPressed

public void keyPressed(KeyEvent ke)
Respond to arrow keys. left/right for skip, up/down for volume.

Specified by:
keyPressed in interface KeyListener

adjustVolume

public void adjustVolume(boolean up)
Adjusts the volume one notch of the volume slider


secondsToTime

public static String secondsToTime(int seconds)
Convert a raw count in seconds to the more conventional, hours/minutes/seconds

Parameters:
seconds -
Returns:
Formatted time as NhNNmNNs

getSeconds

public int getSeconds()

getTranspired

public int getTranspired()