kopia lustrzana https://github.com/f4exb/sdrangel
Multi audio device: dialogs cosmetic changes
rodzic
c2d92ab888
commit
61aad30cbb
|
@ -14,9 +14,12 @@ AudioDialogX::AudioDialogX(AudioDeviceManager* audioDeviceManager, QWidget* pare
|
|||
|
||||
// out panel
|
||||
|
||||
AudioDeviceManager::OutputDeviceInfo outDeviceInfo;
|
||||
QAudioDeviceInfo defaultOutputDeviceInfo = QAudioDeviceInfo::defaultOutputDevice();
|
||||
treeItem = new QTreeWidgetItem(ui->audioOutTree);
|
||||
treeItem->setText(0, AudioDeviceManager::m_defaultDeviceName);
|
||||
treeItem->setText(1, AudioDeviceManager::m_defaultDeviceName);
|
||||
bool found = m_audioDeviceManager->getOutputDeviceInfo(AudioDeviceManager::m_defaultDeviceName, outDeviceInfo);
|
||||
treeItem->setText(0, found ? "__" : "_D");
|
||||
ui->audioOutTree->setCurrentItem(treeItem);
|
||||
|
||||
const QList<QAudioDeviceInfo>& outputDevices = m_audioDeviceManager->getOutputDevices();
|
||||
|
@ -24,18 +27,27 @@ AudioDialogX::AudioDialogX(AudioDeviceManager* audioDeviceManager, QWidget* pare
|
|||
for(QList<QAudioDeviceInfo>::const_iterator it = outputDevices.begin(); it != outputDevices.end(); ++it)
|
||||
{
|
||||
treeItem = new QTreeWidgetItem(ui->audioOutTree);
|
||||
treeItem->setText(0, it->deviceName());
|
||||
treeItem->setText(1, it->deviceName());
|
||||
bool systemDefault = it->deviceName() == defaultOutputDeviceInfo.deviceName();
|
||||
found = m_audioDeviceManager->getOutputDeviceInfo(it->deviceName(), outDeviceInfo);
|
||||
treeItem->setText(0, QString(systemDefault ? "S" : "_") + QString(found ? "_" : "D"));
|
||||
|
||||
if (it->deviceName() == defaultOutputDeviceInfo.deviceName()) {
|
||||
treeItem->setBackground(0, QBrush(qRgb(96,96,96)));
|
||||
if (systemDefault) {
|
||||
treeItem->setBackground(1, QBrush(qRgb(96,96,96)));
|
||||
}
|
||||
}
|
||||
|
||||
ui->audioOutTree->resizeColumnToContents(0);
|
||||
ui->audioOutTree->resizeColumnToContents(1);
|
||||
|
||||
// in panel
|
||||
|
||||
AudioDeviceManager::InputDeviceInfo inDeviceInfo;
|
||||
QAudioDeviceInfo defaultInputDeviceInfo = QAudioDeviceInfo::defaultInputDevice();
|
||||
treeItem = new QTreeWidgetItem(ui->audioInTree);
|
||||
treeItem->setText(0, AudioDeviceManager::m_defaultDeviceName);
|
||||
treeItem->setText(1, AudioDeviceManager::m_defaultDeviceName);
|
||||
found = m_audioDeviceManager->getInputDeviceInfo(AudioDeviceManager::m_defaultDeviceName, inDeviceInfo);
|
||||
treeItem->setText(0, found ? "__" : "_D");
|
||||
ui->audioInTree->setCurrentItem(treeItem);
|
||||
|
||||
const QList<QAudioDeviceInfo>& inputDevices = m_audioDeviceManager->getInputDevices();
|
||||
|
@ -43,13 +55,19 @@ AudioDialogX::AudioDialogX(AudioDeviceManager* audioDeviceManager, QWidget* pare
|
|||
for(QList<QAudioDeviceInfo>::const_iterator it = inputDevices.begin(); it != inputDevices.end(); ++it)
|
||||
{
|
||||
treeItem = new QTreeWidgetItem(ui->audioInTree);
|
||||
treeItem->setText(0, it->deviceName());
|
||||
treeItem->setText(1, it->deviceName());
|
||||
bool systemDefault = it->deviceName() == defaultInputDeviceInfo.deviceName();
|
||||
found = m_audioDeviceManager->getInputDeviceInfo(it->deviceName(), inDeviceInfo);
|
||||
treeItem->setText(0, QString(systemDefault ? "S" : "_") + QString(found ? "_" : "D"));
|
||||
|
||||
if (it->deviceName() == defaultInputDeviceInfo.deviceName()) {
|
||||
treeItem->setBackground(0, QBrush(qRgb(96,96,96)));
|
||||
if (systemDefault) {
|
||||
treeItem->setBackground(1, QBrush(qRgb(96,96,96)));
|
||||
}
|
||||
}
|
||||
|
||||
ui->audioInTree->resizeColumnToContents(0);
|
||||
ui->audioInTree->resizeColumnToContents(1);
|
||||
|
||||
m_outputUDPPort = 9998;
|
||||
m_outIndex = -1;
|
||||
m_inIndex = -1;
|
||||
|
@ -101,7 +119,7 @@ void AudioDialogX::on_audioInTree_currentItemChanged(
|
|||
QTreeWidgetItem* previousItem)
|
||||
{
|
||||
AudioDeviceManager::InputDeviceInfo inDeviceInfo;
|
||||
QString inDeviceName = currentItem->text(0);
|
||||
QString inDeviceName = currentItem->text(1);
|
||||
int newIndex = ui->audioInTree->indexOfTopLevelItem(currentItem);
|
||||
int oldIndex = ui->audioInTree->indexOfTopLevelItem(previousItem);
|
||||
//qDebug("AudioDialogX::on_audioInTree_currentItemChanged: %s", qPrintable(inDeviceName));
|
||||
|
@ -122,7 +140,7 @@ void AudioDialogX::on_audioOutTree_currentItemChanged(
|
|||
QTreeWidgetItem* previousItem)
|
||||
{
|
||||
AudioDeviceManager::OutputDeviceInfo outDeviceInfo;
|
||||
QString outDeviceName = currentItem->text(0);
|
||||
QString outDeviceName = currentItem->text(1);
|
||||
int newIndex = ui->audioOutTree->indexOfTopLevelItem(currentItem);
|
||||
int oldIndex = ui->audioOutTree->indexOfTopLevelItem(previousItem);
|
||||
|
||||
|
|
|
@ -32,9 +32,20 @@
|
|||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="audioOutTree">
|
||||
<property name="indentation">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="columnCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">Device</string>
|
||||
<string notr="true">SD</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Device</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
|
@ -299,6 +310,14 @@
|
|||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="audioInTree">
|
||||
<property name="indentation">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>SD</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Device</string>
|
||||
|
|
|
@ -27,22 +27,32 @@ AudioSelectDialog::AudioSelectDialog(AudioDeviceManager* audioDeviceManager, con
|
|||
{
|
||||
ui->setupUi(this);
|
||||
QTreeWidgetItem *treeItem, *defaultItem, *selectedItem = 0;
|
||||
bool systemDefault;
|
||||
int sampleRate;
|
||||
|
||||
// panel
|
||||
|
||||
QAudioDeviceInfo defaultDeviceInfo = input ? QAudioDeviceInfo::defaultInputDevice() : QAudioDeviceInfo::defaultOutputDevice();
|
||||
defaultItem = new QTreeWidgetItem(ui->audioTree);
|
||||
defaultItem->setText(0, AudioDeviceManager::m_defaultDeviceName);
|
||||
defaultItem->setText(1, AudioDeviceManager::m_defaultDeviceName);
|
||||
bool deviceFound = getDeviceInfos(input, AudioDeviceManager::m_defaultDeviceName, systemDefault, sampleRate);
|
||||
defaultItem->setText(0, deviceFound ? "__" : "_D");
|
||||
defaultItem->setText(2, tr("%1").arg(sampleRate));
|
||||
defaultItem->setTextAlignment(2, Qt::AlignRight);
|
||||
|
||||
QList<QAudioDeviceInfo> devices = input ? m_audioDeviceManager->getInputDevices() : m_audioDeviceManager->getOutputDevices();
|
||||
|
||||
for(QList<QAudioDeviceInfo>::const_iterator it = devices.begin(); it != devices.end(); ++it)
|
||||
{
|
||||
treeItem = new QTreeWidgetItem(ui->audioTree);
|
||||
treeItem->setText(0, it->deviceName());
|
||||
treeItem->setText(1, it->deviceName());
|
||||
bool deviceFound = getDeviceInfos(input, it->deviceName(), systemDefault, sampleRate);
|
||||
treeItem->setText(0, QString(systemDefault ? "S" : "_") + QString(deviceFound ? "_" : "D"));
|
||||
treeItem->setText(2, tr("%1").arg(sampleRate));
|
||||
treeItem->setTextAlignment(2, Qt::AlignRight);
|
||||
|
||||
if (it->deviceName() == defaultDeviceInfo.deviceName()) {
|
||||
treeItem->setBackground(0, QBrush(qRgb(96,96,96)));
|
||||
if (systemDefault) {
|
||||
treeItem->setBackground(1, QBrush(qRgb(80,80,80)));
|
||||
}
|
||||
|
||||
if (deviceName == it->deviceName()) {
|
||||
|
@ -50,6 +60,10 @@ AudioSelectDialog::AudioSelectDialog(AudioDeviceManager* audioDeviceManager, con
|
|||
}
|
||||
}
|
||||
|
||||
ui->audioTree->resizeColumnToContents(0);
|
||||
ui->audioTree->resizeColumnToContents(1);
|
||||
ui->audioTree->resizeColumnToContents(2);
|
||||
|
||||
if (selectedItem) {
|
||||
ui->audioTree->setCurrentItem(selectedItem);
|
||||
} else {
|
||||
|
@ -90,5 +104,36 @@ void AudioSelectDialog::reject()
|
|||
QDialog::reject();
|
||||
}
|
||||
|
||||
bool AudioSelectDialog::getDeviceInfos(bool input, const QString& deviceName, bool& systemDefault, int& sampleRate)
|
||||
{
|
||||
bool found;
|
||||
|
||||
if (input)
|
||||
{
|
||||
AudioDeviceManager::InputDeviceInfo inDeviceInfo;
|
||||
found = m_audioDeviceManager->getInputDeviceInfo(deviceName, inDeviceInfo);
|
||||
systemDefault = deviceName == QAudioDeviceInfo::defaultInputDevice().deviceName();
|
||||
|
||||
if (found) {
|
||||
sampleRate = inDeviceInfo.sampleRate;
|
||||
} else {
|
||||
sampleRate = AudioDeviceManager::m_defaultAudioSampleRate;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AudioDeviceManager::OutputDeviceInfo outDeviceInfo;
|
||||
found = m_audioDeviceManager->getOutputDeviceInfo(deviceName, outDeviceInfo);
|
||||
systemDefault = deviceName == QAudioDeviceInfo::defaultOutputDevice().deviceName();
|
||||
|
||||
if (found) {
|
||||
sampleRate = outDeviceInfo.sampleRate;
|
||||
} else {
|
||||
sampleRate = AudioDeviceManager::m_defaultAudioSampleRate;
|
||||
}
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ public:
|
|||
bool m_selected;
|
||||
|
||||
private:
|
||||
bool getDeviceInfos(bool input, const QString& deviceName, bool& systemDefault, int& sampleRate);
|
||||
Ui::AudioSelectDialog* ui;
|
||||
AudioDeviceManager* m_audioDeviceManager;
|
||||
bool m_input;
|
||||
|
|
|
@ -22,9 +22,25 @@
|
|||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="audioTree">
|
||||
<property name="indentation">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="columnCount">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">Device</string>
|
||||
<string notr="true">SD</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Device</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Rate</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
|
|
Ładowanie…
Reference in New Issue