]> ruin.nu Git - moosique.git/blobdiff - Moosique.java
moved it outside the try-catch block..
[moosique.git] / Moosique.java
index e03cca0749a08b9396c7e760c722bb62f698c36a..649ac59dec90a450b9d2e4ca93bbc3c1e0df4664 100644 (file)
@@ -21,6 +21,9 @@ public class Moosique {
        private static MidiChannel activeChannel;
        private static MidiEvent[] timeSignatures, tempoChanges;
        private static ArrayList emptyTracks;
+       private static Map trackMute;
+       private static Map trackSolo;
+
 
        private static String filename;
        private static long editPosition;
@@ -186,6 +189,23 @@ public class Moosique {
                try {
                        sequencer.setSequence(seq);
                } catch (InvalidMidiDataException e) {}
+               Track[] tracks = seq.getTracks();
+
+               for (int i = 0; i < tracks.length; i++) {
+
+                       Object ob = trackSolo.get(tracks[i]);
+                       if(ob instanceof Boolean){
+                               System.out.println("Track solo " + i + "= "+ ob);
+                               sequencer.setTrackSolo(i,((Boolean)ob).booleanValue());
+                       }
+
+                       ob = trackMute.get(tracks[i]);
+                       if(ob instanceof Boolean){
+                               System.out.println("Track mute " + i + "= "+ ob);
+                               sequencer.setTrackMute(i,((Boolean)ob).booleanValue());
+                       }
+               }
+
                sequencer.start();
 
                // Disables input to volatile components
@@ -343,6 +363,8 @@ public class Moosique {
 
                Track[] tracks = seq.getTracks();
                emptyTracks = new ArrayList();
+               trackMute = new HashMap();
+               trackSolo = new HashMap();
 
                // Searches track 0 for changes in tempo and time signature.
                MidiEvent event;
@@ -459,4 +481,12 @@ public class Moosique {
                if (synthesizer.isOpen()) synthesizer.close();
                System.exit(0);
        }
-}
\ No newline at end of file
+       
+       public static void setTrackSolo(Track track, boolean on){
+               trackSolo.put(track, new Boolean(on));  
+       }
+
+       public static void setTrackMute(Track track, boolean on){
+               trackMute.put(track, new Boolean(on));  
+       }
+}