diff options
Diffstat (limited to 'utils/alsoft-config')
-rw-r--r-- | utils/alsoft-config/mainwindow.cpp | 37 | ||||
-rw-r--r-- | utils/alsoft-config/mainwindow.h | 1 | ||||
-rw-r--r-- | utils/alsoft-config/mainwindow.ui | 71 |
3 files changed, 109 insertions, 0 deletions
diff --git a/utils/alsoft-config/mainwindow.cpp b/utils/alsoft-config/mainwindow.cpp index 4e2b2464..687f9134 100644 --- a/utils/alsoft-config/mainwindow.cpp +++ b/utils/alsoft-config/mainwindow.cpp @@ -124,6 +124,14 @@ static const struct NameValuePair { { "Furse-Malham", "fuma" }, { "", "" } +}, hrtfModeList[] = { + { "1st Order Ambisonic", "ambi1" }, + { "2nd Order Ambisonic", "ambi2" }, + { "3rd Order Ambisonic", "ambi3" }, + { "Default (Full)", "" }, + { "Full", "full" }, + + { "", "" } }; static QString getDefaultConfigName() @@ -267,6 +275,9 @@ MainWindow::MainWindow(QWidget *parent) : } ui->resamplerSlider->setRange(0, count-1); + for(count = 0;hrtfModeList[count].name[0];count++) { + } + ui->hrtfqualitySlider->setRange(0, count-1); ui->hrtfStateComboBox->adjustSize(); #if !defined(HAVE_NEON) && !defined(HAVE_SSE) @@ -367,6 +378,8 @@ MainWindow::MainWindow(QWidget *parent) : connect(ui->preferredHrtfComboBox, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); connect(ui->hrtfStateComboBox, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(enableApplyButton())); + connect(ui->hrtfqualitySlider, SIGNAL(valueChanged(int)), this, SLOT(updateHrtfModeLabel(int))); + connect(ui->hrtfAddButton, SIGNAL(clicked()), this, SLOT(addHrtfFile())); connect(ui->hrtfRemoveButton, SIGNAL(clicked()), this, SLOT(removeHrtfFile())); connect(ui->hrtfFileList, SIGNAL(itemSelectionChanged()), this, SLOT(updateHrtfRemoveButton())); @@ -725,6 +738,21 @@ void MainWindow::loadConfig(const QString &fname) ui->enableSSE41CheckBox->setChecked(!disabledCpuExts.contains("sse4.1", Qt::CaseInsensitive)); ui->enableNeonCheckBox->setChecked(!disabledCpuExts.contains("neon", Qt::CaseInsensitive)); + QString hrtfmode = settings.value("hrtf-mode").toString().trimmed(); + ui->hrtfqualitySlider->setValue(3); + ui->hrtfqualityLabel->setText(hrtfModeList[3].name); + /* The "basic" mode name is no longer supported. Use "ambi2" instead. */ + if(hrtfmode == "basic") hrtfmode = "ambi2"; + for(int i = 0;hrtfModeList[i].name[0];i++) + { + if(hrtfmode == hrtfModeList[i].value) + { + ui->hrtfqualitySlider->setValue(i); + ui->hrtfqualityLabel->setText(hrtfModeList[i].name); + break; + } + } + QStringList hrtf_paths = settings.value("hrtf-paths").toStringList(); if(hrtf_paths.size() == 1) hrtf_paths = hrtf_paths[0].split(QChar(',')); @@ -973,6 +1001,8 @@ void MainWindow::saveConfig(const QString &fname) const strlist.append("neon"); settings.setValue("disable-cpu-exts", strlist.join(QChar(','))); + settings.setValue("hrtf-mode", hrtfModeList[ui->hrtfqualitySlider->value()].value); + if(ui->hrtfStateComboBox->currentIndex() == 1) settings.setValue("hrtf", "true"); else if(ui->hrtfStateComboBox->currentIndex() == 2) @@ -1208,6 +1238,13 @@ void MainWindow::updateJackBufferSizeSlider() } +void MainWindow::updateHrtfModeLabel(int num) +{ + ui->hrtfqualityLabel->setText(hrtfModeList[num].name); + enableApplyButton(); +} + + void MainWindow::addHrtfFile() { QString path = QFileDialog::getExistingDirectory(this, tr("Select HRTF Path")); diff --git a/utils/alsoft-config/mainwindow.h b/utils/alsoft-config/mainwindow.h index 8b763845..ca53582b 100644 --- a/utils/alsoft-config/mainwindow.h +++ b/utils/alsoft-config/mainwindow.h @@ -43,6 +43,7 @@ private slots: void updateJackBufferSizeEdit(int size); void updateJackBufferSizeSlider(); + void updateHrtfModeLabel(int num); void addHrtfFile(); void removeHrtfFile(); diff --git a/utils/alsoft-config/mainwindow.ui b/utils/alsoft-config/mainwindow.ui index 46d1b7a8..7ab27c09 100644 --- a/utils/alsoft-config/mainwindow.ui +++ b/utils/alsoft-config/mainwindow.ui @@ -1122,6 +1122,77 @@ application or system to determine if it should be used.</string> <string>The default HRTF to use if the application doesn't request one.</string> </property> </widget> + <widget class="QGroupBox" name="groupBox_9"> + <property name="geometry"> + <rect> + <x>50</x> + <y>90</y> + <width>441</width> + <height>81</height> + </rect> + </property> + <property name="title"> + <string>HRTF Quality</string> + </property> + <widget class="QLabel" name="label_31"> + <property name="geometry"> + <rect> + <x>20</x> + <y>30</y> + <width>51</width> + <height>21</height> + </rect> + </property> + <property name="text"> + <string>Speed</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="label_32"> + <property name="geometry"> + <rect> + <x>340</x> + <y>30</y> + <width>51</width> + <height>21</height> + </rect> + </property> + <property name="text"> + <string>Quality</string> + </property> + </widget> + <widget class="QSlider" name="hrtfqualitySlider"> + <property name="geometry"> + <rect> + <x>80</x> + <y>30</y> + <width>251</width> + <height>21</height> + </rect> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + <widget class="QLabel" name="hrtfqualityLabel"> + <property name="geometry"> + <rect> + <x>50</x> + <y>50</y> + <width>321</width> + <height>21</height> + </rect> + </property> + <property name="text"> + <string>Default</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </widget> </widget> <widget class="QWidget" name="tab"> <attribute name="title"> |