public class WaveformPreviewComponent extends JComponent
TrackMetadata so the total length can be determined),
and cue markers (if you also supply a CueList). 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, which includes beat grids for translating beat numbers
into track time.JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy| Modifier and Type | Field and Description |
|---|---|
static Color |
BRIGHT_PLAYED
The color for brighter sections of the already-played section of the playback progress bar.
|
static Color |
DIM_PLAYED
The color for darker sections of the already-played section of the playback progress bar.
|
static Color |
DIM_UNPLAYED
The color for the darker sections of hte not-yet-played sections of the playback progress bar.
|
static int |
MIN_WAVEFORM_WIDTH
The minimum acceptable width for the waveform.
|
listenerList, 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 |
|---|
WaveformPreviewComponent(int player)
Create a view which updates itself to reflect the track loaded on a particular player, and that player's
playback progress.
|
WaveformPreviewComponent(WaveformPreview preview,
int duration,
CueList cueList)
Create a view which draws a specific waveform, even if it is not currently loaded in a player.
|
WaveformPreviewComponent(WaveformPreview preview,
TrackMetadata metadata)
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.
|
PlaybackState |
getFurthestPlaybackState()
Look up the playback state that has reached furthest in the track.
|
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 |
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 |
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 |
setRepaintDelegate(RepaintDelegate delegate)
Establish a host component to which all
Component.repaint(int, int, int, int) calls should be delegated,
presumably because we are being soft-loaded in a large user interface to save on memory. |
void |
setWaveformPreview(WaveformPreview preview,
int duration,
CueList cueList)
Change the waveform preview being drawn.
|
void |
setWaveformPreview(WaveformPreview preview,
TrackMetadata metadata)
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 static final int MIN_WAVEFORM_WIDTH
public static final Color BRIGHT_PLAYED
public static final Color DIM_PLAYED
public static final Color DIM_UNPLAYED
public WaveformPreviewComponent(int player)
player - the player number to monitor, or zero if it should start out monitoring no playerpublic WaveformPreviewComponent(WaveformPreview preview, TrackMetadata metadata)
preview - the waveform preview to displaymetadata - information about the track whose waveform we are drawing, so we can translate times into
positionspublic WaveformPreviewComponent(WaveformPreview preview, int duration, CueList cueList)
preview - the waveform preview to displayduration - the playback duration, in seconds, of the track whose waveform we are drawing, so we can
translate times into positionscueList - the hot cues and memory points stored for the track, if any, so we can draw thempublic 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 PlaybackState getFurthestPlaybackState()
PlaybackState.position valuepublic void setRepaintDelegate(RepaintDelegate delegate)
Component.repaint(int, int, int, int) calls should be delegated,
presumably because we are being soft-loaded in a large user interface to save on memory.delegate - the permanent component that can actually accumulate repaint regions, or null if
we are being hosted normally in a container, so we should use the normal repaint process.public 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 setWaveformPreview(WaveformPreview preview, TrackMetadata metadata)
preview - the waveform preview to displaymetadata - information about the track whose waveform we are drawing, so we can translate times into
positions and display hot cues and memory pointspublic void setWaveformPreview(WaveformPreview preview, int duration, CueList cueList)
preview - the waveform preview to displayduration - the playback duration, in seconds, of the track whose waveform we are drawing, so we can
translate times into positionscueList - the hot cues and memory points stored for the track, if any, so we can draw thempublic void setMonitoredPlayer(int player)
player - the player number to monitor, or zero if monitoring should stoppublic int getMonitoredPlayer()
public Dimension getPreferredSize()
getPreferredSize in class JComponentpublic Dimension getMinimumSize()
getMinimumSize in class JComponentpublic int millisecondsToX(long milliseconds)
TrackMetadata.milliseconds - the time at which something should be drawnpublic long getTimeForX(int x)
x - the horizontal position within the component coordinate spaceprotected void paintComponent(Graphics g)
paintComponent in class JComponentCopyright © 2016–2019 Deep Symmetry, LLC. All rights reserved.