Ignore:
Timestamp:
05/10/18 16:04:51 (6 years ago)
Author:
davidb
Message:

Reworking of the code-base to separate logic from graphics. This version of Expeditee now supports a JFX graphics as an alternative to SWING

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/apollo/audio/util/MultiTrackPlaybackController.java

    r367 r1102  
    99
    1010import javax.sound.sampled.LineUnavailableException;
    11 import javax.swing.SwingUtilities;
    1211
    1312import org.apollo.audio.ApolloPlaybackMixer;
     
    3130import org.apollo.util.TrackModelHandler;
    3231import org.apollo.util.TrackModelLoadManager;
    33 import org.expeditee.gui.DisplayIO;
    34 import org.expeditee.gui.DisplayIOObserver;
    35 
     32import org.expeditee.core.BlockingRunnable;
     33import org.expeditee.gio.EcosystemManager;
     34import org.expeditee.gui.DisplayController;
     35import org.expeditee.gui.DisplayObserver;
    3636
    3737public class MultiTrackPlaybackController
    3838        extends AbstractSubject
    39         implements TrackModelHandler, Observer, DisplayIOObserver {
     39        implements TrackModelHandler, Observer, DisplayObserver {
    4040       
    4141        /** Can be a framename or virtual filename (e.g. from a linked track) */
     
    9191                // After a certain amount of frame changes since the last multi playback has occured
    9292                // the cached track models are freed to stop consuming all the memory.
    93                 DisplayIO.addDisplayIOObserver(this);
     93                DisplayController.addDisplayObserver(this);
    9494               
    9595                // For whenever a track sequence is created - must observe the created track sequences...
     
    295295         */
    296296        public void frameChanged() {
    297                 if (hasTrackCacheExpired() || isPlaying() || isLoading() || DisplayIO.getCurrentFrame() == null) return; // already expired - or is playing - so don't expire!
    298                
    299                 String currentFrameName = DisplayIO.getCurrentFrame().getName();
     297                if (hasTrackCacheExpired() || isPlaying() || isLoading() || DisplayController.getCurrentFrame() == null) return; // already expired - or is playing - so don't expire!
     298               
     299                String currentFrameName = DisplayController.getCurrentFrame().getName();
    300300               
    301301                // Free track group every so often..
     
    785785                        final int id1 = id;
    786786                        final Object state1 = state;
    787                         SwingUtilities.invokeLater(new Runnable() {
     787                        EcosystemManager.getMiscManager().runOnGIOThread(new Runnable() {
    788788                                public void run() {
    789789                                        synchronized(listeners1) {
     
    919919       
    920920                                try {
    921                                         SwingUtilities.invokeAndWait(absTrackGraphRetreiver);
     921                                        EcosystemManager.getMiscManager().runOnGIOThread(absTrackGraphRetreiver);
    922922                                } catch (Exception e) {
    923923                                        notifyListeners(loadListeners, MultitrackLoadListener.LOAD_FAILED_GENERIC, e, true);
     
    10951095
    10961096                        // Must commence on the swing thread
    1097                         SwingUtilities.invokeLater(new MultiTrackPlaybackCommencer());
     1097                        EcosystemManager.getMiscManager().runOnGIOThread(new MultiTrackPlaybackCommencer());
    10981098                }
    10991099               
     
    11541154                 * @author Brook Novak
    11551155                 */
    1156                 private class ABSTrackGraphRetreiver implements Runnable {
     1156                private class ABSTrackGraphRetreiver extends BlockingRunnable {
    11571157                       
    11581158                        private String masterMixID;
     
    11651165                        }
    11661166                       
    1167                         public void run() {
     1167                        public void execute() {
    11681168                                assert(rootODFrame != null);
    11691169                                assert(masterMixID != null);
Note: See TracChangeset for help on using the changeset viewer.