src/java.desktop/share/classes/com/sun/media/sound/RealTimeSequencer.java

Print this page




  34 import java.util.WeakHashMap;
  35 
  36 import javax.sound.midi.*;
  37 
  38 
  39 /**
  40  * A Real Time Sequencer
  41  *
  42  * @author Florian Bomers
  43  */
  44 
  45 /* TODO:
  46  * - rename PlayThread to PlayEngine (because isn't a thread)
  47  */
  48 final class RealTimeSequencer extends AbstractMidiDevice
  49         implements Sequencer, AutoConnectSequencer {
  50 
  51     // STATIC VARIABLES
  52 
  53     /** debugging flags */
  54     private final static boolean DEBUG_PUMP = false;
  55     private final static boolean DEBUG_PUMP_ALL = false;
  56 
  57     /**
  58      * Event Dispatcher thread. Should be using a shared event
  59      * dispatcher instance with a factory in EventDispatcher
  60      */
  61     private static final Map<ThreadGroup, EventDispatcher> dispatchers =
  62             new WeakHashMap<>();
  63 
  64     /**
  65      * All RealTimeSequencers share this info object.
  66      */
  67     static final MidiDevice.Info info = new RealTimeSequencerInfo();
  68 
  69 
  70     private static final Sequencer.SyncMode[] masterSyncModes = { Sequencer.SyncMode.INTERNAL_CLOCK };
  71     private static final Sequencer.SyncMode[] slaveSyncModes  = { Sequencer.SyncMode.NO_SYNC };
  72 
  73     private static final Sequencer.SyncMode masterSyncMode    = Sequencer.SyncMode.INTERNAL_CLOCK;
  74     private static final Sequencer.SyncMode slaveSyncMode     = Sequencer.SyncMode.NO_SYNC;
  75 




  34 import java.util.WeakHashMap;
  35 
  36 import javax.sound.midi.*;
  37 
  38 
  39 /**
  40  * A Real Time Sequencer
  41  *
  42  * @author Florian Bomers
  43  */
  44 
  45 /* TODO:
  46  * - rename PlayThread to PlayEngine (because isn't a thread)
  47  */
  48 final class RealTimeSequencer extends AbstractMidiDevice
  49         implements Sequencer, AutoConnectSequencer {
  50 
  51     // STATIC VARIABLES
  52 
  53     /** debugging flags */
  54     private static final boolean DEBUG_PUMP = false;
  55     private static final boolean DEBUG_PUMP_ALL = false;
  56 
  57     /**
  58      * Event Dispatcher thread. Should be using a shared event
  59      * dispatcher instance with a factory in EventDispatcher
  60      */
  61     private static final Map<ThreadGroup, EventDispatcher> dispatchers =
  62             new WeakHashMap<>();
  63 
  64     /**
  65      * All RealTimeSequencers share this info object.
  66      */
  67     static final MidiDevice.Info info = new RealTimeSequencerInfo();
  68 
  69 
  70     private static final Sequencer.SyncMode[] masterSyncModes = { Sequencer.SyncMode.INTERNAL_CLOCK };
  71     private static final Sequencer.SyncMode[] slaveSyncModes  = { Sequencer.SyncMode.NO_SYNC };
  72 
  73     private static final Sequencer.SyncMode masterSyncMode    = Sequencer.SyncMode.INTERNAL_CLOCK;
  74     private static final Sequencer.SyncMode slaveSyncMode     = Sequencer.SyncMode.NO_SYNC;
  75