/[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 431 by capela, Tue Mar 8 20:12:08 2005 UTC revision 433 by capela, Wed Mar 9 16:44: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            default:
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 162  void qsamplerDevice::setDevice ( lscp_cl Line 164  void qsamplerDevice::setDevice ( lscp_cl
164                                  m_sDriverName.latin1(), pszParam, NULL);                                  m_sDriverName.latin1(), pszParam, NULL);
165                          break;                          break;
166                  }                  }
167                  m_params[pszParam] = qsamplerDeviceParam(pParamInfo, pDeviceInfo->params[i].value);                  if (pParamInfo)
168                            m_params[pszParam] = qsamplerDeviceParam(pParamInfo,
169                                    pDeviceInfo->params[i].value);
170          }          }
171  }  }
172    
# Line 226  qsamplerDevice::qsamplerDeviceType qsamp Line 230  qsamplerDevice::qsamplerDeviceType qsamp
230          return m_deviceType;          return m_deviceType;
231  }  }
232    
233    const QString& qsamplerDevice::deviceTypeName (void) const
234    {
235            return m_sDeviceType;
236    }
237    
238  const QString& qsamplerDevice::driverName (void) const  const QString& qsamplerDevice::driverName (void) const
239  {  {
240          return m_sDriverName;          return m_sDriverName;
# Line 293  QStringList qsamplerDevice::getDrivers ( Line 302  QStringList qsamplerDevice::getDrivers (
302  //  //
303    
304  // Constructors.  // Constructors.
305  qsamplerDeviceItem::qsamplerDeviceItem ( QListView *pListView, lscp_client_t *pClient,  qsamplerDeviceItem::qsamplerDeviceItem ( QListView *pListView,
306          qsamplerDevice::qsamplerDeviceType deviceType )          lscp_client_t *pClient, qsamplerDevice::qsamplerDeviceType deviceType )
307          : QListViewItem(pListView), m_device(pClient, deviceType)          : QListViewItem(pListView), m_device(pClient, deviceType)
308  {  {
309          switch(m_device.deviceType()) {          switch(m_device.deviceType()) {
# Line 309  qsamplerDeviceItem::qsamplerDeviceItem ( Line 318  qsamplerDeviceItem::qsamplerDeviceItem (
318          }          }
319  }  }
320    
321  qsamplerDeviceItem::qsamplerDeviceItem ( QListViewItem *pItem, lscp_client_t *pClient,  qsamplerDeviceItem::qsamplerDeviceItem ( QListViewItem *pItem,
322          qsamplerDevice::qsamplerDeviceType deviceType, int iDeviceID )          lscp_client_t *pClient, qsamplerDevice::qsamplerDeviceType deviceType,
323            int iDeviceID )
324          : QListViewItem(pItem), m_device(pClient, deviceType, iDeviceID)          : QListViewItem(pItem), m_device(pClient, deviceType, iDeviceID)
325  {  {
326          switch(m_device.deviceType()) {          switch(m_device.deviceType()) {
# Line 349  int qsamplerDeviceItem::rtti() const Line 359  int qsamplerDeviceItem::rtti() const
359  //  //
360    
361  // Constructor.  // Constructor.
362  qsamplerDeviceParamTable::qsamplerDeviceParamTable ( QWidget *pParent, const char *pszName )  qsamplerDeviceParamTable::qsamplerDeviceParamTable ( QWidget *pParent,
363            const char *pszName )
364          : QTable(pParent, pszName)          : QTable(pParent, pszName)
365  {  {
366          // Set fixed number of columns.          // Set fixed number of columns.
# Line 363  qsamplerDeviceParamTable::qsamplerDevice Line 374  qsamplerDeviceParamTable::qsamplerDevice
374          QTable::setLeftMargin(0);          QTable::setLeftMargin(0);
375          // Initialize the fixed table column headings.          // Initialize the fixed table column headings.
376          QHeader *pHeader = QTable::horizontalHeader();          QHeader *pHeader = QTable::horizontalHeader();
377          pHeader->setLabel(0, tr("Parameter"));          pHeader->setLabel(0, tr("Description"));
378          pHeader->setLabel(1, tr("Value"));          pHeader->setLabel(1, tr("Value"));
379          pHeader->setLabel(2, tr("Description"));          pHeader->setLabel(2, tr("Parameter"));
380          // Set read-onlyness of each column          // Set read-onlyness of each column
381          QTable::setColumnReadOnly(0, true);          QTable::setColumnReadOnly(0, true);
382  //  QTable::setColumnReadOnly(1, true); -- of course not.  //  QTable::setColumnReadOnly(1, true); -- of course not.
383          QTable::setColumnReadOnly(2, true);          QTable::setColumnReadOnly(2, true);
384            QTable::setColumnStretchable(0, true);
385  }  }
386    
387  // Default destructor.  // Default destructor.
# Line 382  qsamplerDeviceParamTable::~qsamplerDevic Line 394  qsamplerDeviceParamTable::~qsamplerDevic
394  void qsamplerDeviceParamTable::refresh ( qsamplerDevice& device )  void qsamplerDeviceParamTable::refresh ( qsamplerDevice& device )
395  {  {
396          // Always (re)start it empty.          // Always (re)start it empty.
397            QTable::setUpdatesEnabled(false);
398          QTable::setNumRows(0);          QTable::setNumRows(0);
399    
400          // Now fill the parameter table...          // Now fill the parameter table...
# Line 390  void qsamplerDeviceParamTable::refresh ( Line 403  void qsamplerDeviceParamTable::refresh (
403          int iRow = 0;          int iRow = 0;
404          qsamplerDeviceParamMap::ConstIterator iter;          qsamplerDeviceParamMap::ConstIterator iter;
405          for (iter = params.begin(); iter != params.end(); ++iter) {          for (iter = params.begin(); iter != params.end(); ++iter) {
406                  QTable::setText(iRow, 0, iter.key());                  const qsamplerDeviceParam& param = iter.data();
407                  QTable::setText(iRow, 1, iter.data().value);                  bool fEnabled = (device.deviceID() < 0 || param.fix);
408                  QTable::setText(iRow, 2, iter.data().description);                  QTable::setText(iRow, 0, param.description);
409                    if (param.type == LSCP_TYPE_BOOL) {
410                            QStringList opts;
411                            opts.append(tr("false"));
412                            opts.append(tr("true"));
413                            QComboTableItem *pComboItem = new QComboTableItem(this, opts);
414                        pComboItem->setCurrentItem(param.value.lower() == "true" ? 1 : 0);
415                        pComboItem->setEnabled(fEnabled);
416                            QTable::setItem(iRow, 1, pComboItem);
417                    } else if (param.possibilities.count() > 0 && !param.multiplicity) {
418                            QComboTableItem *pComboItem = new QComboTableItem(this,
419                                    param.possibilities);
420                        pComboItem->setCurrentItem(param.value);
421                        pComboItem->setEnabled(fEnabled);
422                            QTable::setItem(iRow, 1, pComboItem);
423                    } else {
424                            QTableItem* pTableItem = new QTableItem(this,
425                                    fEnabled ? QTableItem::Never : QTableItem::OnTyping,
426                                    param.value);
427                            QTable::setItem(iRow, 1, pTableItem);
428                    }
429                    QTable::setText(iRow, 2, iter.key());
430                  ++iRow;                  ++iRow;
431          }          }
432    
433          // Adjust optimal column width.          // Adjust optimal column widths.
434          for (int iCol = 0; iCol < QTable::numCols(); iCol++)          QTable::adjustColumn(1);
435                  QTable::adjustColumn(iCol);          QTable::adjustColumn(2);
436            
437            QTable::setUpdatesEnabled(true);
438            QTable::updateContents();
439  }  }
440    
441    

Legend:
Removed from v.431  
changed lines
  Added in v.433

  ViewVC Help
Powered by ViewVC