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.
master
Lioncash 2018-10-02 20:17:14 +07:00
parent 57e47bae32
commit 1c7c798e9e
2 changed files with 25 additions and 11 deletions

@ -36,32 +36,44 @@ ConfigureAudio::ConfigureAudio(QWidget* parent)
ConfigureAudio::~ConfigureAudio() = default; ConfigureAudio::~ConfigureAudio() = default;
void ConfigureAudio::setConfiguration() { 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; 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++) { 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; new_sink_index = index;
break; break;
} }
} }
ui->output_sink_combo_box->setCurrentIndex(new_sink_index); ui->output_sink_combo_box->setCurrentIndex(new_sink_index);
}
ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); void ConfigureAudio::setAudioDeviceFromDeviceID() {
// The device list cannot be pre-populated (nor listed) until the output sink is known.
updateAudioDevices(new_sink_index);
int new_device_index = -1; 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++) { for (int index = 0; index < ui->audio_device_combo_box->count(); index++) {
if (ui->audio_device_combo_box->itemText(index).toStdString() == if (ui->audio_device_combo_box->itemText(index) == device_id) {
Settings::values.audio_device_id) {
new_device_index = index; new_device_index = index;
break; break;
} }
} }
ui->audio_device_combo_box->setCurrentIndex(new_device_index);
ui->volume_slider->setValue(Settings::values.volume * ui->volume_slider->maximum()); ui->audio_device_combo_box->setCurrentIndex(new_device_index);
setVolumeIndicatorText(ui->volume_slider->sliderPosition());
} }
void ConfigureAudio::setVolumeIndicatorText(int percentage) { void ConfigureAudio::setVolumeIndicatorText(int percentage) {

@ -26,6 +26,8 @@ public slots:
private: private:
void setConfiguration(); void setConfiguration();
void setOutputSinkFromSinkID();
void setAudioDeviceFromDeviceID();
void setVolumeIndicatorText(int percentage); void setVolumeIndicatorText(int percentage);
std::unique_ptr<Ui::ConfigureAudio> ui; std::unique_ptr<Ui::ConfigureAudio> ui;