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

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

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

revision 432 by capela, Wed Mar 9 11:33:27 2005 UTC revision 436 by capela, Wed Mar 9 20:55:04 2005 UTC
# Line 122  void qsamplerDevice::setDevice ( lscp_cl Line 122  void qsamplerDevice::setDevice ( lscp_cl
122          m_deviceType  = deviceType;          m_deviceType  = deviceType;
123    
124          // Retrieve device info, if any.          // Retrieve device info, if any.
         QString sDeviceType;  
125          lscp_device_info_t *pDeviceInfo = NULL;          lscp_device_info_t *pDeviceInfo = NULL;
126          switch (deviceType) {          switch (deviceType) {
127          case qsamplerDevice::Audio:          case qsamplerDevice::Audio:
128                  sDeviceType = QObject::tr("Audio");                  m_sDeviceType = QObject::tr("Audio");
129                  pDeviceInfo = ::lscp_get_audio_device_info(pClient, iDeviceID);                  pDeviceInfo = ::lscp_get_audio_device_info(pClient, iDeviceID);
130                  break;                  break;
131          case qsamplerDevice::Midi:          case qsamplerDevice::Midi:
132                  sDeviceType = QObject::tr("MIDI");                  m_sDeviceType = QObject::tr("MIDI");
133                  pDeviceInfo = ::lscp_get_midi_device_info(pClient, iDeviceID);                  pDeviceInfo = ::lscp_get_midi_device_info(pClient, iDeviceID);
134                  break;                  break;
135            case qsamplerDevice::None:
136                    m_sDeviceType = QString::null;
137                    break;
138          }          }
139    
140          // If we're bogus, bail out...          // If we're bogus, bail out...
141          if (pDeviceInfo == NULL) {          if (pDeviceInfo == NULL) {
142                  m_sDriverName = QString::null;                  m_sDriverName = QString::null;
143                  m_sDeviceName = QObject::tr("New %1 device").arg(sDeviceType);                  m_sDeviceName = QObject::tr("New device");
144                  return;                  return;
145          }          }
146    
# Line 161  void qsamplerDevice::setDevice ( lscp_cl Line 163  void qsamplerDevice::setDevice ( lscp_cl
163                          pParamInfo = ::lscp_get_midi_driver_param_info(pClient,                          pParamInfo = ::lscp_get_midi_driver_param_info(pClient,
164                                  m_sDriverName.latin1(), pszParam, NULL);                                  m_sDriverName.latin1(), pszParam, NULL);
165                          break;                          break;
166                    case qsamplerDevice::None:
167                            break;
168                    }
169                    if (pParamInfo) {
170                            m_params[pszParam] = qsamplerDeviceParam(pParamInfo,
171                                    pDeviceInfo->params[i].value);
172                  }                  }
                 m_params[pszParam] = qsamplerDeviceParam(pParamInfo, pDeviceInfo->params[i].value);  
173          }          }
174  }  }
175    
# Line 186  void qsamplerDevice::setDriver ( lscp_cl Line 193  void qsamplerDevice::setDriver ( lscp_cl
193                  pDriverInfo = ::lscp_get_midi_driver_info(pClient,                  pDriverInfo = ::lscp_get_midi_driver_info(pClient,
194                          sDriverName.latin1());                          sDriverName.latin1());
195                  break;                  break;
196            case qsamplerDevice::None:
197                    break;
198          }          }
199    
200          // If we're bogus, bail out...          // If we're bogus, bail out...
# Line 209  void qsamplerDevice::setDriver ( lscp_cl Line 218  void qsamplerDevice::setDriver ( lscp_cl
218                          pParamInfo = ::lscp_get_midi_driver_param_info(pClient,                          pParamInfo = ::lscp_get_midi_driver_param_info(pClient,
219                                  sDriverName.latin1(), pszParam, NULL);                                  sDriverName.latin1(), pszParam, NULL);
220                          break;                          break;
221                    case qsamplerDevice::None:
222                            break;
223                  }                  }
224                  m_params[pszParam] = qsamplerDeviceParam(pParamInfo, pParamInfo->defaultv);                  if (pParamInfo)
225                            m_params[pszParam] = qsamplerDeviceParam(pParamInfo, pParamInfo->defaultv);
226          }          }
227  }  }
228    
# Line 226  qsamplerDevice::qsamplerDeviceType qsamp Line 238  qsamplerDevice::qsamplerDeviceType qsamp
238          return m_deviceType;          return m_deviceType;
239  }  }
240    
241    const QString& qsamplerDevice::deviceTypeName (void) const
242    {
243            return m_sDeviceType;
244    }
245    
246  const QString& qsamplerDevice::driverName (void) const  const QString& qsamplerDevice::driverName (void) const
247  {  {
248          return m_sDriverName;          return m_sDriverName;
# Line 260  int *qsamplerDevice::getDevices ( lscp_c Line 277  int *qsamplerDevice::getDevices ( lscp_c
277          case qsamplerDevice::Midi:          case qsamplerDevice::Midi:
278                  piDeviceIDs = ::lscp_list_midi_devices(pClient);                  piDeviceIDs = ::lscp_list_midi_devices(pClient);
279                  break;                  break;
280            case qsamplerDevice::None:
281                    break;
282          }          }
283          return piDeviceIDs;          return piDeviceIDs;
284  }  }
# Line 279  QStringList qsamplerDevice::getDrivers ( Line 298  QStringList qsamplerDevice::getDrivers (
298          case qsamplerDevice::Midi:          case qsamplerDevice::Midi:
299                  ppszDrivers = ::lscp_get_available_midi_drivers(pClient);                  ppszDrivers = ::lscp_get_available_midi_drivers(pClient);
300                  break;                  break;
301            case qsamplerDevice::None:
302                    break;
303          }          }
304                    
305          for (int iDriver = 0; ppszDrivers[iDriver]; iDriver++)          for (int iDriver = 0; ppszDrivers[iDriver]; iDriver++)
# Line 293  QStringList qsamplerDevice::getDrivers ( Line 314  QStringList qsamplerDevice::getDrivers (
314  //  //
315    
316  // Constructors.  // Constructors.
317  qsamplerDeviceItem::qsamplerDeviceItem ( QListView *pListView, lscp_client_t *pClient,  qsamplerDeviceItem::qsamplerDeviceItem ( QListView *pListView,
318          qsamplerDevice::qsamplerDeviceType deviceType )          lscp_client_t *pClient, qsamplerDevice::qsamplerDeviceType deviceType )
319          : QListViewItem(pListView), m_device(pClient, deviceType)          : QListViewItem(pListView), m_device(pClient, deviceType)
320  {  {
321          switch(m_device.deviceType()) {          switch(m_device.deviceType()) {
# Line 306  qsamplerDeviceItem::qsamplerDeviceItem ( Line 327  qsamplerDeviceItem::qsamplerDeviceItem (
327                  QListViewItem::setPixmap(0, QPixmap::fromMimeSource("midi1.png"));                  QListViewItem::setPixmap(0, QPixmap::fromMimeSource("midi1.png"));
328                  QListViewItem::setText(0, QObject::tr("MIDI devices"));                  QListViewItem::setText(0, QObject::tr("MIDI devices"));
329                  break;                  break;
330            case qsamplerDevice::None:
331                    break;
332          }          }
333  }  }
334    
335  qsamplerDeviceItem::qsamplerDeviceItem ( QListViewItem *pItem, lscp_client_t *pClient,  qsamplerDeviceItem::qsamplerDeviceItem ( QListViewItem *pItem,
336          qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID )          lscp_client_t *pClient, qsamplerDevice::qsamplerDeviceType deviceType,
337            int iDeviceID )
338          : QListViewItem(pItem), m_device(pClient, deviceType, iDeviceID)          : QListViewItem(pItem), m_device(pClient, deviceType, iDeviceID)
339  {  {
340          switch(m_device.deviceType()) {          switch(m_device.deviceType()) {
# Line 320  qsamplerDeviceItem::qsamplerDeviceItem ( Line 344  qsamplerDeviceItem::qsamplerDeviceItem (
344          case qsamplerDevice::Midi:          case qsamplerDevice::Midi:
345                  QListViewItem::setPixmap(0, QPixmap::fromMimeSource("midi2.png"));                  QListViewItem::setPixmap(0, QPixmap::fromMimeSource("midi2.png"));
346                  break;                  break;
347            case qsamplerDevice::None:
348                    break;
349          }          }
350    
351          QListViewItem::setText(0, m_device.deviceName());          QListViewItem::setText(0, m_device.deviceName());
# Line 349  int qsamplerDeviceItem::rtti() const Line 375  int qsamplerDeviceItem::rtti() const
375  //  //
376    
377  // Constructor.  // Constructor.
378  qsamplerDeviceParamTable::qsamplerDeviceParamTable ( QWidget *pParent, const char *pszName )  qsamplerDeviceParamTable::qsamplerDeviceParamTable ( QWidget *pParent,
379            const char *pszName )
380          : QTable(pParent, pszName)          : QTable(pParent, pszName)
381  {  {
382          // Set fixed number of columns.          // Set fixed number of columns.
# Line 363  qsamplerDeviceParamTable::qsamplerDevice Line 390  qsamplerDeviceParamTable::qsamplerDevice
390          QTable::setLeftMargin(0);          QTable::setLeftMargin(0);
391          // Initialize the fixed table column headings.          // Initialize the fixed table column headings.
392          QHeader *pHeader = QTable::horizontalHeader();          QHeader *pHeader = QTable::horizontalHeader();
393          pHeader->setLabel(0, tr("Description"));          pHeader->setLabel(0, tr("Parameter"));
394          pHeader->setLabel(1, tr("Value"));          pHeader->setLabel(1, tr("Description"));
395          pHeader->setLabel(2, tr("Parameter"));          pHeader->setLabel(2, tr("Value"));
396          // Set read-onlyness of each column          // Set read-onlyness of each column
397          QTable::setColumnReadOnly(0, true);          QTable::setColumnReadOnly(0, true);
398  //  QTable::setColumnReadOnly(1, true); -- of course not.          QTable::setColumnReadOnly(1, true);
399          QTable::setColumnReadOnly(2, true);  //  QTable::setColumnReadOnly(2, true); -- of course not.
400          QTable::setColumnStretchable(0, true);          QTable::setColumnStretchable(1, true);
401  }  }
402    
403  // Default destructor.  // Default destructor.
# Line 383  qsamplerDeviceParamTable::~qsamplerDevic Line 410  qsamplerDeviceParamTable::~qsamplerDevic
410  void qsamplerDeviceParamTable::refresh ( qsamplerDevice& device )  void qsamplerDeviceParamTable::refresh ( qsamplerDevice& device )
411  {  {
412          // Always (re)start it empty.          // Always (re)start it empty.
413            QTable::setUpdatesEnabled(false);
414          QTable::setNumRows(0);          QTable::setNumRows(0);
415    
416          // Now fill the parameter table...          // Now fill the parameter table...
# Line 392  void qsamplerDeviceParamTable::refresh ( Line 420  void qsamplerDeviceParamTable::refresh (
420          qsamplerDeviceParamMap::ConstIterator iter;          qsamplerDeviceParamMap::ConstIterator iter;
421          for (iter = params.begin(); iter != params.end(); ++iter) {          for (iter = params.begin(); iter != params.end(); ++iter) {
422                  const qsamplerDeviceParam& param = iter.data();                  const qsamplerDeviceParam& param = iter.data();
423                  QTable::setText(iRow, 0, param.description);                  bool fEnabled = (device.deviceID() < 0 || !param.fix);
424                    QTable::setText(iRow, 0, iter.key());
425                    QTable::setText(iRow, 1, param.description);
426                  if (param.type == LSCP_TYPE_BOOL) {                  if (param.type == LSCP_TYPE_BOOL) {
427                          QStringList opts;                          QStringList opts;
428                          opts.append(tr("false"));                          opts.append(tr("false"));
429                          opts.append(tr("true"));                          opts.append(tr("true"));
430                          QComboTableItem *pComboItem = new QComboTableItem(this, opts);                          QComboTableItem *pComboItem = new QComboTableItem(this, opts);
431                      pComboItem->setCurrentItem(param.value.lower() == "true" ? 1 : 0);                      pComboItem->setCurrentItem(param.value.lower() == "true" ? 1 : 0);
432                      pComboItem->setEnabled(param.fix);                      pComboItem->setEnabled(fEnabled);
433                          QTable::setItem(iRow, 1, pComboItem);                          QTable::setItem(iRow, 2, pComboItem);
434                  } else if (param.possibilities.count() > 0) {                  } else if (param.possibilities.count() > 0 && !param.multiplicity) {
435                          QComboTableItem *pComboItem = new QComboTableItem(this,                          QComboTableItem *pComboItem = new QComboTableItem(this,
436                                  param.possibilities);                                  param.possibilities);
437                      pComboItem->setCurrentItem(param.value);                      pComboItem->setCurrentItem(param.value);
438                      pComboItem->setEnabled(param.fix);                      pComboItem->setEnabled(fEnabled);
439                          QTable::setItem(iRow, 1, pComboItem);                          QTable::setItem(iRow, 2, pComboItem);
440                  } else {                  } else {
441                          QTableItem* pTableItem = new QTableItem(this,                          QTableItem* pTableItem = new QTableItem(this,
442                                  param.fix ? QTableItem::Never : QTableItem::OnTyping,                                  fEnabled ? QTableItem::OnTyping : QTableItem::Never,
443                                  param.value);                                  param.value);
444                          QTable::setItem(iRow, 1, pTableItem);                          QTable::setItem(iRow, 2, pTableItem);
445                  }                  }
                 QTable::setText(iRow, 2, iter.key());  
446                  ++iRow;                  ++iRow;
447          }          }
448    
449          // Adjust optimal column width.          // Adjust optimal column widths.
450          for (int iCol = 0; iCol < QTable::numCols(); iCol++)          QTable::adjustColumn(0);
451                  QTable::adjustColumn(iCol);          QTable::adjustColumn(2);
452    
453            QTable::setUpdatesEnabled(true);
454            QTable::updateContents();
455  }  }
456    
457    

Legend:
Removed from v.432  
changed lines
  Added in v.436

  ViewVC Help
Powered by ViewVC