/[svn]/qsampler/trunk/src/qsamplerChannelForm.cpp
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerChannelForm.cpp

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

revision 3385 by capela, Fri Dec 1 19:23:47 2017 UTC revision 3555 by capela, Tue Aug 13 10:19:32 2019 UTC
# Line 1  Line 1 
1  // qsamplerChannelForm.cpp  // qsamplerChannelForm.cpp
2  //  //
3  /****************************************************************************  /****************************************************************************
4     Copyright (C) 2004-2016, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2019, rncbc aka Rui Nuno Capela. All rights reserved.
5     Copyright (C) 2007, 2008 Christian Schoenebeck     Copyright (C) 2007, 2008 Christian Schoenebeck
6    
7     This program is free software; you can redistribute it and/or     This program is free software; you can redistribute it and/or
# Line 48  ChannelForm::ChannelForm ( QWidget* pPar Line 48  ChannelForm::ChannelForm ( QWidget* pPar
48          m_ui.setupUi(this);          m_ui.setupUi(this);
49    
50          // Initialize locals.          // Initialize locals.
51          m_pChannel = NULL;          m_pChannel = nullptr;
52    
53          m_iDirtySetup = 0;          m_iDirtySetup = 0;
54          m_iDirtyCount = 0;          m_iDirtyCount = 0;
# Line 56  ChannelForm::ChannelForm ( QWidget* pPar Line 56  ChannelForm::ChannelForm ( QWidget* pPar
56  //      m_midiDevices.setAutoDelete(true);  //      m_midiDevices.setAutoDelete(true);
57  //      m_audioDevices.setAutoDelete(true);  //      m_audioDevices.setAutoDelete(true);
58    
59          m_pDeviceForm = NULL;          m_pDeviceForm = nullptr;
60    
61          const int iRowHeight = m_ui.AudioRoutingTable->fontMetrics().height() + 4;          const int iRowHeight = m_ui.AudioRoutingTable->fontMetrics().height() + 4;
62          m_ui.AudioRoutingTable->verticalHeader()->setDefaultSectionSize(iRowHeight);          m_ui.AudioRoutingTable->verticalHeader()->setDefaultSectionSize(iRowHeight);
# Line 64  ChannelForm::ChannelForm ( QWidget* pPar Line 64  ChannelForm::ChannelForm ( QWidget* pPar
64    
65          m_ui.AudioRoutingTable->setModel(&m_routingModel);          m_ui.AudioRoutingTable->setModel(&m_routingModel);
66          m_ui.AudioRoutingTable->setItemDelegate(&m_routingDelegate);          m_ui.AudioRoutingTable->setItemDelegate(&m_routingDelegate);
67  #if QT_VERSION >= 0x050000  #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
68          m_ui.AudioRoutingTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);          m_ui.AudioRoutingTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
69  #else  #else
70          m_ui.AudioRoutingTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);          m_ui.AudioRoutingTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
# Line 142  ChannelForm::~ChannelForm() Line 142  ChannelForm::~ChannelForm()
142  {  {
143          if (m_pDeviceForm)          if (m_pDeviceForm)
144                  delete m_pDeviceForm;                  delete m_pDeviceForm;
145          m_pDeviceForm = NULL;          m_pDeviceForm = nullptr;
146    
147          qDeleteAll(m_midiDevices);          qDeleteAll(m_midiDevices);
148          m_midiDevices.clear();          m_midiDevices.clear();
# Line 160  void ChannelForm::setup ( Channel *pChan Line 160  void ChannelForm::setup ( Channel *pChan
160          m_iDirtySetup = 0;          m_iDirtySetup = 0;
161          m_iDirtyCount = 0;          m_iDirtyCount = 0;
162    
163          if (m_pChannel == NULL)          if (m_pChannel == nullptr)
164                  return;                  return;
165    
166          // It can be a brand new channel, remember?          // It can be a brand new channel, remember?
# Line 169  void ChannelForm::setup ( Channel *pChan Line 169  void ChannelForm::setup ( Channel *pChan
169    
170          // Check if we're up and connected.          // Check if we're up and connected.
171          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
172          if (pMainForm == NULL)          if (pMainForm == nullptr)
173                  return;                  return;
174          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
175                  return;                  return;
176    
177          Options *pOptions = pMainForm->options();          Options *pOptions = pMainForm->options();
178          if (pOptions == NULL)          if (pOptions == nullptr)
179                  return;                  return;
180    
181          // Avoid nested changes.          // Avoid nested changes.
# Line 267  void ChannelForm::setup ( Channel *pChan Line 267  void ChannelForm::setup ( Channel *pChan
267          }          }
268          selectMidiDriverItem(sMidiDriver);          selectMidiDriverItem(sMidiDriver);
269          if (!bNew) {          if (!bNew) {
270                  m_ui.MidiDeviceComboBox->setItemText(                  m_ui.MidiDeviceComboBox->setCurrentIndex(
271                          m_ui.MidiDeviceComboBox->currentIndex(),                          m_ui.MidiDeviceComboBox->findData(midiDevice.deviceID()));
                         midiDevice.deviceName());  
272          }          }
273          selectMidiDeviceItem(m_ui.MidiDeviceComboBox->currentIndex());          selectMidiDeviceItem(m_ui.MidiDeviceComboBox->currentIndex());
274          // MIDI input port...          // MIDI input port...
# Line 314  void ChannelForm::setup ( Channel *pChan Line 313  void ChannelForm::setup ( Channel *pChan
313          }          }
314          selectAudioDriverItem(sAudioDriver);          selectAudioDriverItem(sAudioDriver);
315          if (!bNew) {          if (!bNew) {
316                  m_ui.AudioDeviceComboBox->setItemText(                  m_ui.AudioDeviceComboBox->setCurrentIndex(
317                          m_ui.AudioDeviceComboBox->currentIndex(),                          m_ui.AudioDeviceComboBox->findData(audioDevice.deviceID()));
                         audioDevice.deviceName());  
318          }          }
319          selectAudioDeviceItem(m_ui.AudioDeviceComboBox->currentIndex());          selectAudioDeviceItem(m_ui.AudioDeviceComboBox->currentIndex());
320    
# Line 350  void ChannelForm::setup ( Channel *pChan Line 348  void ChannelForm::setup ( Channel *pChan
348  // Accept settings (OK button slot).  // Accept settings (OK button slot).
349  void ChannelForm::accept (void)  void ChannelForm::accept (void)
350  {  {
351          if (m_pChannel == NULL)          if (m_pChannel == nullptr)
352                  return;                  return;
353    
354          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
355          if (pMainForm == NULL)          if (pMainForm == nullptr)
356                  return;                  return;
357          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
358                  return;                  return;
359    
360          Options *pOptions = pMainForm->options();          Options *pOptions = pMainForm->options();
361          if (pOptions == NULL)          if (pOptions == nullptr)
362                  return;                  return;
363    
364          // Flush any pending editing...          // Flush any pending editing...
# Line 377  void ChannelForm::accept (void) Line 375  void ChannelForm::accept (void)
375                          if (!m_pChannel->setAudioDriver(m_ui.AudioDriverComboBox->currentText()))                          if (!m_pChannel->setAudioDriver(m_ui.AudioDriverComboBox->currentText()))
376                                  iErrors++;                                  iErrors++;
377                  } else {                  } else {
378                          Device *pDevice = NULL;                          Device *pDevice = nullptr;
379                          const int iAudioItem = m_ui.AudioDeviceComboBox->currentIndex();                          const int iAudioItem = m_ui.AudioDeviceComboBox->currentIndex();
380                          if (iAudioItem >= 0 && iAudioItem < m_audioDevices.count())                          if (iAudioItem >= 0) {
381                                  pDevice = m_audioDevices.at(iAudioItem);                                  const int iAudioDevice
382                                            = m_ui.AudioDeviceComboBox->itemData(iAudioItem).toInt();
383                                    pDevice = m_audioDevices.value(iAudioDevice, nullptr);
384                            }
385                          ChannelRoutingMap routingMap = m_routingModel.routingMap();                          ChannelRoutingMap routingMap = m_routingModel.routingMap();
386                          if (pDevice == NULL)                          if (pDevice == nullptr)
387                                  iErrors++;                                  iErrors++;
388                          else if (!m_pChannel->setAudioDevice(pDevice->deviceID()))                          else if (!m_pChannel->setAudioDevice(pDevice->deviceID()))
389                                  iErrors++;                                  iErrors++;
# Line 401  void ChannelForm::accept (void) Line 402  void ChannelForm::accept (void)
402                          if (!m_pChannel->setMidiDriver(m_ui.MidiDriverComboBox->currentText()))                          if (!m_pChannel->setMidiDriver(m_ui.MidiDriverComboBox->currentText()))
403                                  iErrors++;                                  iErrors++;
404                  } else {                  } else {
405                          Device *pDevice = NULL;                          Device *pDevice = nullptr;
406                          const int iMidiItem = m_ui.MidiDeviceComboBox->currentIndex();                          const int iMidiItem = m_ui.MidiDeviceComboBox->currentIndex();
407                          if (iMidiItem >= 0 && iMidiItem < m_midiDevices.count())                          if (iMidiItem >= 0) {
408                                  pDevice = m_midiDevices.at(iMidiItem);                                  const int iMidiDevice
409                          if (pDevice == NULL)                                          = m_ui.MidiDeviceComboBox->itemData(iMidiItem).toInt();
410                                    pDevice = m_midiDevices.value(iMidiDevice, nullptr);
411                            }
412                            if (pDevice == nullptr)
413                                  iErrors++;                                  iErrors++;
414                          else if (!m_pChannel->setMidiDevice(pDevice->deviceID()))                          else if (!m_pChannel->setMidiDevice(pDevice->deviceID()))
415                                  iErrors++;                                  iErrors++;
# Line 483  void ChannelForm::reject (void) Line 487  void ChannelForm::reject (void)
487  void ChannelForm::openInstrumentFile (void)  void ChannelForm::openInstrumentFile (void)
488  {  {
489          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
490          if (pMainForm == NULL)          if (pMainForm == nullptr)
491                  return;                  return;
492          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
493                  return;                  return;
494    
495          Options *pOptions = pMainForm->options();          Options *pOptions = pMainForm->options();
496          if (pOptions == NULL)          if (pOptions == nullptr)
497                  return;                  return;
498    
499          // FIXME: the instrument file filters should be restricted,          // FIXME: the instrument file filters should be restricted,
# Line 523  void ChannelForm::openInstrumentFile (vo Line 527  void ChannelForm::openInstrumentFile (vo
527  void ChannelForm::updateInstrumentName (void)  void ChannelForm::updateInstrumentName (void)
528  {  {
529          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
530          if (pMainForm == NULL)          if (pMainForm == nullptr)
531                  return;                  return;
532          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
533                  return;                  return;
534    
535          Options *pOptions = pMainForm->options();          Options *pOptions = pMainForm->options();
536          if (pOptions == NULL)          if (pOptions == nullptr)
537                  return;                  return;
538    
539          // Finally this better idea would be to use libgig          // Finally this better idea would be to use libgig
# Line 551  void ChannelForm::setupDevice ( Device * Line 555  void ChannelForm::setupDevice ( Device *
555          const QString& sDriverName )          const QString& sDriverName )
556  {  {
557          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
558          if (pMainForm == NULL)          if (pMainForm == nullptr)
559                  return;                  return;
560          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
561                  return;                  return;
562    
563          // Create the device form if not already...          // Create the device form if not already...
564          if (m_pDeviceForm == NULL) {          if (m_pDeviceForm == nullptr) {
565                  m_pDeviceForm = new DeviceForm(this, Qt::Dialog);                  m_pDeviceForm = new DeviceForm(this, Qt::Dialog);
566                  m_pDeviceForm->setAttribute(Qt::WA_ShowModal);                  m_pDeviceForm->setAttribute(Qt::WA_ShowModal);
567                  QObject::connect(m_pDeviceForm, SIGNAL(devicesChanged()),                  QObject::connect(m_pDeviceForm, SIGNAL(devicesChanged()),
# Line 579  void ChannelForm::setupDevice ( Device * Line 583  void ChannelForm::setupDevice ( Device *
583  void ChannelForm::selectMidiDriverItem ( const QString& sMidiDriver )  void ChannelForm::selectMidiDriverItem ( const QString& sMidiDriver )
584  {  {
585          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
586          if (pMainForm == NULL)          if (pMainForm == nullptr)
587                  return;                  return;
588          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
589                  return;                  return;
590    
591          const QString sDriverName = sMidiDriver.toUpper();          const QString sDriverName = sMidiDriver.toUpper();
592    
593          // Save current device id.          // Save current device id.
594          int iDeviceID = 0;          int iDeviceID = 0;
         Device *pDevice = NULL;  
595          int iMidiItem = m_ui.MidiDeviceComboBox->currentIndex();          int iMidiItem = m_ui.MidiDeviceComboBox->currentIndex();
596          if (iMidiItem >= 0 && iMidiItem < m_midiDevices.count())          if (iMidiItem >= 0)
597                  pDevice = m_midiDevices.at(iMidiItem);                  iDeviceID = m_ui.MidiDeviceComboBox->itemData(iMidiItem).toInt();
         if (pDevice)  
                 iDeviceID = pDevice->deviceID();  
598    
599          // Clean maplist.          // Clean maplist.
600          m_ui.MidiDeviceComboBox->clear();          m_ui.MidiDeviceComboBox->clear();
# Line 601  void ChannelForm::selectMidiDriverItem ( Line 602  void ChannelForm::selectMidiDriverItem (
602          m_midiDevices.clear();          m_midiDevices.clear();
603    
604          // Populate with the current ones...          // Populate with the current ones...
605            Device *pDevice = nullptr;
606          const QPixmap midiPixmap(":/images/midi2.png");          const QPixmap midiPixmap(":/images/midi2.png");
607          int *piDeviceIDs = Device::getDevices(pMainForm->client(), Device::Midi);          int *piDeviceIDs = Device::getDevices(pMainForm->client(), Device::Midi);
608          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) {          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; ++i) {
609                  pDevice = new Device(Device::Midi, piDeviceIDs[i]);                  pDevice = new Device(Device::Midi, piDeviceIDs[i]);
610                  if (pDevice->driverName().toUpper() == sDriverName) {                  if (pDevice->driverName().toUpper() == sDriverName) {
611                          m_ui.MidiDeviceComboBox->insertItem(0,                          const int iMidiDevice = pDevice->deviceID();
612                            m_ui.MidiDeviceComboBox->addItem(
613                                  midiPixmap, pDevice->deviceName());                                  midiPixmap, pDevice->deviceName());
614                          m_midiDevices.append(pDevice);                          m_ui.MidiDeviceComboBox->setItemData(i, iMidiDevice);
615                            m_midiDevices.insert(iMidiDevice, pDevice);
616                            if (iMidiDevice == iDeviceID)
617                                    iMidiItem = i;
618                  } else {                  } else {
619                          delete pDevice;                          delete pDevice;
620                  }                  }
# Line 618  void ChannelForm::selectMidiDriverItem ( Line 624  void ChannelForm::selectMidiDriverItem (
624          const bool bEnabled = !m_midiDevices.isEmpty();          const bool bEnabled = !m_midiDevices.isEmpty();
625          if (bEnabled) {          if (bEnabled) {
626                  // Select the previous current device...                  // Select the previous current device...
627                  iMidiItem = 0;                  m_ui.MidiDeviceComboBox->setCurrentIndex(iMidiItem);
628                  QListIterator<Device *> iter(m_midiDevices);                  selectMidiDeviceItem(iMidiItem);
                 while (iter.hasNext()) {  
                         pDevice = iter.next();  
                         if (pDevice->deviceID() == iDeviceID) {  
                                 m_ui.MidiDeviceComboBox->setCurrentIndex(iMidiItem);  
                                 selectMidiDeviceItem(iMidiItem);  
                                 break;  
                         }  
                         iMidiItem++;  
                 }  
629          } else {          } else {
630                  m_ui.MidiDeviceComboBox->insertItem(0,                  m_ui.MidiDeviceComboBox->insertItem(0,
631                          tr("(New MIDI %1 device)").arg(sMidiDriver));                          tr("(New MIDI %1 device)").arg(sMidiDriver));
632                    m_ui.MidiDeviceComboBox->setItemData(0, -1);
633          }          }
634          m_ui.MidiDeviceTextLabel->setEnabled(bEnabled);  //      m_ui.MidiDeviceTextLabel->setEnabled(bEnabled);
635          m_ui.MidiDeviceComboBox->setEnabled(bEnabled);  //      m_ui.MidiDeviceComboBox->setEnabled(bEnabled);
636  }  }
637    
638    
# Line 652  void ChannelForm::selectMidiDriver ( con Line 650  void ChannelForm::selectMidiDriver ( con
650  // Select MIDI device item.  // Select MIDI device item.
651  void ChannelForm::selectMidiDeviceItem ( int iMidiItem )  void ChannelForm::selectMidiDeviceItem ( int iMidiItem )
652  {  {
653          Device *pDevice = NULL;          Device *pDevice = nullptr;
654          if (iMidiItem >= 0 && iMidiItem < m_midiDevices.count())          if (iMidiItem >= 0) {
655                  pDevice = m_midiDevices.at(iMidiItem);                  const int iMidiDevice
656                            = m_ui.MidiDeviceComboBox->itemData(iMidiItem).toInt();
657                    pDevice = m_midiDevices.value(iMidiDevice, nullptr);
658            }
659          if (pDevice) {          if (pDevice) {
660                  const DeviceParamMap& params = pDevice->params();                  const DeviceParamMap& params = pDevice->params();
661                  const int iPorts = params["PORTS"].value.toInt();                  const int iPorts = params["PORTS"].value.toInt();
# Line 680  void ChannelForm::selectMidiDevice ( int Line 681  void ChannelForm::selectMidiDevice ( int
681  // MIDI device options.  // MIDI device options.
682  void ChannelForm::setupMidiDevice (void)  void ChannelForm::setupMidiDevice (void)
683  {  {
684          Device *pDevice = NULL;          Device *pDevice = nullptr;
685          const int iMidiItem = m_ui.MidiDeviceComboBox->currentIndex();          const int iMidiItem = m_ui.MidiDeviceComboBox->currentIndex();
686          if (iMidiItem >= 0 && iMidiItem < m_midiDevices.count())          if (iMidiItem >= 0) {
687                  pDevice = m_midiDevices.at(iMidiItem);                  const int iMidiDevice
688                            = m_ui.MidiDeviceComboBox->itemData(iMidiItem).toInt();
689                    pDevice = m_midiDevices.value(iMidiDevice, nullptr);
690            }
691          setupDevice(pDevice,          setupDevice(pDevice,
692                  Device::Midi, m_ui.MidiDriverComboBox->currentText());                  Device::Midi, m_ui.MidiDriverComboBox->currentText());
693  }  }
# Line 693  void ChannelForm::setupMidiDevice (void) Line 697  void ChannelForm::setupMidiDevice (void)
697  void ChannelForm::selectAudioDriverItem ( const QString& sAudioDriver )  void ChannelForm::selectAudioDriverItem ( const QString& sAudioDriver )
698  {  {
699          MainForm *pMainForm = MainForm::getInstance();          MainForm *pMainForm = MainForm::getInstance();
700          if (pMainForm == NULL)          if (pMainForm == nullptr)
701                  return;                  return;
702          if (pMainForm->client() == NULL)          if (pMainForm->client() == nullptr)
703                  return;                  return;
704    
705          const QString sDriverName = sAudioDriver.toUpper();          const QString sDriverName = sAudioDriver.toUpper();
706    
707          // Save current device id.          // Save current device id.
708          int iDeviceID = 0;          int iDeviceID = 0;
         Device *pDevice = NULL;  
709          int iAudioItem = m_ui.AudioDeviceComboBox->currentIndex();          int iAudioItem = m_ui.AudioDeviceComboBox->currentIndex();
710          if (iAudioItem >= 0 && iAudioItem < m_audioDevices.count())          if (iAudioItem >= 0)
711                  pDevice = m_audioDevices.at(iAudioItem);                  iDeviceID = m_ui.AudioDeviceComboBox->itemData(iAudioItem).toInt();
         if (pDevice)  
                 iDeviceID = pDevice->deviceID();  
712    
713          // Clean maplist.          // Clean maplist.
714          m_ui.AudioDeviceComboBox->clear();          m_ui.AudioDeviceComboBox->clear();
# Line 715  void ChannelForm::selectAudioDriverItem Line 716  void ChannelForm::selectAudioDriverItem
716          m_audioDevices.clear();          m_audioDevices.clear();
717    
718          // Populate with the current ones...          // Populate with the current ones...
719            Device *pDevice = nullptr;
720          const QPixmap audioPixmap(":/images/audio2.png");          const QPixmap audioPixmap(":/images/audio2.png");
721          int *piDeviceIDs = Device::getDevices(pMainForm->client(),          int *piDeviceIDs = Device::getDevices(pMainForm->client(), Device::Audio);
722                  Device::Audio);          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; ++i) {
         for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) {  
723                  pDevice = new Device(Device::Audio, piDeviceIDs[i]);                  pDevice = new Device(Device::Audio, piDeviceIDs[i]);
724                  if (pDevice->driverName().toUpper() == sDriverName) {                  if (pDevice->driverName().toUpper() == sDriverName) {
725                          m_ui.AudioDeviceComboBox->insertItem(0,                          const int iAudioDevice = pDevice->deviceID();
726                            m_ui.AudioDeviceComboBox->addItem(
727                                  audioPixmap, pDevice->deviceName());                                  audioPixmap, pDevice->deviceName());
728                          m_audioDevices.append(pDevice);                          m_ui.AudioDeviceComboBox->setItemData(i, iAudioDevice);
729                            m_audioDevices.insert(iAudioDevice, pDevice);
730                            if (iAudioDevice == iDeviceID)
731                                    iAudioItem = i;
732                  } else {                  } else {
733                          delete pDevice;                          delete pDevice;
734                  }                  }
# Line 733  void ChannelForm::selectAudioDriverItem Line 738  void ChannelForm::selectAudioDriverItem
738          const bool bEnabled = !m_audioDevices.isEmpty();          const bool bEnabled = !m_audioDevices.isEmpty();
739          if (bEnabled) {          if (bEnabled) {
740                  // Select the previous current device...                  // Select the previous current device...
741                  iAudioItem = 0;                  m_ui.AudioDeviceComboBox->setCurrentIndex(iAudioItem);
742                  QListIterator<Device *> iter(m_audioDevices);                  selectAudioDeviceItem(iAudioItem);
                 while (iter.hasNext()) {  
                         pDevice = iter.next();  
                         if (pDevice->deviceID() == iDeviceID) {  
                                 m_ui.AudioDeviceComboBox->setCurrentIndex(iAudioItem);  
                                 selectAudioDeviceItem(iAudioItem);  
                                 break;  
                         }  
                         iAudioItem++;  
                 }  
743          } else {          } else {
744                  m_ui.AudioDeviceComboBox->insertItem(0,                  m_ui.AudioDeviceComboBox->insertItem(0,
745                          tr("(New Audio %1 device)").arg(sAudioDriver));                          tr("(New Audio %1 device)").arg(sAudioDriver));
746                  //m_ui.AudioRoutingTable->setNumRows(0);                  m_ui.AudioDeviceComboBox->setItemData(0, -1);
747          }          }
748          m_ui.AudioDeviceTextLabel->setEnabled(bEnabled);  //      m_ui.AudioDeviceTextLabel->setEnabled(bEnabled);
749          m_ui.AudioDeviceComboBox->setEnabled(bEnabled);  //      m_ui.AudioDeviceComboBox->setEnabled(bEnabled);
750          m_ui.AudioRoutingTable->setEnabled(bEnabled);          m_ui.AudioRoutingTable->setEnabled(bEnabled);
751  }  }
752    
# Line 769  void ChannelForm::selectAudioDriver ( co Line 765  void ChannelForm::selectAudioDriver ( co
765  // Select Audio device item.  // Select Audio device item.
766  void ChannelForm::selectAudioDeviceItem ( int iAudioItem )  void ChannelForm::selectAudioDeviceItem ( int iAudioItem )
767  {  {
768          Device *pDevice = NULL;          Device *pDevice = nullptr;
769          if (iAudioItem >= 0 && iAudioItem < m_audioDevices.count())          if (iAudioItem >= 0) {
770                  pDevice = m_audioDevices.at(iAudioItem);                  const int iAudioDevice
771                            = m_ui.AudioDeviceComboBox->itemData(iAudioItem).toInt();
772                    pDevice = m_audioDevices.value(iAudioDevice, nullptr);
773            }
774          if (pDevice) {          if (pDevice) {
775                  // Refresh the audio routing table.                  // Refresh the audio routing table.
776                  m_routingModel.refresh(pDevice, m_pChannel->audioRouting());                  m_routingModel.refresh(pDevice, m_pChannel->audioRouting());
# Line 795  void ChannelForm::selectAudioDevice ( in Line 794  void ChannelForm::selectAudioDevice ( in
794  // Audio device options.  // Audio device options.
795  void ChannelForm::setupAudioDevice (void)  void ChannelForm::setupAudioDevice (void)
796  {  {
797          Device *pDevice = NULL;          Device *pDevice = nullptr;
798          const int iAudioItem = m_ui.AudioDeviceComboBox->currentIndex();          const int iAudioItem = m_ui.AudioDeviceComboBox->currentIndex();
799          if (iAudioItem >= 0 && iAudioItem < m_audioDevices.count())          if (iAudioItem >= 0) {
800                  pDevice = m_audioDevices.at(iAudioItem);                  const int iAudioDevice
801                            = m_ui.AudioDeviceComboBox->itemData(iAudioItem).toInt();
802                    pDevice = m_audioDevices.value(iAudioDevice, nullptr);
803            }
804          setupDevice(pDevice,          setupDevice(pDevice,
805                  Device::Audio, m_ui.AudioDriverComboBox->currentText());                  Device::Audio, m_ui.AudioDriverComboBox->currentText());
806  }  }

Legend:
Removed from v.3385  
changed lines
  Added in v.3555

  ViewVC Help
Powered by ViewVC