82 |
// Set new reference. |
// Set new reference. |
83 |
m_pClient = pClient; |
m_pClient = pClient; |
84 |
|
|
|
// Set our main client reference. |
|
|
DeviceParameterTable->setClient(m_pClient); |
|
|
|
|
85 |
// OK. Do a whole refresh around. |
// OK. Do a whole refresh around. |
86 |
refreshDevices(); |
refreshDevices(); |
87 |
} |
} |
250 |
// Avoid nested changes. |
// Avoid nested changes. |
251 |
m_iDirtySetup++; |
m_iDirtySetup++; |
252 |
|
|
|
DeviceListView->clear(); |
|
|
if (m_pClient) |
|
|
new QListViewItem(DeviceListView, tr("<New device>")); |
|
|
|
|
253 |
// |
// |
254 |
// TODO: Load device configuration data ... |
// TODO: Load device configuration data ... |
255 |
// |
// |
256 |
|
|
257 |
m_pMainForm->appendMessages("qsamplerDeviceForm::refreshDevices()"); |
m_pMainForm->appendMessages("qsamplerDeviceForm::refreshDevices()"); |
258 |
|
|
259 |
DeviceParameterTable->setNumRows(0); |
DeviceListView->clear(); |
260 |
if (m_pClient) { |
if (m_pClient) { |
261 |
DeviceParameterTable->insertRows(0, 3); |
qsamplerDeviceItem *pItem; |
262 |
for (int c = 0; c < DeviceParameterTable->numCols(); c++) { |
int *piDeviceIDs; |
263 |
for (int r = 0; r < DeviceParameterTable->numRows(); r++) |
// Grab audio devices... |
264 |
DeviceParameterTable->setText(r, c, QString("R%1C%1").arg(r).arg(c)); |
pItem = new qsamplerDeviceItem(DeviceListView, m_pClient, |
265 |
DeviceParameterTable->adjustColumn(c); |
qsamplerDevice::Audio); |
266 |
|
if (pItem) { |
267 |
|
pItem->setText(0, tr("Audio")); |
268 |
|
piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Audio); |
269 |
|
for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) { |
270 |
|
new qsamplerDeviceItem(pItem, m_pClient, |
271 |
|
qsamplerDevice::Audio, piDeviceIDs[i]); |
272 |
|
} |
273 |
|
} |
274 |
|
// Grab MIDI devices... |
275 |
|
pItem = new qsamplerDeviceItem(DeviceListView, m_pClient, |
276 |
|
qsamplerDevice::Midi); |
277 |
|
if (pItem) { |
278 |
|
pItem->setText(0, tr("MIDI")); |
279 |
|
piDeviceIDs = qsamplerDevice::getDevices(m_pClient, qsamplerDevice::Midi); |
280 |
|
for (int i = 0; piDeviceIDs && piDeviceIDs[i] >= 0; i++) { |
281 |
|
new qsamplerDeviceItem(pItem, m_pClient, |
282 |
|
qsamplerDevice::Midi, piDeviceIDs[i]); |
283 |
|
} |
284 |
} |
} |
285 |
} |
} |
286 |
|
|
289 |
// stabilizeForm(); |
// stabilizeForm(); |
290 |
} |
} |
291 |
|
|
292 |
|
// Device selection slot. |
293 |
|
void qsamplerDeviceForm::selectDevice ( QListViewItem *pItem ) |
294 |
|
{ |
295 |
|
if (pItem == NULL) |
296 |
|
return; |
297 |
|
if (pItem->rtti() != QSAMPLER_DEVICE_ITEM) |
298 |
|
return; |
299 |
|
|
300 |
|
m_pMainForm->appendMessages("qsamplerDeviceForm::selectDevice(" + pItem->text(0) + ")"); |
301 |
|
|
302 |
|
const qsamplerDevice& device = ((qsamplerDeviceItem *) pItem)->device(); |
303 |
|
DeviceParamTable->setDevice(m_pClient, |
304 |
|
device.deviceType(), device.deviceID()); |
305 |
|
} |
306 |
|
|
307 |
|
|
308 |
// Stabilize current form state. |
// Stabilize current form state. |
309 |
void qsamplerDeviceForm::stabilizeForm (void) |
void qsamplerDeviceForm::stabilizeForm (void) |