/[svn]/jsampler/trunk/src/org/jsampler/view/fantasia/AudioDevicePane.java
ViewVC logotype

Diff of /jsampler/trunk/src/org/jsampler/view/fantasia/AudioDevicePane.java

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

revision 1357 by iliev, Sat Sep 22 17:27:06 2007 UTC revision 1606 by iliev, Mon Dec 31 17:17:22 2007 UTC
# Line 65  import org.jsampler.view.ParameterTable; Line 65  import org.jsampler.view.ParameterTable;
65  import org.linuxsampler.lscp.AudioOutputChannel;  import org.linuxsampler.lscp.AudioOutputChannel;
66  import org.linuxsampler.lscp.AudioOutputDevice;  import org.linuxsampler.lscp.AudioOutputDevice;
67  import org.linuxsampler.lscp.Parameter;  import org.linuxsampler.lscp.Parameter;
68    import org.linuxsampler.lscp.ParameterFactory;
69    
70  import static org.jsampler.view.fantasia.FantasiaI18n.i18n;  import static org.jsampler.view.fantasia.FantasiaI18n.i18n;
71  import static org.jsampler.view.fantasia.FantasiaPrefs.preferences;  import static org.jsampler.view.fantasia.FantasiaPrefs.preferences;
# Line 89  public class AudioDevicePane extends Dev Line 90  public class AudioDevicePane extends Dev
90                  setOptionsPane(optionsPane);                  setOptionsPane(optionsPane);
91                                    
92                  int id = model.getDeviceId();                  int id = model.getDeviceId();
93                  setDeviceName(i18n.getLabel("AudioDevicePane.lDevName", id));                  String s = model.getDeviceInfo().getDriverName();
94                    setDeviceName(i18n.getLabel("AudioDevicePane.lDevName", id, s));
95          }          }
96                    
97          protected void          protected void
# Line 117  public class AudioDevicePane extends Dev Line 119  public class AudioDevicePane extends Dev
119                  private final JLabel lChannels                  private final JLabel lChannels
120                          = new JLabel(i18n.getLabel("AudioDevicePane.lChannels"));                          = new JLabel(i18n.getLabel("AudioDevicePane.lChannels"));
121                                    
122                  private final JSpinner spinnerChannels                  private final JSpinner spinnerChannels;
                         = new JSpinner(new SpinnerNumberModel(1, 1, 50, 1));  
123                                    
124                  private final JLabel lChannel =                  private final JLabel lChannel =
125                          new JLabel(i18n.getLabel("AudioDevicePane.lChannel"));                          new JLabel(i18n.getLabel("AudioDevicePane.lChannel"));
# Line 153  public class AudioDevicePane extends Dev Line 154  public class AudioDevicePane extends Dev
154                          p.add(Box.createRigidArea(new Dimension(12, 0)));                          p.add(Box.createRigidArea(new Dimension(12, 0)));
155                          p.add(lChannels);                          p.add(lChannels);
156                          p.add(Box.createRigidArea(new Dimension(5, 0)));                          p.add(Box.createRigidArea(new Dimension(5, 0)));
157                            
158                            Parameter<Integer> prm =
159                                    audioDeviceModel.getDeviceInfo().getChannelsParameter();
160                            int min = 1;
161                            if(prm.getRangeMin() != null) min = prm.getRangeMin().intValue();
162                            int max = 10000;
163                            if(prm.getRangeMax() != null) max = prm.getRangeMax().intValue();
164                            
165                            spinnerChannels = new JSpinner(new SpinnerNumberModel(1, min, max, 1));
166                            if(prm.isFixed()) spinnerChannels.setEnabled(false);
167                          p.add(spinnerChannels);                          p.add(spinnerChannels);
168                          p.setOpaque(false);                          p.setOpaque(false);
169                                                    
# Line 212  public class AudioDevicePane extends Dev Line 223  public class AudioDevicePane extends Dev
223                                  cbChannel.addItem(chn);                                  cbChannel.addItem(chn);
224                          }                          }
225                                                    
226                          Parameter[] pS = audioDeviceModel.getDeviceInfo().getAdditionalParameters();                          updateParams(audioDeviceModel.getDeviceInfo());
                         additionalParamsTable.getModel().setParameters(pS);  
227                          additionalParamsTable.getModel().addParameterListener(new ParameterListener() {                          additionalParamsTable.getModel().addParameterListener(new ParameterListener() {
228                                  public void                                  public void
229                                  parameterChanged(ParameterEvent e) {                                  parameterChanged(ParameterEvent e) {
# Line 276  public class AudioDevicePane extends Dev Line 286  public class AudioDevicePane extends Dev
286                          if(a != na) checkActive.setSelected(na);                          if(a != na) checkActive.setSelected(na);
287                                                    
288                          AudioOutputDevice d = e.getAudioDeviceModel().getDeviceInfo();                          AudioOutputDevice d = e.getAudioDeviceModel().getDeviceInfo();
289                                                    updateParams(d);
                         Parameter[] params = d.getAdditionalParameters();  
                         additionalParamsTable.getModel().setParameters(params);  
290                                                    
291                          int idx = cbChannel.getSelectedIndex();                          int idx = cbChannel.getSelectedIndex();
292                          cbChannel.removeAllItems();                          cbChannel.removeAllItems();
# Line 299  public class AudioDevicePane extends Dev Line 307  public class AudioDevicePane extends Dev
307                                                    
308                          audioDeviceModel.setBackendChannelParameter(c, e.getParameter());                          audioDeviceModel.setBackendChannelParameter(c, e.getParameter());
309                  }                  }
310                    
311                    private void
312                    updateParams(AudioOutputDevice d) {
313                            Parameter p = d.getSampleRateParameter();
314                            boolean b = p == null || p.getName() == null || p.getValue() == null;
315                            Parameter[] params = d.getAdditionalParameters();
316                            Parameter[] p2s;
317                            if(b) p2s = new Parameter[params.length];
318                            else p2s = new Parameter[params.length + 1];
319                            
320                            for(int i = 0; i < params.length; i++) p2s[i] = params[i];
321                            
322                            if(!b) p2s[params.length] = p;
323                            
324                            additionalParamsTable.getModel().setParameters(p2s);
325                    }
326          }          }
327                    
328  }  }

Legend:
Removed from v.1357  
changed lines
  Added in v.1606

  ViewVC Help
Powered by ViewVC