summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/yuzu/configuration/configure_audio.cpp47
-rw-r--r--src/yuzu/configuration/configure_audio.h3
2 files changed, 34 insertions, 16 deletions
diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp
index 6ea59f2a3..eb1da0f9e 100644
--- a/src/yuzu/configuration/configure_audio.cpp
+++ b/src/yuzu/configuration/configure_audio.cpp
@@ -21,9 +21,8 @@ ConfigureAudio::ConfigureAudio(QWidget* parent)
21 ui->output_sink_combo_box->addItem(sink_detail.id); 21 ui->output_sink_combo_box->addItem(sink_detail.id);
22 } 22 }
23 23
24 connect(ui->volume_slider, &QSlider::valueChanged, [this] { 24 connect(ui->volume_slider, &QSlider::valueChanged, this,
25 ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); 25 &ConfigureAudio::setVolumeIndicatorText);
26 });
27 26
28 this->setConfiguration(); 27 this->setConfiguration();
29 connect(ui->output_sink_combo_box, 28 connect(ui->output_sink_combo_box,
@@ -37,32 +36,48 @@ ConfigureAudio::ConfigureAudio(QWidget* parent)
37ConfigureAudio::~ConfigureAudio() = default; 36ConfigureAudio::~ConfigureAudio() = default;
38 37
39void ConfigureAudio::setConfiguration() { 38void ConfigureAudio::setConfiguration() {
39 setOutputSinkFromSinkID();
40
41 // The device list cannot be pre-populated (nor listed) until the output sink is known.
42 updateAudioDevices(ui->output_sink_combo_box->currentIndex());
43
44 setAudioDeviceFromDeviceID();
45
46 ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching);
47 ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum());
48 setVolumeIndicatorText(ui->volume_slider->sliderPosition());
49}
50
51void ConfigureAudio::setOutputSinkFromSinkID() {
40 int new_sink_index = 0; 52 int new_sink_index = 0;
53
54 const QString sink_id = QString::fromStdString(Settings::values.sink_id);
41 for (int index = 0; index < ui->output_sink_combo_box->count(); index++) { 55 for (int index = 0; index < ui->output_sink_combo_box->count(); index++) {
42 if (ui->output_sink_combo_box->itemText(index).toStdString() == Settings::values.sink_id) { 56 if (ui->output_sink_combo_box->itemText(index) == sink_id) {
43 new_sink_index = index; 57 new_sink_index = index;
44 break; 58 break;
45 } 59 }
46 } 60 }
47 ui->output_sink_combo_box->setCurrentIndex(new_sink_index);
48 61
49 ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); 62 ui->output_sink_combo_box->setCurrentIndex(new_sink_index);
50 63}
51 // The device list cannot be pre-populated (nor listed) until the output sink is known.
52 updateAudioDevices(new_sink_index);
53 64
65void ConfigureAudio::setAudioDeviceFromDeviceID() {
54 int new_device_index = -1; 66 int new_device_index = -1;
67
68 const QString device_id = QString::fromStdString(Settings::values.audio_device_id);
55 for (int index = 0; index < ui->audio_device_combo_box->count(); index++) { 69 for (int index = 0; index < ui->audio_device_combo_box->count(); index++) {
56 if (ui->audio_device_combo_box->itemText(index).toStdString() == 70 if (ui->audio_device_combo_box->itemText(index) == device_id) {
57 Settings::values.audio_device_id) {
58 new_device_index = index; 71 new_device_index = index;
59 break; 72 break;
60 } 73 }
61 } 74 }
75
62 ui->audio_device_combo_box->setCurrentIndex(new_device_index); 76 ui->audio_device_combo_box->setCurrentIndex(new_device_index);
77}
63 78
64 ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); 79void ConfigureAudio::setVolumeIndicatorText(int percentage) {
65 ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); 80 ui->volume_indicator->setText(tr("%1%", "Volume percentage (e.g. 50%)").arg(percentage));
66} 81}
67 82
68void ConfigureAudio::applyConfiguration() { 83void ConfigureAudio::applyConfiguration() {
@@ -81,10 +96,10 @@ void ConfigureAudio::updateAudioDevices(int sink_index) {
81 ui->audio_device_combo_box->clear(); 96 ui->audio_device_combo_box->clear();
82 ui->audio_device_combo_box->addItem(AudioCore::auto_device_name); 97 ui->audio_device_combo_box->addItem(AudioCore::auto_device_name);
83 98
84 std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); 99 const std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString();
85 std::vector<std::string> device_list = AudioCore::GetSinkDetails(sink_id).list_devices(); 100 const std::vector<std::string> device_list = AudioCore::GetSinkDetails(sink_id).list_devices();
86 for (const auto& device : device_list) { 101 for (const auto& device : device_list) {
87 ui->audio_device_combo_box->addItem(device.c_str()); 102 ui->audio_device_combo_box->addItem(QString::fromStdString(device));
88 } 103 }
89} 104}
90 105
diff --git a/src/yuzu/configuration/configure_audio.h b/src/yuzu/configuration/configure_audio.h
index 4f0af4163..207f9dfb3 100644
--- a/src/yuzu/configuration/configure_audio.h
+++ b/src/yuzu/configuration/configure_audio.h
@@ -26,6 +26,9 @@ public slots:
26 26
27private: 27private:
28 void setConfiguration(); 28 void setConfiguration();
29 void setOutputSinkFromSinkID();
30 void setAudioDeviceFromDeviceID();
31 void setVolumeIndicatorText(int percentage);
29 32
30 std::unique_ptr<Ui::ConfigureAudio> ui; 33 std::unique_ptr<Ui::ConfigureAudio> ui;
31}; 34};