302 |
// Device parameter dependencies refreshner. |
// Device parameter dependencies refreshner. |
303 |
int qsamplerDevice::refreshParams ( lscp_client_t *pClient ) |
int qsamplerDevice::refreshParams ( lscp_client_t *pClient ) |
304 |
{ |
{ |
305 |
|
// This should only make sense for scratch devices... |
306 |
|
if (m_iDeviceID >= 0) |
307 |
|
return 0; |
308 |
// Refresh all parameters that have dependencies... |
// Refresh all parameters that have dependencies... |
309 |
int iParams = 0; |
int iParams = 0; |
310 |
qsamplerDeviceParamMap::ConstIterator iter; |
qsamplerDeviceParamMap::ConstIterator iter; |
318 |
// Device port/channel list refreshner. |
// Device port/channel list refreshner. |
319 |
int qsamplerDevice::refreshPorts ( lscp_client_t *pClient ) |
int qsamplerDevice::refreshPorts ( lscp_client_t *pClient ) |
320 |
{ |
{ |
321 |
|
// This should only make sense for actual devices... |
322 |
|
if (m_iDeviceID < 0) |
323 |
|
return 0; |
324 |
// Port/channel count determination... |
// Port/channel count determination... |
325 |
int iPorts = 0; |
int iPorts = 0; |
326 |
switch (m_deviceType) { |
switch (m_deviceType) { |
346 |
int qsamplerDevice::refreshDepends ( lscp_client_t *pClient, |
int qsamplerDevice::refreshDepends ( lscp_client_t *pClient, |
347 |
const QString& sParam ) |
const QString& sParam ) |
348 |
{ |
{ |
349 |
|
// This should only make sense for scratch devices... |
350 |
|
if (m_iDeviceID >= 0) |
351 |
|
return 0; |
352 |
// Refresh all parameters that depend on this one... |
// Refresh all parameters that depend on this one... |
353 |
int iDepends = 0; |
int iDepends = 0; |
354 |
qsamplerDeviceParamMap::ConstIterator iter; |
qsamplerDeviceParamMap::ConstIterator iter; |
387 |
pDepends[iDepend].key = NULL; |
pDepends[iDepend].key = NULL; |
388 |
pDepends[iDepend].value = NULL; |
pDepends[iDepend].value = NULL; |
389 |
|
|
|
#if 0 |
|
390 |
// FIXME: Some parameter dependencies (e.g.ALSA CARD) |
// FIXME: Some parameter dependencies (e.g.ALSA CARD) |
391 |
// are blocking for no reason, causing timeout-crashes. |
// are blocking for no reason, causing potential timeout-crashes. |
392 |
|
// hopefully this gets mitigated if this dependency hell is only |
393 |
|
// carried out for scratch devices... |
394 |
|
|
395 |
// Retrieve some modern parameters... |
// Retrieve some modern parameters... |
396 |
lscp_param_info_t *pParamInfo = NULL; |
lscp_param_info_t *pParamInfo = NULL; |
410 |
param = qsamplerDeviceParam(pParamInfo, QString(param.value)); |
param = qsamplerDeviceParam(pParamInfo, QString(param.value)); |
411 |
iRefresh++; |
iRefresh++; |
412 |
} |
} |
413 |
#endif |
|
414 |
// Free used parameter array. |
// Free used parameter array. |
415 |
delete pDepends; |
delete pDepends; |
416 |
|
|
491 |
m_params.clear(); |
m_params.clear(); |
492 |
|
|
493 |
// Retrieve device port/channel info, if any. |
// Retrieve device port/channel info, if any. |
|
QString sPrefix = device.driverName() + ' '; |
|
494 |
lscp_device_port_info_t *pPortInfo = NULL; |
lscp_device_port_info_t *pPortInfo = NULL; |
495 |
switch (device.deviceType()) { |
switch (device.deviceType()) { |
496 |
case qsamplerDevice::Audio: |
case qsamplerDevice::Audio: |
|
sPrefix += QObject::tr("Channel"); |
|
497 |
pPortInfo = ::lscp_get_audio_channel_info(pClient, device.deviceID(), iPortID); |
pPortInfo = ::lscp_get_audio_channel_info(pClient, device.deviceID(), iPortID); |
498 |
break; |
break; |
499 |
case qsamplerDevice::Midi: |
case qsamplerDevice::Midi: |
|
sPrefix += QObject::tr("Port"); |
|
500 |
pPortInfo = ::lscp_get_midi_port_info(pClient, device.deviceID(), iPortID); |
pPortInfo = ::lscp_get_midi_port_info(pClient, device.deviceID(), iPortID); |
501 |
break; |
break; |
502 |
case qsamplerDevice::None: |
case qsamplerDevice::None: |
510 |
} |
} |
511 |
|
|
512 |
// Set device port/channel properties... |
// Set device port/channel properties... |
513 |
sPrefix += " %1:"; |
m_sPortName += device.driverName() + ' ' + pPortInfo->name; |
|
m_sPortName = sPrefix.arg(m_iPortID) + ' ' + pPortInfo->name; |
|
514 |
|
|
515 |
// Grab device port/channel parameters... |
// Grab device port/channel parameters... |
516 |
m_params.clear(); |
m_params.clear(); |
575 |
switch(m_device.deviceType()) { |
switch(m_device.deviceType()) { |
576 |
case qsamplerDevice::Audio: |
case qsamplerDevice::Audio: |
577 |
QListViewItem::setPixmap(0, QPixmap::fromMimeSource("audio1.png")); |
QListViewItem::setPixmap(0, QPixmap::fromMimeSource("audio1.png")); |
578 |
QListViewItem::setText(0, QObject::tr("Audio devices")); |
QListViewItem::setText(0, QObject::tr("Audio Devices")); |
579 |
break; |
break; |
580 |
case qsamplerDevice::Midi: |
case qsamplerDevice::Midi: |
581 |
QListViewItem::setPixmap(0, QPixmap::fromMimeSource("midi1.png")); |
QListViewItem::setPixmap(0, QPixmap::fromMimeSource("midi1.png")); |
582 |
QListViewItem::setText(0, QObject::tr("MIDI devices")); |
QListViewItem::setText(0, QObject::tr("MIDI Devices")); |
583 |
break; |
break; |
584 |
case qsamplerDevice::None: |
case qsamplerDevice::None: |
585 |
break; |
break; |
650 |
// Set read-onlyness of each column |
// Set read-onlyness of each column |
651 |
QTable::setColumnReadOnly(0, true); |
QTable::setColumnReadOnly(0, true); |
652 |
QTable::setColumnReadOnly(1, true); |
QTable::setColumnReadOnly(1, true); |
653 |
// QTable::setColumnReadOnly(2, true); -- of course not. |
// QTable::setColumnReadOnly(2, false); -- of course not. |
654 |
QTable::setColumnStretchable(1, true); |
QTable::setColumnStretchable(1, true); |
655 |
} |
} |
656 |
|
|