/[svn]/qsampler/trunk/src/qsamplerChannelForm.ui.h
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerChannelForm.ui.h

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

revision 115 by capela, Mon Jun 7 21:41:43 2004 UTC revision 344 by capela, Tue Jan 18 13:53:04 2005 UTC
# Line 2  Line 2 
2  //  //
3  // ui.h extension file, included from the uic-generated form implementation.  // ui.h extension file, included from the uic-generated form implementation.
4  /****************************************************************************  /****************************************************************************
5     Copyright (C) 2004, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2005, rncbc aka Rui Nuno Capela. All rights reserved.
6    
7     This program is free software; you can redistribute it and/or     This program is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License     modify it under the terms of the GNU General Public License
# Line 26  Line 26 
26  #include <qfileinfo.h>  #include <qfileinfo.h>
27  #include <qlistbox.h>  #include <qlistbox.h>
28    
 #include "qsamplerOptions.h"  
 #include "qsamplerChannelStrip.h"  
   
29  #include "config.h"  #include "config.h"
30    
31    
# Line 53  void qsamplerChannelForm::destroy (void) Line 50  void qsamplerChannelForm::destroy (void)
50    
51    
52  // Channel dialog setup formal initializer.  // Channel dialog setup formal initializer.
53  void qsamplerChannelForm::setup ( qsamplerChannelStrip *pChannel )  void qsamplerChannelForm::setup ( qsamplerChannel *pChannel )
54  {  {
55      m_pChannel = pChannel;      m_pChannel = pChannel;
56    
# Line 63  void qsamplerChannelForm::setup ( qsampl Line 60  void qsamplerChannelForm::setup ( qsampl
60      if (m_pChannel == NULL)      if (m_pChannel == NULL)
61          return;          return;
62    
63      setCaption(m_pChannel->caption());      // It can be a brand new channel, remember?
64        bool bNew = (m_pChannel->channelID() < 0);
65        setCaption(m_pChannel->channelName());
66    
67      // Check if we're up and connected.      // Check if we're up and connected.
68      if (m_pChannel->client() == NULL)      if (m_pChannel->client() == NULL)
# Line 87  void qsamplerChannelForm::setup ( qsampl Line 86  void qsamplerChannelForm::setup ( qsampl
86              EngineNameComboBox->insertItem(ppszEngines[iEngine]);              EngineNameComboBox->insertItem(ppszEngines[iEngine]);
87      }      }
88      else m_pChannel->appendMessagesClient("lscp_get_available_engines");      else m_pChannel->appendMessagesClient("lscp_get_available_engines");
89  /*  
90      // Populate Audio output type list.      // Populate Audio output type list.
91      const char **ppszAudioDrivers = ::lscp_get_available_audio_drivers(m_pChannel->client());      const char **ppszAudioDrivers = ::lscp_get_available_audio_drivers(m_pChannel->client());
92      if (ppszAudioDrivers) {      if (ppszAudioDrivers) {
# Line 105  void qsamplerChannelForm::setup ( qsampl Line 104  void qsamplerChannelForm::setup ( qsampl
104              MidiDriverComboBox->insertItem(ppszMidiDrivers[iMidiDriver]);              MidiDriverComboBox->insertItem(ppszMidiDrivers[iMidiDriver]);
105      }      }
106      else m_pChannel->appendMessagesClient("lscp_get_available_midi_drivers");      else m_pChannel->appendMessagesClient("lscp_get_available_midi_drivers");
107  */  
108      // Read proper channel information,      // Read proper channel information,
109      // and populate the channel form fields.      // and populate the channel form fields.
110    
111      // Engine name...      // Engine name...
112      const QString& sEngineName = pChannel->engineName();      QString sEngineName = pChannel->engineName();
113      if (!sEngineName.isEmpty()) {      if (sEngineName.isEmpty() && bNew)
114          if (EngineNameComboBox->listBox()->findItem(sEngineName, Qt::ExactMatch) == NULL)          sEngineName = pOptions->sEngineName;
115              EngineNameComboBox->insertItem(sEngineName);      if (sEngineName.isEmpty())
116          EngineNameComboBox->setCurrentText(sEngineName);          sEngineName = tr("(No engine)");
117      }      if (EngineNameComboBox->listBox()->findItem(sEngineName, Qt::ExactMatch) == NULL)
118            EngineNameComboBox->insertItem(sEngineName);
119        EngineNameComboBox->setCurrentText(sEngineName);
120      // Instrument filename and index...      // Instrument filename and index...
121      InstrumentFileComboBox->setCurrentText(pChannel->instrumentFile());      QString sInstrumentFile = pChannel->instrumentFile();
122      InstrumentNrSpinBox->setValue(pChannel->instrumentNr());      if (sInstrumentFile.isEmpty())
123      // MIDI input...          sInstrumentFile = tr("(No instrument)");
124      const QString& sMidiDriver = pChannel->midiDriver();      InstrumentFileComboBox->setCurrentText(sInstrumentFile);
125        InstrumentNrComboBox->clear();
126        InstrumentNrComboBox->insertStringList(
127                    qsamplerChannel::getInstrumentList(sInstrumentFile,
128                    pOptions->bInstrumentNames));
129        InstrumentNrComboBox->setCurrentItem(pChannel->instrumentNr());
130        // MIDI input driver...
131        QString sMidiDriver = pChannel->midiDriver();
132        if (sMidiDriver.isEmpty() || bNew)
133            sMidiDriver = pOptions->sMidiDriver;
134      if (!sMidiDriver.isEmpty()) {      if (!sMidiDriver.isEmpty()) {
135          if (MidiDriverComboBox->listBox()->findItem(sMidiDriver, Qt::ExactMatch) == NULL)          if (MidiDriverComboBox->listBox()->findItem(sMidiDriver, Qt::ExactMatch) == NULL)
136              MidiDriverComboBox->insertItem(sMidiDriver);              MidiDriverComboBox->insertItem(sMidiDriver);
137          MidiDriverComboBox->setCurrentText(sMidiDriver);          MidiDriverComboBox->setCurrentText(sMidiDriver);
138      }      }
139        // MIDI input port...
140      MidiPortSpinBox->setValue(pChannel->midiPort());      MidiPortSpinBox->setValue(pChannel->midiPort());
141      MidiChannelSpinBox->setValue(pChannel->midiChannel());      // MIDI input channel...
142      // Audio output...      int iMidiChannel = pChannel->midiChannel();
143      const QString& sAudioDriver = pChannel->audioDriver();      // When new, try to suggest a sensible MIDI channel...
144        if (iMidiChannel < 0)
145            iMidiChannel = (::lscp_get_channels(m_pChannel->client()) % 16);
146        MidiChannelComboBox->setCurrentItem(iMidiChannel);
147        // Audio output driver...
148        QString sAudioDriver = pChannel->audioDriver();
149        if (sAudioDriver.isEmpty() || bNew)
150            sAudioDriver = pOptions->sAudioDriver;
151      if (!sAudioDriver.isEmpty()) {      if (!sAudioDriver.isEmpty()) {
152          if (AudioDriverComboBox->listBox()->findItem(sAudioDriver, Qt::ExactMatch) == NULL)          if (AudioDriverComboBox->listBox()->findItem(sAudioDriver, Qt::ExactMatch) == NULL)
153              AudioDriverComboBox->insertItem(sAudioDriver);              AudioDriverComboBox->insertItem(sAudioDriver);
154          AudioDriverComboBox->setCurrentText(sAudioDriver);          AudioDriverComboBox->setCurrentText(sAudioDriver);
155      }      }
     // FIXME: Disable this while we don't know what to do.  
     MidiPortTextLabel->setEnabled(false);  
     MidiPortSpinBox->setEnabled(false);  
156      // Done.      // Done.
157      m_iDirtySetup--;      m_iDirtySetup--;
158      stabilizeForm();      stabilizeForm();
# Line 157  void qsamplerChannelForm::accept (void) Line 172  void qsamplerChannelForm::accept (void)
172      // We'll go for it!      // We'll go for it!
173      if (m_iDirtyCount > 0) {      if (m_iDirtyCount > 0) {
174          int iErrors = 0;          int iErrors = 0;
175            // Are we a new channel?
176            if (!m_pChannel->addChannel())
177                iErrors++;
178          // Audio output driver type...          // Audio output driver type...
179          if (!m_pChannel->setAudioDriver(AudioDriverComboBox->currentText()))          if (!m_pChannel->setAudioDriver(AudioDriverComboBox->currentText()))
180              iErrors++;              iErrors++;
# Line 167  void qsamplerChannelForm::accept (void) Line 185  void qsamplerChannelForm::accept (void)
185          if (!m_pChannel->setMidiPort(MidiPortSpinBox->value()))          if (!m_pChannel->setMidiPort(MidiPortSpinBox->value()))
186              iErrors++;              iErrors++;
187          // MIDI input channel...          // MIDI input channel...
188          if (!m_pChannel->setMidiChannel(MidiChannelSpinBox->value()))          if (!m_pChannel->setMidiChannel(MidiChannelComboBox->currentItem()))
189              iErrors++;              iErrors++;
190          // Engine name...          // Engine name...
191          if (!m_pChannel->loadEngine(EngineNameComboBox->currentText()))          if (!m_pChannel->loadEngine(EngineNameComboBox->currentText()))
192              iErrors++;              iErrors++;
193          // Instrument file and index...          // Instrument file and index...
194          if (!m_pChannel->loadInstrument(InstrumentFileComboBox->currentText(), InstrumentNrSpinBox->value()))          if (!m_pChannel->loadInstrument(InstrumentFileComboBox->currentText(), InstrumentNrComboBox->currentItem()))
195              iErrors++;              iErrors++;
196          // Show error messages?          // Show error messages?
197          if (iErrors > 0)          if (iErrors > 0)
198              m_pChannel->appendMessagesError(tr("Some channel settings could not be set.\n\nSorry."));              m_pChannel->appendMessagesError(tr("Some channel settings could not be set.\n\nSorry."));
199      }      }
200    
201      // Save default instrument directory and history...      // Save default engine name, instrument directory and history...
202      pOptions->sInstrumentDir = QFileInfo(InstrumentFileComboBox->currentText()).dirPath(true);      pOptions->sInstrumentDir = QFileInfo(InstrumentFileComboBox->currentText()).dirPath(true);
203        pOptions->sEngineName  = EngineNameComboBox->currentText();
204        pOptions->sAudioDriver = AudioDriverComboBox->currentText();
205        pOptions->sMidiDriver  = MidiDriverComboBox->currentText();
206      pOptions->saveComboBoxHistory(InstrumentFileComboBox);      pOptions->saveComboBoxHistory(InstrumentFileComboBox);
207    
208      // Just go with dialog acceptance.      // Just go with dialog acceptance.
# Line 195  void qsamplerChannelForm::reject (void) Line 216  void qsamplerChannelForm::reject (void)
216      bool bReject = true;      bool bReject = true;
217    
218      // Check if there's any pending changes...      // Check if there's any pending changes...
219      if (m_iDirtyCount > 0) {      if (m_iDirtyCount > 0 && OkPushButton->isEnabled()) {
220          switch (QMessageBox::warning(this, tr("Warning"),          switch (QMessageBox::warning(this, tr("Warning"),
221              tr("Some channel settings have been changed.\n\n"              tr("Some channel settings have been changed.\n\n"
222                 "Do you want to apply the changes?"),                 "Do you want to apply the changes?"),
# Line 241  void qsamplerChannelForm::openInstrument Line 262  void qsamplerChannelForm::openInstrument
262  // Refresh the actual instrument name.  // Refresh the actual instrument name.
263  void qsamplerChannelForm::updateInstrumentName (void)  void qsamplerChannelForm::updateInstrumentName (void)
264  {  {
265      // FIXME: A better idea would be to use libgig      qsamplerOptions *pOptions = m_pChannel->options();
266      // to retrieve the REAL instrument name.      if (pOptions == NULL)
267      InstrumentNameTextLabel->setText(QFileInfo(InstrumentFileComboBox->currentText()).fileName()          return;
268          + " [" + QString::number(InstrumentNrSpinBox->value()) + "]");  
269        // Finally this better idea would be to use libgig
270        // to retrieve the REAL instrument names.
271        InstrumentNrComboBox->clear();
272        InstrumentNrComboBox->insertStringList(
273            qsamplerChannel::getInstrumentList(
274                            InstrumentFileComboBox->currentText(),
275                            pOptions->bInstrumentNames)
276        );
277    
278      optionsChanged();      optionsChanged();
279  }  }
# Line 265  void qsamplerChannelForm::optionsChanged Line 294  void qsamplerChannelForm::optionsChanged
294  // Stabilize current form state.  // Stabilize current form state.
295  void qsamplerChannelForm::stabilizeForm (void)  void qsamplerChannelForm::stabilizeForm (void)
296  {  {
297      const QString sFilename = InstrumentFileComboBox->currentText();      const QString& sFilename = InstrumentFileComboBox->currentText();
298      OkPushButton->setEnabled(m_iDirtyCount > 0 && !sFilename.isEmpty() && QFileInfo(sFilename).exists());      OkPushButton->setEnabled(m_iDirtyCount > 0 && !sFilename.isEmpty() && QFileInfo(sFilename).exists());
299  }  }
300    

Legend:
Removed from v.115  
changed lines
  Added in v.344

  ViewVC Help
Powered by ViewVC