/[svn]/jsampler/trunk/src/org/jsampler/view/std/JSInstrumentsDbTable.java
ViewVC logotype

Diff of /jsampler/trunk/src/org/jsampler/view/std/JSInstrumentsDbTable.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1994 by iliev, Sat Mar 14 20:44:58 2009 UTC revision 1995 by iliev, Sun Sep 13 20:08:58 2009 UTC
# Line 32  import java.awt.event.KeyEvent; Line 32  import java.awt.event.KeyEvent;
32  import java.awt.event.MouseAdapter;  import java.awt.event.MouseAdapter;
33  import java.awt.event.MouseEvent;  import java.awt.event.MouseEvent;
34    
35    import java.util.LinkedList;
36  import java.util.Vector;  import java.util.Vector;
37    
38  import javax.swing.AbstractAction;  import javax.swing.AbstractAction;
# Line 46  import javax.swing.JPanel; Line 47  import javax.swing.JPanel;
47  import javax.swing.JPopupMenu;  import javax.swing.JPopupMenu;
48  import javax.swing.JTable;  import javax.swing.JTable;
49  import javax.swing.KeyStroke;  import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;  
50    
51  import javax.swing.event.ChangeEvent;  import javax.swing.event.ChangeEvent;
52  import javax.swing.event.ChangeListener;  import javax.swing.event.ChangeListener;
# Line 77  import org.jsampler.event.SamplerChannel Line 77  import org.jsampler.event.SamplerChannel
77  import org.jsampler.event.SamplerChannelListListener;  import org.jsampler.event.SamplerChannelListListener;
78    
79  import org.jsampler.task.InstrumentsDb;  import org.jsampler.task.InstrumentsDb;
80    import org.jsampler.task.Midi;
81    
82  import org.jsampler.view.DbClipboard;  import org.jsampler.view.DbClipboard;
83  import org.jsampler.view.DbDirectoryTreeNode;  import org.jsampler.view.DbDirectoryTreeNode;
84  import org.jsampler.view.InstrumentsDbTableModel;  import org.jsampler.view.InstrumentsDbTableModel;
85    
 import org.jsampler.view.JSChannelsPane;  
   
86  import org.linuxsampler.lscp.DbDirectoryInfo;  import org.linuxsampler.lscp.DbDirectoryInfo;
87  import org.linuxsampler.lscp.DbInstrumentInfo;  import org.linuxsampler.lscp.DbInstrumentInfo;
88    import org.linuxsampler.lscp.MidiInstrumentEntry;
89    import org.linuxsampler.lscp.MidiInstrumentInfo;
90    
91  import static org.jsampler.view.InstrumentsDbTableModel.ColumnType;  import static org.jsampler.view.InstrumentsDbTableModel.ColumnType;
92  import static org.jsampler.view.std.StdI18n.i18n;  import static org.jsampler.view.std.StdI18n.i18n;
# Line 694  public class JSInstrumentsDbTable extend Line 695  public class JSInstrumentsDbTable extend
695                                                    
696                          JSAddMidiInstrumentDlg dlg;                          JSAddMidiInstrumentDlg dlg;
697                          Window w = JuifeUtils.getWindow(JSInstrumentsDbTable.this);                          Window w = JuifeUtils.getWindow(JSInstrumentsDbTable.this);
698                                    
699                            boolean b = instruments.length > 1;
700                            boolean apply2all = false;
701                            float volume = 1.0f;
702                            MidiInstrumentInfo.LoadMode loadMode = MidiInstrumentInfo.LoadMode.DEFAULT;
703                            final LinkedList<MidiInstrumentInfo> instrs = new LinkedList<MidiInstrumentInfo>();
704    
705                          for(DbInstrumentInfo i : instruments) {                          for(DbInstrumentInfo i : instruments) {
706                                  if(w instanceof Dialog) {                                  if(!apply2all) {
707                                          dlg = new JSAddMidiInstrumentDlg((Dialog)w, midiMap, i);                                          if(w instanceof Dialog) {
708                                  } else if(w instanceof Frame) {                                                  dlg = new JSAddMidiInstrumentDlg((Dialog)w, midiMap, i, b);
709                                          dlg = new JSAddMidiInstrumentDlg((Frame)w, midiMap, i);                                          } else if(w instanceof Frame) {
710                                                    dlg = new JSAddMidiInstrumentDlg((Frame)w, midiMap, i, b);
711                                            } else {
712                                                    dlg = new JSAddMidiInstrumentDlg((Frame)null, midiMap, i, b);
713                                            }
714    
715                                            dlg.setVisible(true);
716                                            if(dlg.isApplyToAllSelected()) {
717                                                    if(dlg.isCancelled()) break;
718    
719                                                    apply2all = true;
720                                                    volume = dlg.getVolume();
721                                                    loadMode = dlg.getLoadMode();
722                                            }
723                                  } else {                                  } else {
724                                          dlg = new JSAddMidiInstrumentDlg((Frame)null, midiMap, i);                                          final MidiInstrumentInfo instrInfo = new MidiInstrumentInfo();
725                                            instrInfo.setName(i.getName());
726                                            instrInfo.setFilePath(i.getFilePath());
727                                            instrInfo.setInstrumentIndex(i.getInstrumentIndex());
728                                            instrInfo.setEngine(i.getEngine());
729                                            instrInfo.setVolume(volume);
730                                            instrInfo.setLoadMode(loadMode);
731    
732                                            instrs.add(instrInfo);
733                                  }                                  }
                                   
                                 dlg.setVisible(true);  
734                          }                          }
735    
736                            if(instrs.isEmpty()) return;
737    
738                            addToMap(instrs);
739                    }
740    
741                    private void
742                    addToMap(final LinkedList<MidiInstrumentInfo> instrs) {
743                            CC.scheduleInTaskQueue(new Runnable() {
744                                    public void
745                                    run() { addToMap0(instrs); }
746                            });
747                    }
748    
749                    private void
750                    addToMap0(final LinkedList<MidiInstrumentInfo> instrs) {
751                            if(instrs.isEmpty()) return;
752    
753                            MidiInstrumentEntry e = midiMap.getAvailableEntry();
754                            if(e == null) {
755                                    CC.getLogger().info("No available MIDI entry");
756                                    return;
757                            }
758    
759                            int id = midiMap.getMapId();
760                            int b = e.getMidiBank();
761                            int p = e.getMidiProgram();
762                            final Midi.MapInstrument t = new Midi.MapInstrument(id, b, p, instrs.pop());
763    
764                            t.addTaskListener(new TaskListener() {
765                                    public void
766                                    taskPerformed(TaskEvent e) {
767                                            CC.scheduleTask(new Midi.UpdateInstruments(midiMap.getMapId()));
768                                            addToMap(instrs);
769                                    }
770                            });
771    
772                            CC.getTaskQueue().add(t);
773                  }                  }
774          }          }
775                    

Legend:
Removed from v.1994  
changed lines
  Added in v.1995

  ViewVC Help
Powered by ViewVC