X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooTrackTitle.java;h=412fb246f183a521d86246068ca5ec5eb99b8a3f;hb=31f81450a303d52bf37ec8bcbb12e0f3b3b8b833;hp=2dfd67f63e2266c015cb7fd86be1902803ed6bea;hpb=ae45edfc5dff1e0a098df4afe747a2dec6c90362;p=moosique.git diff --git a/MooTrackTitle.java b/MooTrackTitle.java index 2dfd67f..412fb24 100644 --- a/MooTrackTitle.java +++ b/MooTrackTitle.java @@ -22,12 +22,15 @@ public class MooTrackTitle extends JPanel { private JCheckBox mute; private JCheckBox solo; private Track track; + private int trackNum; /** * Creates the title bar. */ - public MooTrackTitle (Track aTrack) { + public MooTrackTitle (Track aTrack, int aTrackNum) { + setDoubleBuffered(true); track = aTrack; + this.trackNum = aTrackNum; // Finds track name and program change MidiMessage msg; @@ -47,7 +50,10 @@ public class MooTrackTitle extends JPanel { MidiEvent event; for (int i = 0; i < track.size(); i++) { event = track.get(i); - if (event instanceof MooNote) channel = ((MooNote)event).getChannel(); + if (event instanceof MooNote) { + channel = ((MooNote)event).getChannel(); + break; + } } // Creates and places components. @@ -55,32 +61,20 @@ public class MooTrackTitle extends JPanel { setBorder(BorderFactory.createLineBorder(Color.black)); setPreferredSize(new Dimension(MooTrackView.VIEW_WIDTH,70)); - title = new JTextField(trackName); // JTextField(String text, int columns) + title = new JTextField(trackName); title.setFont(Moosique.getGUI().FONT); title.addFocusListener(new TitleFocusListener()); add(title); - instruments = new MooInstrumentList(programChange); - add(instruments); - - JPanel checkboxes = new JPanel(); - checkboxes.setLayout(new GridLayout(1,3)); - channelBox = new JComboBox(); channelBox.setFont(Moosique.getGUI().FONT); for (int i = 1; i <= 16; i++) channelBox.addItem(new Integer(i)); - for (int j = 0; j < track.size(); j++) { - MidiEvent me = track.get(j); - if (me instanceof MooNote){ - MooNote mn = (MooNote)me; - channelBox.setSelectedIndex(mn.getChannel()); - break; - } - } + channelBox.setSelectedIndex(channel); instruments = new MooInstrumentList(channelBox.getSelectedIndex()); + add(instruments); channelBox.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ @@ -95,24 +89,38 @@ public class MooTrackTitle extends JPanel { mn.setChannel(chan); } }}}); - channelBox.setSelectedIndex(channel); add(channelBox); + JPanel checkboxes = new JPanel(); + checkboxes.setLayout(new GridLayout(1,3)); + mute = new JCheckBox("Mute"); + mute.setSelected(Moosique.getSequencer().getTrackMute(trackNum)); mute.setFont(Moosique.getGUI().FONT); mute.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ - //setMute - solo.setSelected(false); + boolean selected = mute.isSelected(); + if (selected){ + solo.setSelected(false); + Moosique.getSequencer().setTrackSolo(trackNum, false); + } + Moosique.getSequencer().setTrackMute(trackNum, selected); + }}); checkboxes.add(mute); solo = new JCheckBox("Solo"); + solo.setSelected(Moosique.getSequencer().getTrackSolo(trackNum)); solo.setFont(Moosique.getGUI().FONT); solo.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ //setSolo - mute.setSelected(false); + boolean selected = solo.isSelected(); + if (selected){ + mute.setSelected(false); + Moosique.getSequencer().setTrackMute(trackNum, false); + } + Moosique.getSequencer().setTrackSolo(trackNum, selected); }}); checkboxes.add(solo); add(checkboxes);