/[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 477 by capela, Fri Mar 18 22:38:44 2005 UTC revision 680 by capela, Thu Jun 23 22:54:14 2005 UTC
# Line 51  Line 51 
51  #include <signal.h>  #include <signal.h>
52  #endif  #endif
53    
54    #ifdef CONFIG_LIBGIG
55    #include <gig.h>
56    #endif
57    
58  // Timer constant stuff.  // Timer constant stuff.
59  #define QSAMPLER_TIMER_MSECS    200  #define QSAMPLER_TIMER_MSECS    200
60    
# Line 218  void qsamplerMainForm::setup ( qsamplerO Line 222  void qsamplerMainForm::setup ( qsamplerO
222      // Some child forms are to be created right now.      // Some child forms are to be created right now.
223      m_pMessages = new qsamplerMessages(this);      m_pMessages = new qsamplerMessages(this);
224      m_pDeviceForm = new qsamplerDeviceForm(this, 0, wflags);      m_pDeviceForm = new qsamplerDeviceForm(this, 0, wflags);
225        m_pDeviceForm->setMainForm(this); // An important life immutable!
226      // Set message defaults...      // Set message defaults...
227      updateMessagesFont();      updateMessagesFont();
228      updateMessagesLimit();      updateMessagesLimit();
# Line 287  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 344  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 382  void qsamplerMainForm::customEvent ( QCu Line 387  void qsamplerMainForm::customEvent ( QCu
387      // For the time being, just pump it to messages.      // For the time being, just pump it to messages.
388      if (pCustomEvent->type() == QSAMPLER_CUSTOM_EVENT) {      if (pCustomEvent->type() == QSAMPLER_CUSTOM_EVENT) {
389          qsamplerCustomEvent *pEvent = (qsamplerCustomEvent *) pCustomEvent;          qsamplerCustomEvent *pEvent = (qsamplerCustomEvent *) pCustomEvent;
390          appendMessagesColor(tr("Notify event: %1 data: %2")                  if (pEvent->event() == LSCP_EVENT_CHANNEL_INFO) {
391              .arg(::lscp_event_to_text(pEvent->event()))                          int iChannelID = pEvent->data().toInt();
392              .arg(pEvent->data()), "#996699");                          qsamplerChannelStrip *pChannelStrip = channelStrip(iChannelID);
393                            if (pChannelStrip)
394                                    channelStripChanged(pChannelStrip);
395                    } else {
396                            appendMessagesColor(tr("Notify event: %1 data: %2")
397                                    .arg(::lscp_event_to_text(pEvent->event()))
398                                    .arg(pEvent->data()), "#996699");
399                    }
400      }      }
401  }  }
402    
# Line 393  void qsamplerMainForm::customEvent ( QCu Line 405  void qsamplerMainForm::customEvent ( QCu
405  void qsamplerMainForm::contextMenuEvent( QContextMenuEvent *pEvent )  void qsamplerMainForm::contextMenuEvent( QContextMenuEvent *pEvent )
406  {  {
407      stabilizeForm();      stabilizeForm();
408        
409      editMenu->exec(pEvent->globalPos());      editMenu->exec(pEvent->globalPos());
410  }  }
411    
# Line 623  bool qsamplerMainForm::loadSessionFile ( Line 635  bool qsamplerMainForm::loadSessionFile (
635      m_sFilename = sFilename;      m_sFilename = sFilename;
636      updateRecentFiles(sFilename);      updateRecentFiles(sFilename);
637      appendMessages(tr("Open session: \"%1\".").arg(sessionName(m_sFilename)));      appendMessages(tr("Open session: \"%1\".").arg(sessionName(m_sFilename)));
638        
639      // Make that an overall update.      // Make that an overall update.
640      stabilizeForm();      stabilizeForm();
641      return true;      return true;
# Line 666  bool qsamplerMainForm::saveSessionFile ( Line 678  bool qsamplerMainForm::saveSessionFile (
678          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Audio);          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Audio);
679          for (iDevice = 0; piDeviceIDs && piDeviceIDs[iDevice] >= 0; iDevice++) {          for (iDevice = 0; piDeviceIDs && piDeviceIDs[iDevice] >= 0; iDevice++) {
680                  ts << endl;                  ts << endl;
681                  qsamplerDevice device(m_pClient, qsamplerDevice::Audio, piDeviceIDs[iDevice]);                  qsamplerDevice device(this, qsamplerDevice::Audio, piDeviceIDs[iDevice]);
682                  // Audio device specification...                  // Audio device specification...
683                  ts << "# " << device.deviceTypeName() << " " << device.driverName()                  ts << "# " << device.deviceTypeName() << " " << device.driverName()
684                     << " " << tr("Device") << " " << iDevice << endl;                          << " " << tr("Device") << " " << iDevice << endl;
685                  ts << "CREATE AUDIO_OUTPUT_DEVICE " << device.driverName();                  ts << "CREATE AUDIO_OUTPUT_DEVICE " << device.driverName();
686                  qsamplerDeviceParamMap::ConstIterator deviceParam;                  qsamplerDeviceParamMap::ConstIterator deviceParam;
687                  for (deviceParam = device.params().begin();                  for (deviceParam = device.params().begin();
688                                  deviceParam != device.params().end();                                  deviceParam != device.params().end();
689                                          ++deviceParam) {                                          ++deviceParam) {
690                          const qsamplerDeviceParam& param = deviceParam.data();                          const qsamplerDeviceParam& param = deviceParam.data();
691                          if (!param.value.isEmpty())                          if (param.value.isEmpty()) ts << "# ";
692                                  ts << " " << deviceParam.key() << "='" << param.value << "'";                          ts << " " << deviceParam.key() << "='" << param.value << "'";
693                  }                  }
694                  ts << endl;                  ts << endl;
695                  // Audio channel parameters...                  // Audio channel parameters...
# Line 690  bool qsamplerMainForm::saveSessionFile ( Line 702  bool qsamplerMainForm::saveSessionFile (
702                                          portParam != pPort->params().end();                                          portParam != pPort->params().end();
703                                                  ++portParam) {                                                  ++portParam) {
704                                  const qsamplerDeviceParam& param = portParam.data();                                  const qsamplerDeviceParam& param = portParam.data();
705                                  if (!param.fix && !param.value.isEmpty()) {                                  if (param.fix || param.value.isEmpty()) ts << "# ";
706                                          ts << "SET AUDIO_OUTPUT_CHANNEL_PARAMETER " << iDevice                                  ts << "SET AUDIO_OUTPUT_CHANNEL_PARAMETER " << iDevice
707                                             << " " << iPort << " " << portParam.key()                                          << " " << iPort << " " << portParam.key()
708                                             << "='" << param.value << "'" << endl;                                          << "='" << param.value << "'" << endl;
                                 }  
709                          }                          }
710                  }                  }
711                  // Audio device index/id mapping.                  // Audio device index/id mapping.
# Line 707  bool qsamplerMainForm::saveSessionFile ( Line 718  bool qsamplerMainForm::saveSessionFile (
718          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Midi);          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Midi);
719          for (iDevice = 0; piDeviceIDs && piDeviceIDs[iDevice] >= 0; iDevice++) {          for (iDevice = 0; piDeviceIDs && piDeviceIDs[iDevice] >= 0; iDevice++) {
720                  ts << endl;                  ts << endl;
721                  qsamplerDevice device(m_pClient, qsamplerDevice::Midi, piDeviceIDs[iDevice]);                  qsamplerDevice device(this, qsamplerDevice::Midi, piDeviceIDs[iDevice]);
722                  // MIDI device specification...                  // MIDI device specification...
723          ts << "# " << device.deviceTypeName() << " " << device.driverName()                  ts << "# " << device.deviceTypeName() << " " << device.driverName()
724                     << " " << tr("Device") << " " << iDevice << endl;                          << " " << tr("Device") << " " << iDevice << endl;
725                  ts << "CREATE MIDI_INPUT_DEVICE " << device.driverName();                  ts << "CREATE MIDI_INPUT_DEVICE " << device.driverName();
726                  qsamplerDeviceParamMap::ConstIterator deviceParam;                  qsamplerDeviceParamMap::ConstIterator deviceParam;
727                  for (deviceParam = device.params().begin();                  for (deviceParam = device.params().begin();
728                                  deviceParam != device.params().end();                                  deviceParam != device.params().end();
729                                          ++deviceParam) {                                          ++deviceParam) {
730                          const qsamplerDeviceParam& param = deviceParam.data();                          const qsamplerDeviceParam& param = deviceParam.data();
731                          if (!param.value.isEmpty())                          if (param.value.isEmpty()) ts << "# ";
732                                  ts << " " << deviceParam.key() << "='" << param.value << "'";                          ts << " " << deviceParam.key() << "='" << param.value << "'";
733                  }                  }
734                  ts << endl;                  ts << endl;
735                  // MIDI port parameters...                  // MIDI port parameters...
# Line 731  bool qsamplerMainForm::saveSessionFile ( Line 742  bool qsamplerMainForm::saveSessionFile (
742                                          portParam != pPort->params().end();                                          portParam != pPort->params().end();
743                                                  ++portParam) {                                                  ++portParam) {
744                                  const qsamplerDeviceParam& param = portParam.data();                                  const qsamplerDeviceParam& param = portParam.data();
745                                  if (!param.fix && !param.value.isEmpty()) {                                  if (param.fix || param.value.isEmpty()) ts << "# ";
746                                          ts << "SET MIDI_INPUT_PORT_PARAMETER " << iDevice                                  ts << "SET MIDI_INPUT_PORT_PARAMETER " << iDevice
747                                             << " " << iPort << " " << portParam.key()                                     << " " << iPort << " " << portParam.key()
748                                             << "='" << param.value << "'" << endl;                                     << "='" << param.value << "'" << endl;
                                 }  
749                          }                          }
750                  }                  }
751                  // MIDI device index/id mapping.                  // MIDI device index/id mapping.
# Line 753  bool qsamplerMainForm::saveSessionFile ( Line 763  bool qsamplerMainForm::saveSessionFile (
763              if (pChannel) {              if (pChannel) {
764                  ts << "# " << tr("Channel") << " " << iChannel << endl;                  ts << "# " << tr("Channel") << " " << iChannel << endl;
765                  ts << "ADD CHANNEL" << endl;                  ts << "ADD CHANNEL" << endl;
766                  if (audioDeviceMap.isEmpty()) {                                  if (audioDeviceMap.isEmpty()) {
767                          ts << "SET CHANNEL AUDIO_OUTPUT_TYPE " << iChannel                                          ts << "SET CHANNEL AUDIO_OUTPUT_TYPE " << iChannel
768                                              << " " << pChannel->audioDriver() << endl;                                                  << " " << pChannel->audioDriver() << endl;
769                              } else {                                  } else {
770                          ts << "SET CHANNEL AUDIO_OUTPUT_DEVICE " << iChannel                                          ts << "SET CHANNEL AUDIO_OUTPUT_DEVICE " << iChannel
771                                             << " " << audioDeviceMap[pChannel->audioDevice()] << endl;                                                  << " " << audioDeviceMap[pChannel->audioDevice()] << endl;
772                                  }                                  }
773                  if (midiDeviceMap.isEmpty()) {                                  if (midiDeviceMap.isEmpty()) {
774                          ts << "SET CHANNEL MIDI_INPUT_TYPE " << iChannel                                          ts << "SET CHANNEL MIDI_INPUT_TYPE " << iChannel
775                                         << " " << pChannel->midiDriver() << endl;                                                  << " " << pChannel->midiDriver() << endl;
776                              } else {                                  } else {
777                          ts << "SET CHANNEL MIDI_INPUT_DEVICE " << iChannel                                          ts << "SET CHANNEL MIDI_INPUT_DEVICE " << iChannel
778                                             << " " << midiDeviceMap[pChannel->midiDevice()] << endl;                                                  << " " << midiDeviceMap[pChannel->midiDevice()] << endl;
779                              }                                  }
780                  ts << "SET CHANNEL MIDI_INPUT_PORT " << iChannel                                  ts << "SET CHANNEL MIDI_INPUT_PORT " << iChannel
781                                 << " " << pChannel->midiPort() << endl;                                          << " " << pChannel->midiPort() << endl;
782                  ts << "SET CHANNEL MIDI_INPUT_CHANNEL " << iChannel << " ";                  ts << "SET CHANNEL MIDI_INPUT_CHANNEL " << iChannel << " ";
783                  if (pChannel->midiChannel() == LSCP_MIDI_CHANNEL_ALL)                  if (pChannel->midiChannel() == LSCP_MIDI_CHANNEL_ALL)
784                      ts << "ALL";                      ts << "ALL";
# Line 873  void qsamplerMainForm::fileReset (void) Line 883  void qsamplerMainForm::fileReset (void)
883          tr("Resetting the sampler instance will close\n"          tr("Resetting the sampler instance will close\n"
884             "all device and channel configurations.\n\n"             "all device and channel configurations.\n\n"
885             "Please note that this operation may cause\n"             "Please note that this operation may cause\n"
886             "temporary MIDI and Audio disruption\n\n"             "temporary MIDI and Audio disruption.\n\n"
887             "Do you want to reset the sampler engine now?"),             "Do you want to reset the sampler engine now?"),
888          tr("Reset"), tr("Cancel")) > 0)          tr("Reset"), tr("Cancel")) > 0)
889          return;          return;
# Line 898  void qsamplerMainForm::fileRestart (void Line 908  void qsamplerMainForm::fileRestart (void
908  {  {
909      if (m_pOptions == NULL)      if (m_pOptions == NULL)
910          return;          return;
911            
912      bool bRestart = true;      bool bRestart = true;
913        
914      // Ask user whether he/she want's a complete restart...      // Ask user whether he/she want's a complete restart...
915      // (if we're currently up and running)      // (if we're currently up and running)
916      if (bRestart && m_pClient) {      if (bRestart && m_pClient) {
# Line 908  void qsamplerMainForm::fileRestart (void Line 918  void qsamplerMainForm::fileRestart (void
918              tr("New settings will be effective after\n"              tr("New settings will be effective after\n"
919                 "restarting the client/server connection.\n\n"                 "restarting the client/server connection.\n\n"
920                 "Please note that this operation may cause\n"                 "Please note that this operation may cause\n"
921                 "temporary MIDI and Audio disruption\n\n"                 "temporary MIDI and Audio disruption.\n\n"
922                 "Do you want to restart the connection now?"),                 "Do you want to restart the connection now?"),
923              tr("Restart"), tr("Cancel")) == 0);              tr("Restart"), tr("Cancel")) == 0);
924      }      }
# Line 951  void qsamplerMainForm::editAddChannel (v Line 961  void qsamplerMainForm::editAddChannel (v
961          delete pChannel;          delete pChannel;
962          return;          return;
963      }      }
964        
965      // 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).
966      if (!createChannelStrip(pChannel)) {      if (!createChannelStrip(pChannel)) {
967          delete pChannel;          delete pChannel;
# Line 973  void qsamplerMainForm::editRemoveChannel Line 983  void qsamplerMainForm::editRemoveChannel
983      qsamplerChannelStrip *pChannelStrip = activeChannelStrip();      qsamplerChannelStrip *pChannelStrip = activeChannelStrip();
984      if (pChannelStrip == NULL)      if (pChannelStrip == NULL)
985          return;          return;
986            
987      qsamplerChannel *pChannel = pChannelStrip->channel();      qsamplerChannel *pChannel = pChannelStrip->channel();
988      if (pChannel == NULL)      if (pChannel == NULL)
989          return;          return;
# Line 995  void qsamplerMainForm::editRemoveChannel Line 1005  void qsamplerMainForm::editRemoveChannel
1005    
1006      // Just delete the channel strip.      // Just delete the channel strip.
1007      delete pChannelStrip;      delete pChannelStrip;
1008        
1009      // Do we auto-arrange?      // Do we auto-arrange?
1010      if (m_pOptions && m_pOptions->bAutoArrange)      if (m_pOptions && m_pOptions->bAutoArrange)
1011          channelsArrange();          channelsArrange();
# Line 1039  void qsamplerMainForm::editResetChannel Line 1049  void qsamplerMainForm::editResetChannel
1049  // Reset all sampler channels.  // Reset all sampler channels.
1050  void qsamplerMainForm::editResetAllChannels (void)  void qsamplerMainForm::editResetAllChannels (void)
1051  {  {
1052      if (m_pClient == NULL)          if (m_pClient == NULL)
1053          return;                  return;
1054    
1055      // Invoque the channel strip procedure,          // Invoque the channel strip procedure,
1056          // for all channels out there...          // for all channels out there...
1057      m_pWorkspace->setUpdatesEnabled(false);          m_pWorkspace->setUpdatesEnabled(false);
1058      QWidgetList wlist = m_pWorkspace->windowList();          QWidgetList wlist = m_pWorkspace->windowList();
1059      for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {
1060          qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);
1061          if (pChannelStrip)                  if (pChannelStrip)
1062                  pChannelStrip->channelReset();                          pChannelStrip->channelReset();
1063      }          }
1064      m_pWorkspace->setUpdatesEnabled(true);          m_pWorkspace->setUpdatesEnabled(true);
1065  }  }
1066    
1067    
# Line 1106  void qsamplerMainForm::viewMessages ( bo Line 1116  void qsamplerMainForm::viewMessages ( bo
1116  // Show/hide the device configurator form.  // Show/hide the device configurator form.
1117  void qsamplerMainForm::viewDevices (void)  void qsamplerMainForm::viewDevices (void)
1118  {  {
1119      if (m_pOptions == NULL)          if (m_pOptions == NULL)
1120          return;                  return;
1121    
1122      if (m_pDeviceForm) {          if (m_pDeviceForm) {
1123          m_pOptions->saveWidgetGeometry(m_pDeviceForm);                  m_pOptions->saveWidgetGeometry(m_pDeviceForm);
1124                  m_pDeviceForm->setClient(m_pClient);                  m_pDeviceForm->setClient(m_pClient);
1125          if (m_pDeviceForm->isVisible()) {                  if (m_pDeviceForm->isVisible()) {
1126              m_pDeviceForm->hide();                          m_pDeviceForm->hide();
1127          } else {                  } else {
1128              m_pDeviceForm->show();                          m_pDeviceForm->show();
1129              m_pDeviceForm->raise();                          m_pDeviceForm->raise();
1130              m_pDeviceForm->setActiveWindow();                          m_pDeviceForm->setActiveWindow();
1131          }                  }
1132      }          }
1133  }  }
1134    
1135    
# Line 1237  void qsamplerMainForm::channelsArrange ( Line 1247  void qsamplerMainForm::channelsArrange (
1247          y += iHeight;          y += iHeight;
1248      }      }
1249      m_pWorkspace->setUpdatesEnabled(true);      m_pWorkspace->setUpdatesEnabled(true);
1250        
1251      stabilizeForm();      stabilizeForm();
1252  }  }
1253    
# Line 1296  void qsamplerMainForm::helpAbout (void) Line 1306  void qsamplerMainForm::helpAbout (void)
1306      sText += ::lscp_client_package();      sText += ::lscp_client_package();
1307      sText += " ";      sText += " ";
1308      sText += ::lscp_client_version();      sText += ::lscp_client_version();
1309    #ifdef CONFIG_LIBGIG
1310        sText += ", ";
1311        sText += gig::libraryName();
1312        sText += " ";
1313        sText += gig::libraryVersion();
1314    #endif
1315      sText += "<br />\n";      sText += "<br />\n";
1316      sText += "<br />\n";      sText += "<br />\n";
1317      sText += tr("Website") + ": <a href=\"" QSAMPLER_WEBSITE "\">" QSAMPLER_WEBSITE "</a><br />\n";      sText += tr("Website") + ": <a href=\"" QSAMPLER_WEBSITE "\">" QSAMPLER_WEBSITE "</a><br />\n";
# Line 1375  void qsamplerMainForm::stabilizeForm (vo Line 1391  void qsamplerMainForm::stabilizeForm (vo
1391  void qsamplerMainForm::channelStripChanged( qsamplerChannelStrip *pChannelStrip )  void qsamplerMainForm::channelStripChanged( qsamplerChannelStrip *pChannelStrip )
1392  {  {
1393          // Add this strip to the changed list...          // Add this strip to the changed list...
1394          if (m_changedStrips.containsRef(pChannelStrip) == 0)          if (m_changedStrips.containsRef(pChannelStrip) == 0) {
1395                  m_changedStrips.append(pChannelStrip);                  m_changedStrips.append(pChannelStrip);
1396                    pChannelStrip->resetErrorCount();
1397            }
1398    
1399      // Just mark the dirty form.      // Just mark the dirty form.
1400      m_iDirtyCount++;      m_iDirtyCount++;
# Line 1622  void qsamplerMainForm::updateMessagesLim Line 1640  void qsamplerMainForm::updateMessagesLim
1640          if (m_pOptions->bMessagesLimit)          if (m_pOptions->bMessagesLimit)
1641              m_pMessages->setMessagesLimit(m_pOptions->iMessagesLimitLines);              m_pMessages->setMessagesLimit(m_pOptions->iMessagesLimitLines);
1642          else          else
1643              m_pMessages->setMessagesLimit(0);              m_pMessages->setMessagesLimit(-1);
1644      }      }
1645  }  }
1646    
# Line 1666  qsamplerChannelStrip *qsamplerMainForm:: Line 1684  qsamplerChannelStrip *qsamplerMainForm::
1684      pChannelStrip = new qsamplerChannelStrip(m_pWorkspace, 0, wflags);      pChannelStrip = new qsamplerChannelStrip(m_pWorkspace, 0, wflags);
1685      if (pChannelStrip == NULL)      if (pChannelStrip == NULL)
1686          return NULL;          return NULL;
1687            
1688      // Actual channel strip setup...      // Actual channel strip setup...
1689      pChannelStrip->setup(pChannel);      pChannelStrip->setup(pChannel);
1690      QObject::connect(pChannelStrip, SIGNAL(channelChanged(qsamplerChannelStrip *)), this, SLOT(channelStripChanged(qsamplerChannelStrip *)));      QObject::connect(pChannelStrip, SIGNAL(channelChanged(qsamplerChannelStrip *)), this, SLOT(channelStripChanged(qsamplerChannelStrip *)));
# Line 1724  qsamplerChannelStrip *qsamplerMainForm:: Line 1742  qsamplerChannelStrip *qsamplerMainForm::
1742          QWidgetList wlist = m_pWorkspace->windowList();          QWidgetList wlist = m_pWorkspace->windowList();
1743          if (wlist.isEmpty())          if (wlist.isEmpty())
1744                  return NULL;                  return NULL;
1745            
1746          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {          for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {
1747                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);
1748                  if (pChannelStrip) {                  if (pChannelStrip) {
# Line 1805  void qsamplerMainForm::timerSlot (void) Line 1823  void qsamplerMainForm::timerSlot (void)
1823              }              }
1824          }          }
1825      }      }
1826        
1827          // Refresh each channel usage, on each period...          if (m_pClient) {
1828      if (m_pClient && (m_changedStrips.count() > 0 || m_pOptions->bAutoRefresh)) {                  // Update the channel information for each pending strip...
1829          m_iTimerSlot += QSAMPLER_TIMER_MSECS;                  if (m_changedStrips.count() > 0) {
1830          if (m_iTimerSlot >= m_pOptions->iAutoRefreshTime && m_pWorkspace->isUpdatesEnabled())  {                          for (qsamplerChannelStrip *pChannelStrip = m_changedStrips.first();
1831              m_iTimerSlot = 0;                                          pChannelStrip; pChannelStrip = m_changedStrips.next()) {
             // Update the channel information for each pending strip...  
             for (qsamplerChannelStrip *pChannelStrip = m_changedStrips.first();  
                     pChannelStrip;  
                                                 pChannelStrip = m_changedStrips.next()) {  
1832                                  // If successfull, remove from pending list...                                  // If successfull, remove from pending list...
1833                                  if (pChannelStrip->updateChannelInfo())                                  if (pChannelStrip->updateChannelInfo())
1834                      m_changedStrips.remove(pChannelStrip);                                          m_changedStrips.remove(pChannelStrip);
1835                          }                          }
1836              // Update the channel stream usage for each strip...                  }
1837              QWidgetList wlist = m_pWorkspace->windowList();                  // Refresh each channel usage, on each period...
1838              for (int iChannel = 0; iChannel < (int) wlist.count(); iChannel++) {                  if (m_pOptions->bAutoRefresh) {
1839                  qsamplerChannelStrip *pChannelStrip = (qsamplerChannelStrip *) wlist.at(iChannel);                          m_iTimerSlot += QSAMPLER_TIMER_MSECS;
1840                  if (pChannelStrip && pChannelStrip->isVisible())                          if (m_iTimerSlot >= m_pOptions->iAutoRefreshTime)  {
1841                      pChannelStrip->updateChannelUsage();                                  m_iTimerSlot = 0;
1842              }                                  // Update the channel stream usage for each strip...
1843          }                                  QWidgetList wlist = m_pWorkspace->windowList();
1844      }                                  for (int iChannel = 0;
1845                                                    iChannel < (int) wlist.count(); iChannel++) {
1846                                            qsamplerChannelStrip *pChannelStrip
1847                                                    = (qsamplerChannelStrip *) wlist.at(iChannel);
1848                                            if (pChannelStrip && pChannelStrip->isVisible())
1849                                                    pChannelStrip->updateChannelUsage();
1850                                    }
1851                            }
1852                    }
1853            }
1854    
1855      // Register the next timer slot.      // Register the next timer slot.
1856      QTimer::singleShot(QSAMPLER_TIMER_MSECS, this, SLOT(timerSlot()));      QTimer::singleShot(QSAMPLER_TIMER_MSECS, this, SLOT(timerSlot()));
# Line 2008  bool qsamplerMainForm::startClient (void Line 2031  bool qsamplerMainForm::startClient (void
2031      ::lscp_client_set_timeout(m_pClient, m_pOptions->iServerTimeout);      ::lscp_client_set_timeout(m_pClient, m_pOptions->iServerTimeout);
2032      appendMessages(tr("Client receive timeout is set to %1 msec.").arg(::lscp_client_get_timeout(m_pClient)));      appendMessages(tr("Client receive timeout is set to %1 msec.").arg(::lscp_client_get_timeout(m_pClient)));
2033    
2034            // Subscribe to channel info change notifications...
2035            if (::lscp_client_subscribe(m_pClient, LSCP_EVENT_CHANNEL_INFO) != LSCP_OK)
2036                    appendMessagesClient("lscp_client_subscribe");
2037    
2038      // We may stop scheduling around.      // We may stop scheduling around.
2039      stopSchedule();      stopSchedule();
2040    
# Line 2021  bool qsamplerMainForm::startClient (void Line 2048  bool qsamplerMainForm::startClient (void
2048          // if visible, that we're ready...          // if visible, that we're ready...
2049          if (m_pDeviceForm && m_pDeviceForm->isVisible())          if (m_pDeviceForm && m_pDeviceForm->isVisible())
2050              m_pDeviceForm->setClient(m_pClient);              m_pDeviceForm->setClient(m_pClient);
2051                
2052      // Is any session pending to be loaded?      // Is any session pending to be loaded?
2053      if (!m_pOptions->sSessionFile.isEmpty()) {      if (!m_pOptions->sSessionFile.isEmpty()) {
2054          // Just load the prabably startup session...          // Just load the prabably startup session...
# Line 2061  void qsamplerMainForm::stopClient (void) Line 2088  void qsamplerMainForm::stopClient (void)
2088      // channels from the back-end server.      // channels from the back-end server.
2089      m_iDirtyCount = 0;      m_iDirtyCount = 0;
2090      closeSession(false);      closeSession(false);
2091        
2092      // Close us as a client...      // Close us as a client...
2093      lscp_client_destroy(m_pClient);          ::lscp_client_unsubscribe(m_pClient, LSCP_EVENT_CHANNEL_INFO);
2094        ::lscp_client_destroy(m_pClient);
2095      m_pClient = NULL;      m_pClient = NULL;
2096    
2097      // Log final here.      // Log final here.

Legend:
Removed from v.477  
changed lines
  Added in v.680

  ViewVC Help
Powered by ViewVC