]> ruin.nu Git - moosique.git/blobdiff - Moosique.java
hmm.. this doesn't want to work..
[moosique.git] / Moosique.java
index e03cca0749a08b9396c7e760c722bb62f698c36a..9ecc0d886121d032f8a3d23a350a1dd9ec0adaa1 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;
@@ -185,6 +188,22 @@ public class Moosique {
                gui.update(0);
                try {
                        sequencer.setSequence(seq);
+                       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());
+                               }
+                       }
                } catch (InvalidMidiDataException e) {}
                sequencer.start();
 
@@ -343,6 +362,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 +480,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));  
+       }
+}