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

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

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

revision 441 by capela, Wed Mar 9 20:55:04 2005 UTC revision 442 by capela, Thu Mar 10 15:48:38 2005 UTC
# Line 37  void qsamplerDeviceForm::init (void) Line 37  void qsamplerDeviceForm::init (void)
37          m_pMainForm   = (qsamplerMainForm *) QWidget::parentWidget();          m_pMainForm   = (qsamplerMainForm *) QWidget::parentWidget();
38          m_pClient     = NULL;          m_pClient     = NULL;
39          m_iDirtySetup = 0;          m_iDirtySetup = 0;
         m_iDirtyCount = 0;  
40          m_bNewDevice  = false;          m_bNewDevice  = false;
41          m_deviceType  = qsamplerDevice::None;          m_deviceType  = qsamplerDevice::None;
42            m_pAudioItems = NULL;
43            m_pMidiItems  = NULL;
44    
45          // This an outsider (from designer), but rather important.          // This an outsider (from designer), but rather important.
46          QObject::connect(DeviceParamTable, SIGNAL(valueChanged(int,int)),          QObject::connect(DeviceParamTable, SIGNAL(valueChanged(int,int)),
# Line 96  void qsamplerDeviceForm::setClient ( lsc Line 97  void qsamplerDeviceForm::setClient ( lsc
97  // Create a new device from current table view.  // Create a new device from current table view.
98  void qsamplerDeviceForm::createDevice (void)  void qsamplerDeviceForm::createDevice (void)
99  {  {
         //  
         // TODO: Create a new device from current table view...  
         //  
         m_pMainForm->appendMessages("qsamplerDeviceForm::createDevice()");  
   
100          QListViewItem *pItem = DeviceListView->selectedItem();          QListViewItem *pItem = DeviceListView->selectedItem();
101          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)
102                  return;                  return;
# Line 122  void qsamplerDeviceForm::createDevice (v Line 118  void qsamplerDeviceForm::createDevice (v
118          pParams[iParam].value = NULL;          pParams[iParam].value = NULL;
119    
120          // Now it depends on the device type...          // Now it depends on the device type...
121            qsamplerDeviceItem *pRootItem = NULL;
122          int iDeviceID = -1;          int iDeviceID = -1;
123          switch (device.deviceType()) {          switch (device.deviceType()) {
124          case qsamplerDevice::Audio:          case qsamplerDevice::Audio:
125                pRootItem = m_pAudioItems;
126                  if ((iDeviceID = ::lscp_create_audio_device(m_pClient,                  if ((iDeviceID = ::lscp_create_audio_device(m_pClient,
127                                  device.driverName().latin1(), pParams)) < 0)                                  device.driverName().latin1(), pParams)) < 0)
128                          m_pMainForm->appendMessagesClient("lscp_create_audio_device");                          m_pMainForm->appendMessagesClient("lscp_create_audio_device");
129                  break;                  break;
130          case qsamplerDevice::Midi:          case qsamplerDevice::Midi:
131                pRootItem = m_pMidiItems;
132                  if ((iDeviceID = ::lscp_create_midi_device(m_pClient,                  if ((iDeviceID = ::lscp_create_midi_device(m_pClient,
133                                  device.driverName().latin1(), pParams)) < 0)                                  device.driverName().latin1(), pParams)) < 0)
134                          m_pMainForm->appendMessagesClient("lscp_create_midi_device");                          m_pMainForm->appendMessagesClient("lscp_create_midi_device");
# Line 141  void qsamplerDeviceForm::createDevice (v Line 140  void qsamplerDeviceForm::createDevice (v
140          // Free used parameter array.          // Free used parameter array.
141          delete pParams;          delete pParams;
142    
143          // Show result.          // We're on to create the new device item.
144          if (iDeviceID >= 0) {          if (iDeviceID >= 0) {
145                  m_pMainForm->appendMessages(device.deviceName() + ' ' + tr("created."));                  // Append the new device item.
146                    qsamplerDeviceItem *pDeviceItem = new qsamplerDeviceItem(pRootItem,
147                            m_pClient, device.deviceType(), iDeviceID);
148                    // Just make it the new selection...
149                    DeviceListView->setSelected(pDeviceItem, true);
150                  // Done.                  // Done.
151                  refreshDevices();                  m_pMainForm->appendMessages(pDeviceItem->device().deviceName() + ' '
152                            + tr("created."));
153                  // Main session should be marked dirty.                  // Main session should be marked dirty.
154                  m_pMainForm->sessionDirty();                  m_pMainForm->sessionDirty();
155          }          }
# Line 155  void qsamplerDeviceForm::createDevice (v Line 159  void qsamplerDeviceForm::createDevice (v
159  // Delete current device in table view.  // Delete current device in table view.
160  void qsamplerDeviceForm::deleteDevice (void)  void qsamplerDeviceForm::deleteDevice (void)
161  {  {
         //  
         // TODO: Delete current device in table view...  
         //  
         m_pMainForm->appendMessages("qsamplerDeviceForm::deleteDevice()");  
   
162          QListViewItem *pItem = DeviceListView->selectedItem();          QListViewItem *pItem = DeviceListView->selectedItem();
163          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)
164                  return;                  return;
165    
166          qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device();          qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device();
167    
168            // Prompt user if this is for real...
169            qsamplerOptions *pOptions = m_pMainForm->options();
170        if (pOptions && pOptions->bConfirmRemove) {
171            if (QMessageBox::warning(this, tr("Warning"),
172                tr("Delete %1 device:\n\n"
173                   "%2\n\n"
174                   "Are you sure?")
175                   .arg(device.deviceTypeName())
176                   .arg(device.deviceName()),
177                tr("OK"), tr("Cancel")) > 0)
178                return;
179        }
180    
181          // Now it depends on the device type...          // Now it depends on the device type...
182          lscp_status_t ret = LSCP_FAILED;          lscp_status_t ret = LSCP_FAILED;
183          switch (device.deviceType()) {          switch (device.deviceType()) {
# Line 185  void qsamplerDeviceForm::deleteDevice (v Line 197  void qsamplerDeviceForm::deleteDevice (v
197    
198          // Show result.          // Show result.
199          if (ret == LSCP_OK) {          if (ret == LSCP_OK) {
200                  m_pMainForm->appendMessages(device.deviceName() + ' ' + tr("deleted."));                  // Show log message before loosing it.
201                    m_pMainForm->appendMessages(device.deviceName() + ' '
202                            + tr("deleted."));
203                  // Done.                  // Done.
204                  refreshDevices();                  delete pItem;
205                  // Main session should be marked dirty.                  // Main session should be marked dirty.
206                  m_pMainForm->sessionDirty();                  m_pMainForm->sessionDirty();
207          }          }
# Line 201  void qsamplerDeviceForm::refreshDevices Line 215  void qsamplerDeviceForm::refreshDevices
215          m_iDirtySetup++;          m_iDirtySetup++;
216    
217          //          //
218          // TODO: Load device configuration data ...          // (Re)Load complete device configuration data ...
219          //          //
220          m_pMainForm->appendMessages("qsamplerDeviceForm::refreshDevices()");          m_pAudioItems = NULL;
221            m_pMidiItems = NULL;
222          DeviceListView->clear();          DeviceListView->clear();
223          if (m_pClient) {          if (m_pClient) {
                 qsamplerDeviceItem *pItem;  
224                  int *piDeviceIDs;                  int *piDeviceIDs;
225                  // Grab and pop Audio devices...                  // Grab and pop Audio devices...
226                  pItem = new qsamplerDeviceItem(DeviceListView, m_pClient,                  m_pAudioItems = new qsamplerDeviceItem(DeviceListView, m_pClient,
227                          qsamplerDevice::Audio);                          qsamplerDevice::Audio);
228                  if (pItem) {                  if (m_pAudioItems) {
229                          pItem->setText(0, tr("Audio"));                          m_pAudioItems->setText(0, tr("Audio"));
230                          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Audio);                          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Audio);
231                          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) {                          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) {
232                                  new qsamplerDeviceItem(pItem, m_pClient,                                  new qsamplerDeviceItem(m_pAudioItems, m_pClient,
233                                          qsamplerDevice::Audio, piDeviceIDs[i]);                                          qsamplerDevice::Audio, piDeviceIDs[i]);
234                          }                          }
235                          pItem->setOpen(true);                          m_pAudioItems->setOpen(true);
236                  }                  }
237                  // Grab and pop MIDI devices...                  // Grab and pop MIDI devices...
238                  pItem = new qsamplerDeviceItem(DeviceListView, m_pClient,                  m_pMidiItems = new qsamplerDeviceItem(DeviceListView, m_pClient,
239                          qsamplerDevice::Midi);                          qsamplerDevice::Midi);
240                  if (pItem) {                  if (m_pMidiItems) {
241                          pItem->setText(0, tr("MIDI"));                          m_pMidiItems->setText(0, tr("MIDI"));
242                          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Midi);                          piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Midi);
243                          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) {                          for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) {
244                                  new qsamplerDeviceItem(pItem, m_pClient,                                  new qsamplerDeviceItem(m_pMidiItems, m_pClient,
245                                          qsamplerDevice::Midi, piDeviceIDs[i]);                                          qsamplerDevice::Midi, piDeviceIDs[i]);
246                          }                          }
247                          pItem->setOpen(true);                          m_pMidiItems->setOpen(true);
248                  }                  }
249          }          }
250    
251          // Done.          // Done.
         m_iDirtyCount = 0;  
252          m_iDirtySetup--;          m_iDirtySetup--;
253    
254          // Show something.          // Show something.
# Line 251  void qsamplerDeviceForm::selectDriver ( Line 263  void qsamplerDeviceForm::selectDriver (
263                  return;                  return;
264    
265          //          //
266          //  TODO: Driver name has changed for a new device...          //  Driver name has changed for a new device...
267          //          //
         m_pMainForm->appendMessages("qsamplerDeviceForm::selectDriver()");  
268    
269          QListViewItem *pItem = DeviceListView->selectedItem();          QListViewItem *pItem = DeviceListView->selectedItem();
270          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)
# Line 263  void qsamplerDeviceForm::selectDriver ( Line 274  void qsamplerDeviceForm::selectDriver (
274    
275          // Driver change is only valid for scratch devices...          // Driver change is only valid for scratch devices...
276          if (m_bNewDevice) {          if (m_bNewDevice) {
277                    m_iDirtySetup++;
278                  device.setDriver(m_pClient, sDriverName);                  device.setDriver(m_pClient, sDriverName);
279                  DeviceParamTable->refresh(device);                  DeviceParamTable->refresh(device);
280                  m_iDirtyCount++;                  m_iDirtySetup--;
281                  // Done.                  // Done.
282                  stabilizeForm();                  stabilizeForm();
283          }          }
# Line 279  void qsamplerDeviceForm::selectDevice (v Line 291  void qsamplerDeviceForm::selectDevice (v
291                  return;                  return;
292    
293          //          //
294          //  TODO: Device selection has changed...          //  Device selection has changed...
295          //          //
         m_pMainForm->appendMessages("qsamplerDeviceForm::selectDevice()");  
296    
297          QListViewItem *pItem = DeviceListView->selectedItem();          QListViewItem *pItem = DeviceListView->selectedItem();
298          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM) {          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM) {
# Line 292  void qsamplerDeviceForm::selectDevice (v Line 303  void qsamplerDeviceForm::selectDevice (v
303                  return;                  return;
304          }          }
305    
306            m_iDirtySetup++;
307          qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device();          qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device();
308    
309          // Flag whether this is a new device.          // Flag whether this is a new device.
# Line 318  void qsamplerDeviceForm::selectDevice (v Line 330  void qsamplerDeviceForm::selectDevice (v
330          // Fill the device parameter table...          // Fill the device parameter table...
331          DeviceParamTable->refresh(device);          DeviceParamTable->refresh(device);
332          // Done.          // Done.
333            m_iDirtySetup--;
334          stabilizeForm();          stabilizeForm();
335  }  }
336    
# Line 325  void qsamplerDeviceForm::selectDevice (v Line 338  void qsamplerDeviceForm::selectDevice (v
338  // parameter value change slot.  // parameter value change slot.
339  void qsamplerDeviceForm::changeValue ( int iRow, int iCol )  void qsamplerDeviceForm::changeValue ( int iRow, int iCol )
340  {  {
341            if (m_iDirtySetup > 0)
342                return;
343            if (iRow < 0 || iCol < 0)
344                return;
345                
346          //          //
347          //  TODO: Device parameter change...          //  Device parameter change...
348          //          //
349          m_pMainForm->appendMessages("qsamplerDeviceForm::changeValue()");  
           
350          QListViewItem *pItem = DeviceListView->selectedItem();          QListViewItem *pItem = DeviceListView->selectedItem();
351          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)          if (pItem == NULL || pItem->rtti() != QSAMPLER_DEVICE_ITEM)
352                  return;                  return;
353    
354            m_iDirtySetup++;
355          qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device();          qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device();
356    
357          // Table 1st column has the parameter name;          // Table 1st column has the parameter name;
# Line 366  void qsamplerDeviceForm::changeValue ( i Line 384  void qsamplerDeviceForm::changeValue ( i
384                  }                  }
385                  // Show result.                  // Show result.
386                  if (ret == LSCP_OK) {                  if (ret == LSCP_OK) {
387                          m_pMainForm->appendMessages(device.deviceName() + ' ' +                          m_pMainForm->appendMessages(device.deviceName() + ' '
388                                  QString("%1: %2.").arg(sParam).arg(sValue));                                  + QString("%1: %2.").arg(sParam).arg(sValue));
389                  }                  }
390          }          }
391    
392          // Done.          // Done.
393          m_iDirtyCount++;          m_iDirtySetup--;
394          stabilizeForm();          stabilizeForm();
395          // Main session should be dirtier...          // Main session should be dirtier...
396          m_pMainForm->sessionDirty();          m_pMainForm->sessionDirty();

Legend:
Removed from v.441  
changed lines
  Added in v.442

  ViewVC Help
Powered by ViewVC