]> ruin.nu Git - moosique.git/commitdiff
changes to instrument and channel combos..
authorMichael Andreen <harv@ruin.nu>
Tue, 13 May 2003 16:46:14 +0000 (16:46 +0000)
committerMichael Andreen <harv@ruin.nu>
Tue, 13 May 2003 16:46:14 +0000 (16:46 +0000)
MooInstrumentList.java
MooTrackTitle.java
Moosique.java

index 716cd182830340d35da72b8b174e1ce08ef6ffd4..88903e039eb838360a771b3129d3201819052f74 100644 (file)
@@ -11,16 +11,22 @@ import java.awt.event.*;
  
 public class MooInstrumentList extends JComboBox implements ActionListener {
 
-       public MooInstrumentList() {
+       protected int channel;
+       public MooInstrumentList(int chan) {
                super(instruments);
+               setChannel(chan);
                setFont(new Font("Helvetica", Font.PLAIN, 10));
                addActionListener(this);
        }
 
+       public void setChannel(int chan){
+               channel = chan;
+               setSelectedIndex(Moosique.getChannel(chan).getProgram());
+       }
        public void actionPerformed(ActionEvent e) {
                JComboBox box = (JComboBox)e.getSource();
                int instrument = box.getSelectedIndex();
-               Moosique.getActiveChannel().programChange(instrument);
+               Moosique.getChannel(channel).programChange(instrument);
        }
     
        public static final String[] instruments = {
index e229c6dfbc3da8165bb9e9a4d50b800f6a71ead3..1d9171a84c2083909c24f8acd66ddc5e7e9ec63f 100644 (file)
@@ -32,8 +32,6 @@ public class MooTrackTitle extends JPanel {
                title.addFocusListener(new TitleFocusListener());
                add(title);
 
-               instruments = new MooInstrumentList();
-               add(instruments);
 
                JPanel checkboxes = new JPanel();
                checkboxes.setLayout(new GridLayout(1,3));
@@ -52,26 +50,23 @@ public class MooTrackTitle extends JPanel {
                        }
         }
 
-               channel.addItemListener(new ItemListener(){
-                               public void itemStateChanged(ItemEvent e){
-                                       Object ob = channel.getSelectedItem();
-                                       if (ob instanceof Integer){
-                                               int chan = ((Integer)ob).intValue();
-                                               //set channel
-                                               MidiEvent me;
-                                               MooNote mn;
-                                               for (int j = 0; j < track.size(); j++) {
-                                                       me = track.get(j);
-                                               if (me instanceof MooNote){
-                                                               mn = (MooNote)me;
-                                                               mn.setChannel(chan);
-                                                               System.out.println(ob);
-                                                       }
-                                   }
-                                       }
+               instruments = new MooInstrumentList(channel.getSelectedIndex());
+
+               channel.addActionListener(new ActionListener(){
+                               public void actionPerformed(ActionEvent e){
+                                       int chan = channel.getSelectedIndex();
+                                       MidiEvent me;
+                                       MooNote mn;
+                                       instruments.setChannel(channel.getSelectedIndex());
+                                       for (int j = 0; j < track.size(); j++) {
+                                               me = track.get(j);
+                                           if (me instanceof MooNote){
+                                                       mn = (MooNote)me;
+                                                       mn.setChannel(chan);
+                                               }
+                               }
                                }});
 
-               add(channel);
                
 
                mute = new JCheckBox("Mute");
@@ -91,6 +86,9 @@ public class MooTrackTitle extends JPanel {
                                        mute.setSelected(false);
                                }});
                checkboxes.add(solo);
+
+               add(instruments);
+               add(channel);
                add(checkboxes);
        }
 
index b79fa67f93e9abd1f3163495b55a789e4e345b04..c10043616f76d847484e05af0ebb896861f36d70 100644 (file)
@@ -119,6 +119,14 @@ public class Moosique {
                return channels;
        }
 
+       /** 
+        * Returns the MidiChannels of the selected synthesizer.
+        * @return the available MidiChannels
+        */
+       public static MidiChannel getChannel(int i) {
+               return channels[i];
+       }
+
        /** 
         * Returns the currently active MidiChannel.
         * @return the active MidiChannel