public abstract class MasterAdapter extends Object implements MasterListener
An abstract adapter class for receiving updates related to the tempo master. The methods in this class are empty; it exists as a convenience for creating listener objects.
Extend this class to create a MasterListener and override only the methods for events that you
care about. If you plan to implement all the methods in the interface, you might as well implement
MasterListener directly.
Create a listener object using your extended class and then register it using
VirtualCdj.addMasterListener(MasterListener).
Whenever a relevant change occurs, the appropriate method
in the listener object is invoked, and the DeviceUpdate which reported the change is passed to it.
| Constructor and Description |
|---|
MasterAdapter() |
| Modifier and Type | Method and Description |
|---|---|
void |
masterChanged(DeviceUpdate update)
Invoked when there is a change in which device is the current tempo master.
|
void |
newBeat(Beat beat)
Invoked when a beat is reported by the tempo master, as long as the
BeatFinder is active. |
void |
tempoChanged(double tempo)
Invoked when the master tempo has changed.
|
public void masterChanged(DeviceUpdate update)
MasterListenerInvoked when there is a change in which device is the current tempo master.
To reduce latency, tempo master updates are delivered to listeners directly on the thread that is receiving them
from the network, so if you want to interact with user interface objects in this method, you need to use
javax.swing.SwingUtilities.invokeLater(Runnable)
to do so on the Event Dispatch Thread.
Even if you are not interacting with user interface objects, any code in this method must finish quickly, or it will add latency for other listeners, and master updates will back up. If you want to perform lengthy processing of any sort, do so on another thread.
masterChanged in interface MasterListenerupdate - the message identifying the new master, or null if there is now nonepublic void newBeat(Beat beat)
Invoked when a beat is reported by the tempo master, as long as the BeatFinder is active.
Even though beats contain far less detailed information than status updates, they can be passed to
VirtualCdj.getLatestStatusFor(DeviceUpdate) to find the current detailed status for that device,
as long as the Virtual CDJ is active.
To reduce latency, tempo master updates are delivered to listeners directly on the thread that is receiving them
from the network, so if you want to interact with user interface objects in this method, you need to use
javax.swing.SwingUtilities.invokeLater(Runnable)
to do so on the Event Dispatch Thread.
Even if you are not interacting with user interface objects, any code in this method must finish quickly, or it will add latency for other listeners, and master updates will back up. If you want to perform lengthy processing of any sort, do so on another thread.
newBeat in interface BeatListenerbeat - the message which announced the start of the new beatpublic void tempoChanged(double tempo)
MasterListenerInvoked when the master tempo has changed.
To reduce latency, tempo master updates are delivered to listeners directly on the thread that is receiving them
from the network, so if you want to interact with user interface objects in this method, you need to use
javax.swing.SwingUtilities.invokeLater(Runnable)
to do so on the Event Dispatch Thread.
Even if you are not interacting with user interface objects, any code in this method must finish quickly, or it will add latency for other listeners, and master updates will back up. If you want to perform lengthy processing of any sort, do so on another thread.
tempoChanged in interface MasterListenertempo - the new master tempoCopyright © 2016–2018 Deep Symmetry, LLC. All rights reserved.