From 226dc914b397894539f5bbee0be5f49dd996b655 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 19:45:09 -0400 Subject: [PATCH 1/3] configure_audio: Add disambiguation comment for the volume percentage string Disambiguates what the string represents to help translators more easily understand what it is that they're translating. While we're at it, we can move the code to its own function, so that we don't need to specify the same string twice. --- src/yuzu/configuration/configure_audio.cpp | 11 +++++++---- src/yuzu/configuration/configure_audio.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp index 6ea59f2a35..f11aaa1721 100644 --- a/src/yuzu/configuration/configure_audio.cpp +++ b/src/yuzu/configuration/configure_audio.cpp @@ -21,9 +21,8 @@ ConfigureAudio::ConfigureAudio(QWidget* parent) ui->output_sink_combo_box->addItem(sink_detail.id); } - connect(ui->volume_slider, &QSlider::valueChanged, [this] { - ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); - }); + connect(ui->volume_slider, &QSlider::valueChanged, this, + &ConfigureAudio::setVolumeIndicatorText); this->setConfiguration(); connect(ui->output_sink_combo_box, @@ -62,7 +61,11 @@ void ConfigureAudio::setConfiguration() { ui->audio_device_combo_box->setCurrentIndex(new_device_index); ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); - ui->volume_indicator->setText(tr("%1 %").arg(ui->volume_slider->sliderPosition())); + setVolumeIndicatorText(ui->volume_slider->sliderPosition()); +} + +void ConfigureAudio::setVolumeIndicatorText(int percentage) { + ui->volume_indicator->setText(tr("%1%", "Volume percentage (e.g. 50%)").arg(percentage)); } void ConfigureAudio::applyConfiguration() { diff --git a/src/yuzu/configuration/configure_audio.h b/src/yuzu/configuration/configure_audio.h index 4f0af41630..069e79d561 100644 --- a/src/yuzu/configuration/configure_audio.h +++ b/src/yuzu/configuration/configure_audio.h @@ -26,6 +26,7 @@ public slots: private: void setConfiguration(); + void setVolumeIndicatorText(int percentage); std::unique_ptr ui; }; From 57e47bae321f001b81e6af6bf57bd611df7708f0 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 19:50:48 -0400 Subject: [PATCH 2/3] configure_audio: Use QString::fromStdString() for converting audio device names This ensures that the proper codec will always be used no matter what. It also avoids relying on ASCII conversions. --- src/yuzu/configuration/configure_audio.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp index f11aaa1721..ce6b5d9e41 100644 --- a/src/yuzu/configuration/configure_audio.cpp +++ b/src/yuzu/configuration/configure_audio.cpp @@ -84,10 +84,10 @@ void ConfigureAudio::updateAudioDevices(int sink_index) { ui->audio_device_combo_box->clear(); ui->audio_device_combo_box->addItem(AudioCore::auto_device_name); - std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); - std::vector device_list = AudioCore::GetSinkDetails(sink_id).list_devices(); + const std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); + const std::vector device_list = AudioCore::GetSinkDetails(sink_id).list_devices(); for (const auto& device : device_list) { - ui->audio_device_combo_box->addItem(device.c_str()); + ui->audio_device_combo_box->addItem(QString::fromStdString(device)); } } From 1c7c798e9e3c4d826624b9e1f8932f3eba64a587 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 2 Oct 2018 20:17:14 -0400 Subject: [PATCH 3/3] configure_audio: Move combo box index setting to their own functions Keeps the individual behaviors in their own functions, and cleanly separate. We can also do a little better by converting the relevant IDs within the core to a QString only once, instead of converting every string into a std::string. --- src/yuzu/configuration/configure_audio.cpp | 34 +++++++++++++++------- src/yuzu/configuration/configure_audio.h | 2 ++ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp index ce6b5d9e41..eb1da0f9eb 100644 --- a/src/yuzu/configuration/configure_audio.cpp +++ b/src/yuzu/configuration/configure_audio.cpp @@ -36,32 +36,44 @@ ConfigureAudio::ConfigureAudio(QWidget* parent) ConfigureAudio::~ConfigureAudio() = default; void ConfigureAudio::setConfiguration() { + setOutputSinkFromSinkID(); + + // The device list cannot be pre-populated (nor listed) until the output sink is known. + updateAudioDevices(ui->output_sink_combo_box->currentIndex()); + + setAudioDeviceFromDeviceID(); + + ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); + ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); + setVolumeIndicatorText(ui->volume_slider->sliderPosition()); +} + +void ConfigureAudio::setOutputSinkFromSinkID() { int new_sink_index = 0; + + const QString sink_id = QString::fromStdString(Settings::values.sink_id); for (int index = 0; index < ui->output_sink_combo_box->count(); index++) { - if (ui->output_sink_combo_box->itemText(index).toStdString() == Settings::values.sink_id) { + if (ui->output_sink_combo_box->itemText(index) == sink_id) { new_sink_index = index; break; } } + ui->output_sink_combo_box->setCurrentIndex(new_sink_index); +} - ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); - - // The device list cannot be pre-populated (nor listed) until the output sink is known. - updateAudioDevices(new_sink_index); - +void ConfigureAudio::setAudioDeviceFromDeviceID() { int new_device_index = -1; + + const QString device_id = QString::fromStdString(Settings::values.audio_device_id); for (int index = 0; index < ui->audio_device_combo_box->count(); index++) { - if (ui->audio_device_combo_box->itemText(index).toStdString() == - Settings::values.audio_device_id) { + if (ui->audio_device_combo_box->itemText(index) == device_id) { new_device_index = index; break; } } - ui->audio_device_combo_box->setCurrentIndex(new_device_index); - ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); - setVolumeIndicatorText(ui->volume_slider->sliderPosition()); + ui->audio_device_combo_box->setCurrentIndex(new_device_index); } void ConfigureAudio::setVolumeIndicatorText(int percentage) { diff --git a/src/yuzu/configuration/configure_audio.h b/src/yuzu/configuration/configure_audio.h index 069e79d561..207f9dfb35 100644 --- a/src/yuzu/configuration/configure_audio.h +++ b/src/yuzu/configuration/configure_audio.h @@ -26,6 +26,8 @@ public slots: private: void setConfiguration(); + void setOutputSinkFromSinkID(); + void setAudioDeviceFromDeviceID(); void setVolumeIndicatorText(int percentage); std::unique_ptr ui;