public class WaveformDetailComponent extends JComponent
TrackMetadata so their location
can be determined), and beat markers (if you also supply a BeatGrid). Can also
be configured to automatically update itself to reflect the state of a specified player, showing the current
track, playback state, and position, as long as it is able to load appropriate metadata.JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategylistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
WaveformDetailComponent(int player)
Create a view which updates itself to reflect the track loaded on a particular player, and that player's
playback progress.
|
WaveformDetailComponent(WaveformDetail waveform,
CueList cueList,
BeatGrid beatGrid)
Create a view which draws a specific waveform, even if it is not currently loaded in a player.
|
WaveformDetailComponent(WaveformDetail waveform,
TrackMetadata metadata,
BeatGrid beatGrid)
Create a view which draws a specific waveform, even if it is not currently loaded in a player.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clearPlaybackState()
Removes all stored playback state.
|
void |
clearPlaybackState(int player)
Clear the playback state stored for a player, such as when it has unloaded the track.
|
static Color |
cueColor(CueList.Entry entry)
Determine the color to use to draw a cue list entry.
|
boolean |
getAutoScroll()
Check whether the component should automatically center itself on the playback position of the player
that is furthest into the track.
|
int |
getBeatForX(int x)
Determine the beat that corresponds to a particular X coordinate in the component, given the current scale.
|
long |
getFurthestPlaybackPosition()
Look up the furthest position, in milliseconds, that has been reached, giving playing players priority over stopped players.
|
PlaybackState |
getFurthestPlaybackState()
Look up the playback state that has reached furthest in the track, but give playing players priority over stopped players.
|
Dimension |
getMinimumSize() |
int |
getMonitoredPlayer()
See which player is having its state tracked automatically by the component, if any.
|
Set<PlaybackState> |
getPlaybackState()
Look up all recorded playback state information.
|
PlaybackState |
getPlaybackState(int player)
Look up the playback state recorded for a particular player.
|
Dimension |
getPreferredSize() |
long |
getTimeForX(int x)
Determine the playback time that corresponds to a particular X coordinate in the component given the current
scale.
|
int |
getXForBeat(int beat)
Determine the X coordinate within the component at which the specified beat begins.
|
int |
millisecondsToX(long milliseconds)
Converts a time in milliseconds to the appropriate x coordinate for drawing something at that time.
|
protected void |
paintComponent(Graphics g) |
void |
setAutoScroll(boolean auto)
Control whether the component should automatically center itself on the playback position of the player
that is furthest into the track.
|
void |
setMonitoredPlayer(int player)
Configures the player whose current track waveforms and status will automatically be reflected.
|
void |
setOverlayPainter(OverlayPainter painter)
Arrange for an overlay to be painted on top of the component.
|
void |
setPlaybackState(int player,
long position,
boolean playing)
Set the current playback state for a player.
|
void |
setScale(int scale)
Set the zoom scale of the view.
|
void |
setWaveform(WaveformDetail waveform,
CueList cueList,
BeatGrid beatGrid)
Change the waveform preview being drawn.
|
void |
setWaveform(WaveformDetail waveform,
TrackMetadata metadata,
BeatGrid beatGrid)
Change the waveform preview being drawn.
|
String |
toString() |
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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUIadd, 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, validateTreeaction, 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, getAccessibleContext, 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, 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, transferFocus, transferFocusBackward, transferFocusUpCyclepublic WaveformDetailComponent(int player)
player - the player number to monitor, or zero if it should start out monitoring no playerpublic WaveformDetailComponent(WaveformDetail waveform, TrackMetadata metadata, BeatGrid beatGrid)
waveform - the waveform detail to displaymetadata - information about the track whose waveform we are drawing, so we can draw cues and memory pointsbeatGrid - the locations of the beats, so they can be drawnpublic WaveformDetailComponent(WaveformDetail waveform, CueList cueList, BeatGrid beatGrid)
waveform - the waveform detail to displaycueList - used to draw cues and memory pointsbeatGrid - the locations of the beats, so they can be drawnpublic void setAutoScroll(boolean auto)
false the
component must be inside a scroll pane so the user can control what portion of the waveform is visible.auto - should the waveform be centered on the playback positionpublic boolean getAutoScroll()
false the
component must be inside a scroll pane so the user can control what portion of the waveform is visible.true if the waveform will be centered on the playback positionpublic void setOverlayPainter(OverlayPainter painter)
painter - if not null, its OverlayPainter.paintOverlay(Component, Graphics) method will
be called once this component has done its own paintingpublic void setPlaybackState(int player,
long position,
boolean playing)
TrackMetadata we need to translate the time into a position in the
component). This will be quickly overruled if a player is being monitored, but
can be used in other contexts.player - the player number whose playback state is being recordedposition - the current playback position of that player in millisecondsplaying - whether the player is actively playing the trackIllegalStateException - if the component is configured to monitor a player, and this is called
with state for a different playerIllegalArgumentException - if player is less than onepublic void clearPlaybackState(int player)
player - the player number whose playback state is no longer validpublic void clearPlaybackState()
public PlaybackState getPlaybackState(int player)
player - the player number whose playback state information is desiredpublic Set<PlaybackState> getPlaybackState()
public void setScale(int scale)
scale - the number of waveform segments that should be averaged into a single column of pixelsIllegalArgumentException - if scale is less than 1 or greater than 256public void setWaveform(WaveformDetail waveform, TrackMetadata metadata, BeatGrid beatGrid)
waveform - the waveform detail to displaymetadata - information about the track whose waveform we are drawing, so we can draw cue and memory pointsbeatGrid - the locations of the beats, so they can be drawnpublic void setWaveform(WaveformDetail waveform, CueList cueList, BeatGrid beatGrid)
waveform - the waveform detail to displaycueList - used to draw cue and memory pointsbeatGrid - the locations of the beats, so they can be drawnpublic void setMonitoredPlayer(int player)
player - the player number to monitor, or zero if monitoring should stoppublic int getMonitoredPlayer()
public Dimension getMinimumSize()
getMinimumSize in class JComponentpublic Dimension getPreferredSize()
getPreferredSize in class JComponentpublic PlaybackState getFurthestPlaybackState()
PlaybackState.position valuepublic long getFurthestPlaybackPosition()
public long getTimeForX(int x)
x - the horizontal position within the component coordinate spacepublic int getBeatForX(int x)
x - the horizontal position within the component coordinate spacepublic int getXForBeat(int beat)
beat - the beat number whose position is desiredIllegalArgumentException - if the beat number exceeds the number of beats in the track.public int millisecondsToX(long milliseconds)
milliseconds - the time at which something should be drawnpublic static Color cueColor(CueList.Entry entry)
entry - the entry being drawnprotected void paintComponent(Graphics g)
paintComponent in class JComponentCopyright © 2016–2019 Deep Symmetry, LLC. All rights reserved.