aboutsummaryrefslogtreecommitdiffstats
path: root/utils/alsoft-config
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2022-11-17 00:26:10 -0800
committerChris Robinson <[email protected]>2022-11-17 00:40:47 -0800
commit201f5cb63ff8fb2781afa8afeda6a0e699f9e6c4 (patch)
tree53e0db85bcbbfacbe842b33647b2e753fe5dc77c /utils/alsoft-config
parent0239556444a6174d6fa81fc5993a14cdb8d6a4f1 (diff)
Update alsoft-config for new options
Diffstat (limited to 'utils/alsoft-config')
-rw-r--r--utils/alsoft-config/mainwindow.cpp23
-rw-r--r--utils/alsoft-config/mainwindow.ui117
2 files changed, 89 insertions, 51 deletions
diff --git a/utils/alsoft-config/mainwindow.cpp b/utils/alsoft-config/mainwindow.cpp
index 3565493e..8abde1fd 100644
--- a/utils/alsoft-config/mainwindow.cpp
+++ b/utils/alsoft-config/mainwindow.cpp
@@ -404,7 +404,7 @@ MainWindow::MainWindow(QWidget *parent) :
connect(ui->decoderDistCompCheckBox, &QCheckBox::stateChanged, this, &MainWindow::enableApplyButton);
connect(ui->decoderNFEffectsCheckBox, &QCheckBox::stateChanged, this, &MainWindow::enableApplyButton);
auto qdsb_vcd = static_cast<void(QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged);
- connect(ui->decoderNFRefDelaySpinBox, qdsb_vcd, this, &MainWindow::enableApplyButton);
+ connect(ui->decoderSpeakerDistSpinBox, qdsb_vcd, this, &MainWindow::enableApplyButton);
connect(ui->decoderQuadLineEdit, &QLineEdit::textChanged, this, &MainWindow::enableApplyButton);
connect(ui->decoderQuadButton, &QPushButton::clicked, this, &MainWindow::selectQuadDecoderFile);
connect(ui->decoder51LineEdit, &QLineEdit::textChanged, this, &MainWindow::enableApplyButton);
@@ -762,13 +762,14 @@ void MainWindow::loadConfig(const QString &fname)
ui->decoderHQModeCheckBox->setChecked(getCheckState(settings.value("decoder/hq-mode")));
ui->decoderDistCompCheckBox->setCheckState(getCheckState(settings.value("decoder/distance-comp")));
ui->decoderNFEffectsCheckBox->setCheckState(getCheckState(settings.value("decoder/nfc")));
- double refdelay{settings.value("decoder/nfc-ref-delay", 0.0).toDouble()};
- ui->decoderNFRefDelaySpinBox->setValue(refdelay);
+ double speakerdist{settings.value("decoder/speaker-dist", 1.0).toDouble()};
+ ui->decoderSpeakerDistSpinBox->setValue(speakerdist);
ui->decoderQuadLineEdit->setText(settings.value("decoder/quad").toString());
ui->decoder51LineEdit->setText(settings.value("decoder/surround51").toString());
ui->decoder61LineEdit->setText(settings.value("decoder/surround61").toString());
ui->decoder71LineEdit->setText(settings.value("decoder/surround71").toString());
+ ui->decoder3D71LineEdit->setText(settings.value("decoder/surround3d71").toString());
QStringList disabledCpuExts{settings.value("disable-cpu-exts").toStringList()};
if(disabledCpuExts.size() == 1)
@@ -1028,15 +1029,16 @@ void MainWindow::saveConfig(const QString &fname) const
settings.setValue("decoder/hq-mode", getCheckValue(ui->decoderHQModeCheckBox));
settings.setValue("decoder/distance-comp", getCheckValue(ui->decoderDistCompCheckBox));
settings.setValue("decoder/nfc", getCheckValue(ui->decoderNFEffectsCheckBox));
- double refdelay = ui->decoderNFRefDelaySpinBox->value();
- settings.setValue("decoder/nfc-ref-delay",
- (refdelay > 0.0) ? QString::number(refdelay) : QString{}
+ double speakerdist{ui->decoderSpeakerDistSpinBox->value()};
+ settings.setValue("decoder/speaker-dist",
+ (speakerdist != 1.0) ? QString::number(speakerdist) : QString{}
);
settings.setValue("decoder/quad", ui->decoderQuadLineEdit->text());
settings.setValue("decoder/surround51", ui->decoder51LineEdit->text());
settings.setValue("decoder/surround61", ui->decoder61LineEdit->text());
settings.setValue("decoder/surround71", ui->decoder71LineEdit->text());
+ settings.setValue("decoder/surround3d71", ui->decoder3D71LineEdit->text());
QStringList strlist;
if(!ui->enableSSECheckBox->isChecked())
@@ -1150,14 +1152,17 @@ void MainWindow::saveConfig(const QString &fname) const
(!ui->enableEaxCheck->isEnabled() || ui->enableEaxCheck->isChecked())
? QString{/*"true"*/} : QString{"false"});
+ settings.setValue("pipewire/assume-audio", ui->pwireAssumeAudioCheckBox->isChecked()
+ ? QString{"true"} : QString{/*"false"*/});
+
+ settings.setValue("wasapi/allow-resampler", ui->wasapiResamplerCheckBox->isChecked()
+ ? QString{/*"true"*/} : QString{"false"});
+
settings.setValue("pulse/spawn-server", getCheckValue(ui->pulseAutospawnCheckBox));
settings.setValue("pulse/allow-moves", getCheckValue(ui->pulseAllowMovesCheckBox));
settings.setValue("pulse/fix-rate", getCheckValue(ui->pulseFixRateCheckBox));
settings.setValue("pulse/adjust-latency", getCheckValue(ui->pulseAdjLatencyCheckBox));
- settings.setValue("pipewire/assume-audio", ui->pwireAssumeAudioCheckBox->isChecked()
- ? QString{"true"} : QString{/*"false"*/});
-
settings.setValue("jack/spawn-server", getCheckValue(ui->jackAutospawnCheckBox));
settings.setValue("jack/connect-ports", getCheckValue(ui->jackConnectPortsCheckBox));
settings.setValue("jack/rt-mix", getCheckValue(ui->jackRtMixCheckBox));
diff --git a/utils/alsoft-config/mainwindow.ui b/utils/alsoft-config/mainwindow.ui
index 8d057679..659807c7 100644
--- a/utils/alsoft-config/mainwindow.ui
+++ b/utils/alsoft-config/mainwindow.ui
@@ -906,60 +906,63 @@ are set in the decoder configuration file.</string>
<widget class="QWidget" name="widget_3" native="true">
<property name="geometry">
<rect>
- <x>-10</x>
+ <x>30</x>
<y>110</y>
- <width>281</width>
+ <width>471</width>
<height>21</height>
</rect>
</property>
<property name="toolTip">
- <string>The reference delay value for ambisonic output. When
-Channels is set to one of the Ambisonic formats, this
-option enables NFC-HOA output with the specified
-Reference Delay parameter. The specified value can then
-be shared with an appropriate NFC-HOA decoder to
-reproduce correct near-field effects. Keep in mind that
-despite being designed for higher-order ambisonics, this
-applies to first-order output all the same. When left unset,
-normal output is created with no near-field simulation.</string>
+ <string>Specifies the speaker distance in meters, used by the near-field control
+filters with surround sound output. For ambisonic output modes, this value
+is the basis for the NFC-HOA Reference Delay parameter (calculated as
+delay_seconds = speaker_dist/343.3). This value is not used when a decoder
+configuration is set for the output mode (since they specify the per-speaker
+distances, overriding this setting), or when the NFC filters are off.</string>
</property>
<widget class="QLabel" name="label_27">
<property name="geometry">
<rect>
- <x>20</x>
+ <x>45</x>
<y>0</y>
- <width>171</width>
+ <width>111</width>
<height>21</height>
</rect>
</property>
<property name="text">
- <string>Near-Field Reference Delay:</string>
+ <string>Speaker Distance:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
- <widget class="QDoubleSpinBox" name="decoderNFRefDelaySpinBox">
+ <widget class="QDoubleSpinBox" name="decoderSpeakerDistSpinBox">
<property name="geometry">
<rect>
- <x>200</x>
+ <x>165</x>
<y>0</y>
- <width>81</width>
+ <width>101</width>
<height>21</height>
</rect>
</property>
<property name="suffix">
- <string>sec</string>
+ <string> meters</string>
</property>
<property name="decimals">
- <number>4</number>
+ <number>2</number>
+ </property>
+ <property name="minimum">
+ <double>0.100000000000000</double>
</property>
<property name="maximum">
- <double>1000.000000000000000</double>
+ <double>10.000000000000000</double>
</property>
<property name="singleStep">
<double>0.010000000000000</double>
</property>
+ <property name="value">
+ <double>1.000000000000000</double>
+ </property>
</widget>
</widget>
</widget>
@@ -1259,12 +1262,17 @@ application or system to determine if it should be used.</string>
</item>
<item>
<property name="text">
- <string>PulseAudio</string>
+ <string>PipeWire</string>
</property>
</item>
<item>
<property name="text">
- <string>PipeWire</string>
+ <string>WASAPI</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>PulseAudio</string>
</property>
</item>
<item>
@@ -1382,7 +1390,52 @@ duplicated names are ignored.</string>
</property>
</widget>
</widget>
+ <widget class="QWidget" name="page_1">
+ <widget class="QCheckBox" name="pwireAssumeAudioCheckBox">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>161</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Assumes PipeWire has support for audio, allowing
+the backend to initialize even when no audio devices
+are reported.</string>
+ </property>
+ <property name="text">
+ <string>Assume audio support</string>
+ </property>
+ </widget>
+ </widget>
<widget class="QWidget" name="page_2">
+ <widget class="QCheckBox" name="wasapiResamplerCheckBox">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>191</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="toolTip">
+ <string>Specifies whether to allow an extra resampler pass on the output. Enabling
+this will allow the playback device to be set to a different sample rate
+than the actual output can accept, causing the backend to apply its own
+resampling pass after OpenAL Soft mixes the sources and processes effects
+for output.</string>
+ </property>
+ <property name="text">
+ <string>Allow Resampler</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget" name="page_8">
<widget class="QCheckBox" name="pulseAutospawnCheckBox">
<property name="geometry">
<rect>
@@ -1469,26 +1522,6 @@ drop-outs.</string>
</property>
</widget>
</widget>
- <widget class="QWidget" name="page_8">
- <widget class="QCheckBox" name="pwireAssumeAudioCheckBox">
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>10</y>
- <width>161</width>
- <height>21</height>
- </rect>
- </property>
- <property name="toolTip">
- <string>Assumes PipeWire has support for audio, allowing
-the backend to initialize even when no audio devices
-are reported.</string>
- </property>
- <property name="text">
- <string>Assume audio support</string>
- </property>
- </widget>
- </widget>
<widget class="QWidget" name="page_7">
<widget class="QCheckBox" name="jackAutospawnCheckBox">
<property name="geometry">