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;
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.
title.addFocusListener(new TitleFocusListener());
add(title);
- instruments = new MooInstrumentList(programChange);
- add(instruments);
JPanel checkboxes = new JPanel();
checkboxes.setLayout(new GridLayout(1,3));
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());
instruments = new MooInstrumentList(channelBox.getSelectedIndex());
}
}}});
channelBox.setSelectedIndex(channel);
+
+ add(instruments);
add(channelBox);
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(instruments);
add(checkboxes);
}