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

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

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

revision 519 by schoenebeck, Sun May 8 17:04:10 2005 UTC revision 586 by capela, Wed May 25 11:41:35 2005 UTC
# Line 292  bool qsamplerMainForm::queryClose (void) Line 292  bool qsamplerMainForm::queryClose (void)
292              ostr << *this;              ostr << *this;
293              m_pOptions->settings().writeEntry("/Layout/DockWindows", sDockables);              m_pOptions->settings().writeEntry("/Layout/DockWindows", sDockables);
294              // And the children, and the main windows state,.              // And the children, and the main windows state,.
295                  m_pOptions->saveWidgetGeometry(m_pDeviceForm);                          m_pOptions->saveWidgetGeometry(m_pDeviceForm);
296              m_pOptions->saveWidgetGeometry(this);                          m_pOptions->saveWidgetGeometry(this);
297                  // Close popup widgets.                          // Close popup widgets.
298                  if (m_pDeviceForm)                          if (m_pDeviceForm)
299                      m_pDeviceForm->close();                                  m_pDeviceForm->close();
300              // Stop client and/or server, gracefully.              // Stop client and/or server, gracefully.
301              stopServer();              stopServer();
302          }          }
# Line 349  void qsamplerMainForm::dropEvent ( QDrop Line 349  void qsamplerMainForm::dropEvent ( QDrop
349      if (!decodeDragFiles(pDropEvent, files))      if (!decodeDragFiles(pDropEvent, files))
350          return;          return;
351    
352      for (QStringList::Iterator iter = files.begin(); iter != files.end(); iter++) {          for (QStringList::Iterator iter = files.begin(); iter != files.end(); iter++) {
353                  const QString& sPath = *iter;                  const QString& sPath = *iter;
354                  if (qsamplerChannel::isInstrumentFile(sPath)) {                  if (qsamplerChannel::isInstrumentFile(sPath)) {
355                          // Try to create a new channel from instrument file...                          // Try to create a new channel from instrument file...
356                      qsamplerChannel *pChannel = new qsamplerChannel(this);                          qsamplerChannel *pChannel = new qsamplerChannel(this);
357                      if (pChannel == NULL)                          if (pChannel == NULL)
358                          return;                                  return;
359                          // Start setting the instrument filename...                          // Start setting the instrument filename...
360                          pChannel->setInstrument(sPath, 0);                          pChannel->setInstrument(sPath, 0);
361                      // Before we show it up, may be we'll                          // Before we show it up, may be we'll
362                      // better ask for some initial values?                          // better ask for some initial values?
363                      if (!pChannel->channelSetup(this)) {                          if (!pChannel->channelSetup(this)) {
364                          delete pChannel;                                  delete pChannel;
365                          return;                                  return;
366                      }                          }
367                      // Finally, give it to a new channel strip...                          // Finally, give it to a new channel strip...
368                          if (!createChannelStrip(pChannel)) {                          if (!createChannelStrip(pChannel)) {
369                          delete pChannel;                                  delete pChannel;
370                          return;                                  return;
371                          }                          }
372                      // Make that an overall update.                          // Make that an overall update.
373                      m_iDirtyCount++;                          m_iDirtyCount++;
374                      stabilizeForm();                          stabilizeForm();
375                  }   // Otherwise, load an usual session file (LSCP script)...                  }   // Otherwise, load an usual session file (LSCP script)...
376                  else if (closeSession(true))                  else if (closeSession(true))
377                          loadSessionFile(sPath);                          loadSessionFile(sPath);
# Line 398  void qsamplerMainForm::customEvent ( QCu Line 398  void qsamplerMainForm::customEvent ( QCu
398  void qsamplerMainForm::contextMenuEvent( QContextMenuEvent *pEvent )  void qsamplerMainForm::contextMenuEvent( QContextMenuEvent *pEvent )
399  {  {
400      stabilizeForm();      stabilizeForm();
401        
402      editMenu->exec(pEvent->globalPos());      editMenu->exec(pEvent->globalPos());
403  }  }
404    
# Line 628  bool qsamplerMainForm::loadSessionFile ( Line 628  bool qsamplerMainForm::loadSessionFile (
628      m_sFilename = sFilename;      m_sFilename = sFilename;
629      updateRecentFiles(sFilename);      updateRecentFiles(sFilename);
630      appendMessages(tr("Open session: \"%1\".").arg(sessionName(m_sFilename)));      appendMessages(tr("Open session: \"%1\".").arg(sessionName(m_sFilename)));
631        
632      // Make that an overall update.      // Make that an overall update.
633      stabilizeForm();      stabilizeForm();
634      return true;      return true;
# Line 674  bool qsamplerMainForm::saveSessionFile ( Line 674  bool qsamplerMainForm::saveSessionFile (
674                  qsamplerDevice device(this, qsamplerDevice::Audio, piDeviceIDs[iDevice]);                  qsamplerDevice device(this, qsamplerDevice::Audio, piDeviceIDs[iDevice]);
675                  // Audio device specification...                  // Audio device specification...
676                  ts << "# " << device.deviceTypeName() << " " << device.driverName()                  ts << "# " << device.deviceTypeName() << " " << device.driverName()
677                     << " " << tr("Device") << " " << iDevice << endl;                          << " " << tr("Device") << " " << iDevice << endl;
678                  ts << "CREATE AUDIO_OUTPUT_DEVICE " << device.driverName();                  ts << "CREATE AUDIO_OUTPUT_DEVICE " << device.driverName();
679                  qsamplerDeviceParamMap::ConstIterator deviceParam;                  qsamplerDeviceParamMap::ConstIterator deviceParam;
680                  for (deviceParam = device.params().begin();                  for (deviceParam = device.params().begin();
# Line 697  bool qsamplerMainForm::saveSessionFile ( Line 697  bool qsamplerMainForm::saveSessionFile (
697                                  const qsamplerDeviceParam& param = portParam.data();                                  const qsamplerDeviceParam& param = portParam.data();
698                                  if (param.fix || param.value.isEmpty()) ts << "# ";                                  if (param.fix || param.value.isEmpty()) ts << "# ";
699                                  ts << "SET AUDIO_OUTPUT_CHANNEL_PARAMETER " << iDevice                                  ts << "SET AUDIO_OUTPUT_CHANNEL_PARAMETER " << iDevice
700                                     << " " << iPort << " " << portParam.key()                                          << " " << iPort << " " << portParam.key()
701                                     << "='" << param.value << "'" << endl;                                          << "='" << param.value << "'" << endl;
702                          }                          }
703                  }                  }
704                  // Audio device index/id mapping.                  // Audio device index/id mapping.
# Line 713  bool qsamplerMainForm::saveSessionFile ( Line 713  bool qsamplerMainForm::saveSessionFile (
713                  ts << endl;                  ts << endl;
714                  qsamplerDevice device(this, qsamplerDevice::Midi, piDeviceIDs[iDevice]);                  qsamplerDevice device(this, qsamplerDevice::Midi, piDeviceIDs[iDevice]);
715                  // MIDI device specification...                  // MIDI device specification...
716          ts << "# " << device.deviceTypeName() << " " << device.driverName()                  ts << "# " << device.deviceTypeName() << " " << device.driverName()
717                     << " " << tr("Device") << " " << iDevice << endl;                          << " " << tr("Device") << " " << iDevice << endl;
718                  ts << "CREATE MIDI_INPUT_DEVICE " << device.driverName();                  ts << "CREATE MIDI_INPUT_DEVICE " << device.driverName();
719                  qsamplerDeviceParamMap::ConstIterator deviceParam;                  qsamplerDeviceParamMap::ConstIterator deviceParam;
720                  for (deviceParam = device.params().begin();                  for (deviceParam = device.params().begin();
# Line 756  bool qsamplerMainForm::saveSessionFile ( Line 756  bool qsamplerMainForm::saveSessionFile (
756              if (pChannel) {              if (pChannel) {
757                  ts << "# " << tr("Channel") << " " << iChannel << endl;                  ts << "# " << tr("Channel") << " " << iChannel << endl;
758                  ts << "ADD CHANNEL" << endl;                  ts << "ADD CHANNEL" << endl;
759                  if (audioDeviceMap.isEmpty()) {                                  if (audioDeviceMap.isEmpty()) {
760                          ts << "SET CHANNEL AUDIO_OUTPUT_TYPE " << iChannel                                          ts << "SET CHANNEL AUDIO_OUTPUT_TYPE " << iChannel
761                                              << " " << pChannel->audioDriver() << endl;                                                  << " " << pChannel->audioDriver() << endl;
762                              } else {                                  } else {
763                          ts << "SET CHANNEL AUDIO_OUTPUT_DEVICE " << iChannel                                          ts << "SET CHANNEL AUDIO_OUTPUT_DEVICE " << iChannel
764                                             << " " << audioDeviceMap[pChannel->audioDevice()] << endl;                                                  << " " << audioDeviceMap[pChannel->audioDevice()] << endl;
765                                    }
766                                    if (midiDeviceMap.isEmpty()) {
767                                            ts << "SET CHANNEL MIDI_INPUT_TYPE " << iChannel
768                                                    << " " << pChannel->midiDriver() << endl;
769                                    } else {
770                                            ts << "SET CHANNEL MIDI_INPUT_DEVICE " << iChannel
771                                                    << " " << midiDeviceMap[pChannel->midiDevice()] << endl;
772                                  }                                  }
773                  if (midiDeviceMap.isEmpty()) {                                  ts << "SET CHANNEL MIDI_INPUT_PORT " << iChannel
774                          ts << "SET CHANNEL MIDI_INPUT_TYPE " << iChannel                                          << " " << pChannel->midiPort() << endl;
                                        << " " << pChannel->midiDriver() << endl;  
                             } else {  
                         ts << "SET CHANNEL MIDI_INPUT_DEVICE " << iChannel  
                                            << " " << midiDeviceMap[pChannel->midiDevice()] << endl;  
                             }  
                 ts << "SET CHANNEL MIDI_INPUT_PORT " << iChannel  
                                << " " << pChannel->midiPort() << endl;  
775                  ts << "SET CHANNEL MIDI_INPUT_CHANNEL " << iChannel << " ";                  ts << "SET CHANNEL MIDI_INPUT_CHANNEL " << iChannel << " ";
776                  if (pChannel->midiChannel() == LSCP_MIDI_CHANNEL_ALL)                  if (pChannel->midiChannel() == LSCP_MIDI_CHANNEL_ALL)
777                      ts << "ALL";                      ts << "ALL";
# Line 876  void qsamplerMainForm::fileReset (void) Line 876  void qsamplerMainForm::fileReset (void)
876          tr("Resetting the sampler instance will close\n"          tr("Resetting the sampler instance will close\n"
877             "all device and channel configurations.\n\n"             "all device and channel configurations.\n\n"
878             "Please note that this operation may cause\n"             "Please note that this operation may cause\n"
879             "temporary MIDI and Audio disruption\n\n"             "temporary MIDI and Audio disruption.\n\n"
880             "Do you want to reset the sampler engine now?"),             "Do you want to reset the sampler engine now?"),
881          tr("Reset"), tr("Cancel")) > 0)          tr("Reset"), tr("Cancel")) > 0)
882          return;          return;
# Line 901  void qsamplerMainForm::fileRestart (void Line 901  void qsamplerMainForm::fileRestart (void
901  {  {
902      if (m_pOptions == NULL)      if (m_pOptions == NULL)
903          return;          return;
904            
905      bool bRestart = true;      bool bRestart = true;
906        
907      // Ask user whether he/she want's a complete restart...      // Ask user whether he/she want's a complete restart...
908      // (if we're currently up and running)      // (if we're currently up and running)
909      if (bRestart && m_pClient) {      if (bRestart && m_pClient) {
# Line 911  void qsamplerMainForm::fileRestart (void Line 911  void qsamplerMainForm::fileRestart (void
911              tr("New settings will be effective after\n"              tr("New settings will be effective after\n"
912                 "restarting the client/server connection.\n\n"                 "restarting the client/server connection.\n\n"
913                 "Please note that this operation may cause\n"                 "Please note that this operation may cause\n"
914                 "temporary MIDI and Audio disruption\n\n"                 "temporary MIDI and Audio disruption.\n\n"
915                 "Do you want to restart the connection now?"),                 "Do you want to restart the connection now?"),
916              tr("Restart"), tr("Cancel")) == 0);              tr("Restart"), tr("Cancel")) == 0);
917      }      }
# Line 954  void qsamplerMainForm::editAddChannel (v Line 954  void qsamplerMainForm::editAddChannel (v
954          delete pChannel;          delete pChannel;
955          return;          return;
956      }      }
957        
958      // And give it to the strip (will own the channel instance, if successful).      // And give it to the strip (will own the channel instance, if successful).
959      if (!createChannelStrip(pChannel)) {      if (!createChannelStrip(pChannel)) {
960          delete pChannel;          delete pChannel;
# Line 976  void qsamplerMainForm::editRemoveChannel Line 976  void qsamplerMainForm::editRemoveChannel
976      qsamplerChannelStrip *pChannelStrip = activeChannelStrip();      qsamplerChannelStrip *pChannelStrip = activeChannelStrip();
977      if (pChannelStrip == NULL)      if (pChannelStrip == NULL)
978          return;          return;
979            
980      qsamplerChannel *pChannel = pChannelStrip->channel();      qsamplerChannel *pChannel = pChannelStrip->channel();
981      if (pChannel == NULL)      if (pChannel == NULL)
982          return;          return;
# Line 998  void qsamplerMainForm::editRemoveChannel Line 998  void qsamplerMainForm::editRemoveChannel
998    
999      // Just delete the channel strip.      // Just delete the channel strip.
1000      delete pChannelStrip;      delete pChannelStrip;
1001        
1002      // Do we auto-arrange?      // Do we auto-arrange?
1003      if (m_pOptions && m_pOptions->bAutoArrange)      if (m_pOptions && m_pOptions->bAutoArrange)
1004          channelsArrange();          channelsArrange();
# Line 1042  void qsamplerMainForm::editResetChannel Line 1042  void qsamplerMainForm::editResetChannel
1042  // Reset all sampler channels.  // Reset all sampler channels.
1043  void qsamplerMainForm::editResetAllChannels (void)  void qsamplerMainForm::editResetAllChannels (void)
1044  {  {
1045      if (m_pClient == NULL)          if (m_pClient == NULL)
1046          return;                  return;
1047    
1048      // Invoque the channel strip procedure,          // Invoque the channel strip procedure,
1049          // for all channels out there...          // for all channels out there...
1050      m_pWorkspace->setUpdatesEnabled(false);          m_pWorkspace->setUpdatesEnabled(false);
1051      QWidgetList wlist = m_pWorkspace->windowList();          QWidgetList wlist = m_pWorkspace->windowList();
1052      for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {
1053          qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);
1054          if (pChannelStrip)                  if (pChannelStrip)
1055                  pChannelStrip->channelReset();                          pChannelStrip->channelReset();
1056      }          }
1057      m_pWorkspace->setUpdatesEnabled(true);          m_pWorkspace->setUpdatesEnabled(true);
1058  }  }
1059    
1060    
# Line 1109  void qsamplerMainForm::viewMessages ( bo Line 1109  void qsamplerMainForm::viewMessages ( bo
1109  // Show/hide the device configurator form.  // Show/hide the device configurator form.
1110  void qsamplerMainForm::viewDevices (void)  void qsamplerMainForm::viewDevices (void)
1111  {  {
1112      if (m_pOptions == NULL)          if (m_pOptions == NULL)
1113          return;                  return;
1114    
1115      if (m_pDeviceForm) {          if (m_pDeviceForm) {
1116          m_pOptions->saveWidgetGeometry(m_pDeviceForm);                  m_pOptions->saveWidgetGeometry(m_pDeviceForm);
1117                  m_pDeviceForm->setClient(m_pClient);                  m_pDeviceForm->setClient(m_pClient);
1118          if (m_pDeviceForm->isVisible()) {                  if (m_pDeviceForm->isVisible()) {
1119              m_pDeviceForm->hide();                          m_pDeviceForm->hide();
1120          } else {                  } else {
1121              m_pDeviceForm->show();                          m_pDeviceForm->show();
1122              m_pDeviceForm->raise();                          m_pDeviceForm->raise();
1123              m_pDeviceForm->setActiveWindow();                          m_pDeviceForm->setActiveWindow();
1124          }                  }
1125      }          }
1126  }  }
1127    
1128    
# Line 1240  void qsamplerMainForm::channelsArrange ( Line 1240  void qsamplerMainForm::channelsArrange (
1240          y += iHeight;          y += iHeight;
1241      }      }
1242      m_pWorkspace->setUpdatesEnabled(true);      m_pWorkspace->setUpdatesEnabled(true);
1243        
1244      stabilizeForm();      stabilizeForm();
1245  }  }
1246    
# Line 1384  void qsamplerMainForm::stabilizeForm (vo Line 1384  void qsamplerMainForm::stabilizeForm (vo
1384  void qsamplerMainForm::channelStripChanged( qsamplerChannelStrip *pChannelStrip )  void qsamplerMainForm::channelStripChanged( qsamplerChannelStrip *pChannelStrip )
1385  {  {
1386          // Add this strip to the changed list...          // Add this strip to the changed list...
1387          if (m_changedStrips.containsRef(pChannelStrip) == 0)          if (m_changedStrips.containsRef(pChannelStrip) == 0) {
1388                  m_changedStrips.append(pChannelStrip);                  m_changedStrips.append(pChannelStrip);
1389                    pChannelStrip->resetErrorCount();
1390            }
1391    
1392      // Just mark the dirty form.      // Just mark the dirty form.
1393      m_iDirtyCount++;      m_iDirtyCount++;
# Line 1675  qsamplerChannelStrip *qsamplerMainForm:: Line 1677  qsamplerChannelStrip *qsamplerMainForm::
1677      pChannelStrip = new qsamplerChannelStrip(m_pWorkspace, 0, wflags);      pChannelStrip = new qsamplerChannelStrip(m_pWorkspace, 0, wflags);
1678      if (pChannelStrip == NULL)      if (pChannelStrip == NULL)
1679          return NULL;          return NULL;
1680            
1681      // Actual channel strip setup...      // Actual channel strip setup...
1682      pChannelStrip->setup(pChannel);      pChannelStrip->setup(pChannel);
1683      QObject::connect(pChannelStrip, SIGNAL(channelChanged(qsamplerChannelStrip *)), this, SLOT(channelStripChanged(qsamplerChannelStrip *)));      QObject::connect(pChannelStrip, SIGNAL(channelChanged(qsamplerChannelStrip *)), this, SLOT(channelStripChanged(qsamplerChannelStrip *)));
# Line 1733  qsamplerChannelStrip *qsamplerMainForm:: Line 1735  qsamplerChannelStrip *qsamplerMainForm::
1735          QWidgetList wlist = m_pWorkspace->windowList();          QWidgetList wlist = m_pWorkspace->windowList();
1736          if (wlist.isEmpty())          if (wlist.isEmpty())
1737                  return NULL;                  return NULL;
1738            
1739          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {
1740                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);
1741                  if (pChannelStrip) {                  if (pChannelStrip) {
# Line 1814  void qsamplerMainForm::timerSlot (void) Line 1816  void qsamplerMainForm::timerSlot (void)
1816              }              }
1817          }          }
1818      }      }
1819        
1820          // Refresh each channel usage, on each period...          // Refresh each channel usage, on each period...
1821      if (m_pClient && (m_changedStrips.count() > 0 || m_pOptions->bAutoRefresh)) {          if (m_pClient && (m_changedStrips.count() > 0 || m_pOptions->bAutoRefresh)) {
1822          m_iTimerSlot += QSAMPLER_TIMER_MSECS;                  m_iTimerSlot += QSAMPLER_TIMER_MSECS;
1823          if (m_iTimerSlot >= m_pOptions->iAutoRefreshTime && m_pWorkspace->isUpdatesEnabled())  {                  if (m_iTimerSlot >= m_pOptions->iAutoRefreshTime && m_pWorkspace->isUpdatesEnabled())  {
1824              m_iTimerSlot = 0;                          m_iTimerSlot = 0;
1825              // Update the channel information for each pending strip...                          // Update the channel information for each pending strip...
1826              for (qsamplerChannelStrip *pChannelStrip = m_changedStrips.first();                          for (qsamplerChannelStrip *pChannelStrip = m_changedStrips.first();
1827                      pChannelStrip;                                          pChannelStrip;
1828                                                  pChannelStrip = m_changedStrips.next()) {                                                  pChannelStrip = m_changedStrips.next()) {
1829                                  // If successfull, remove from pending list...                                  // If successfull, remove from pending list...
1830                                  if (pChannelStrip->updateChannelInfo())                                  if (pChannelStrip->updateChannelInfo())
1831                      m_changedStrips.remove(pChannelStrip);                                          m_changedStrips.remove(pChannelStrip);
1832                          }                          }
1833              // Update the channel stream usage for each strip...                          // Update the channel stream usage for each strip...
1834              QWidgetList wlist = m_pWorkspace->windowList();                          QWidgetList wlist = m_pWorkspace->windowList();
1835              for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {                          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {
1836                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);                                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);
1837                  if (pChannelStrip && pChannelStrip->isVisible())                                  if (pChannelStrip && pChannelStrip->isVisible())
1838                      pChannelStrip->updateChannelUsage();                                          pChannelStrip->updateChannelUsage();
1839              }                          }
1840          }                  }
1841      }          }
1842    
1843      // Register the next timer slot.      // Register the next timer slot.
1844      QTimer::singleShot(QSAMPLER_TIMER_MSECS, this, SLOT(timerSlot()));      QTimer::singleShot(QSAMPLER_TIMER_MSECS, this, SLOT(timerSlot()));
# Line 2070  void qsamplerMainForm::stopClient (void) Line 2072  void qsamplerMainForm::stopClient (void)
2072      // channels from the back-end server.      // channels from the back-end server.
2073      m_iDirtyCount = 0;      m_iDirtyCount = 0;
2074      closeSession(false);      closeSession(false);
2075        
2076      // Close us as a client...      // Close us as a client...
2077      lscp_client_destroy(m_pClient);      lscp_client_destroy(m_pClient);
2078      m_pClient = NULL;      m_pClient = NULL;

Legend:
Removed from v.519  
changed lines
  Added in v.586

  ViewVC Help
Powered by ViewVC