]> ruin.nu Git - moosique.git/blobdiff - MooTrackTitle.java
*** empty log message ***
[moosique.git] / MooTrackTitle.java
index 412fb246f183a521d86246068ca5ec5eb99b8a3f..b921926bd8dc9527b99ebe7825fe7816ab981f23 100644 (file)
@@ -15,7 +15,7 @@ public class MooTrackTitle extends JPanel {
        private MetaMessage trackNameMessage;
        private String trackName = "";
        private ShortMessage programChangeMessage;
-       private int programChange = 0, channel = 0;
+       private int channel = 0;
        private JTextField title;
        private MooInstrumentList instruments;
        private JComboBox channelBox;
@@ -32,21 +32,24 @@ public class MooTrackTitle extends JPanel {
                track = aTrack;
                this.trackNum = aTrackNum;
 
-               // Finds track name and program change
+               // Finds track name, program change and channel.
                MidiMessage msg;
+               int status;
                for (int i = 0; i < track.size(); i++) {
                        msg = track.get(i).getMessage();
-                       if (msg.getStatus() == 255) {
+                       status = msg.getStatus();
+                       if (status == MetaMessage.META) {
                                if (((MetaMessage)msg).getType() == 3) {
                                        trackNameMessage = (MetaMessage)msg;
                                        trackName = new String(trackNameMessage.getData());
                                }
-                       } else if (msg.getStatus() == 192) {
+                       } else if (status >= 192 && status <= 207) {
                                programChangeMessage = (ShortMessage)msg;
-                               programChange = programChangeMessage.getData1();
+                               channel = status - 192;
                        }
                }
 
+/*             // Finds channel number.
                MidiEvent event;
                for (int i = 0; i < track.size(); i++) {
                        event = track.get(i);
@@ -55,7 +58,7 @@ public class MooTrackTitle extends JPanel {
                                break;
                        }
                }
-               
+*/             
                // Creates and places components.
                setLayout(new GridLayout(4,1));
                setBorder(BorderFactory.createLineBorder(Color.black));
@@ -66,6 +69,10 @@ public class MooTrackTitle extends JPanel {
                title.addFocusListener(new TitleFocusListener());
                add(title);
 
+               instruments = new MooInstrumentList(channel);
+               // instruments = new MooInstrumentList(channel, programChangeMessage);
+               add(instruments);
+
                channelBox = new JComboBox();
                channelBox.setFont(Moosique.getGUI().FONT);
                for (int i = 1; i <= 16; i++)
@@ -73,9 +80,6 @@ public class MooTrackTitle extends JPanel {
 
                channelBox.setSelectedIndex(channel);
 
-               instruments = new MooInstrumentList(channelBox.getSelectedIndex());
-               add(instruments);
-
                channelBox.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e){
                                        int chan = channelBox.getSelectedIndex();