diff options
| author | 2016-08-31 16:59:37 +0100 | |
|---|---|---|
| committer | 2016-08-31 16:59:37 +0100 | |
| commit | dc3f6a34f8e3458982f3ad646a54bbeac4b918e2 (patch) | |
| tree | 547ec290bfa04497c63f10603d801e473a0b1f84 | |
| parent | audio_core: Add EnableStretching to interface so that one can toggle stretchi... (diff) | |
| download | yuzu-dc3f6a34f8e3458982f3ad646a54bbeac4b918e2.tar.gz yuzu-dc3f6a34f8e3458982f3ad646a54bbeac4b918e2.tar.xz yuzu-dc3f6a34f8e3458982f3ad646a54bbeac4b918e2.zip | |
configure_audio: User-configuratble option to enable/disable audio stretching
| -rw-r--r-- | src/citra/config.cpp | 1 | ||||
| -rw-r--r-- | src/citra/default_ini.h | 6 | ||||
| -rw-r--r-- | src/citra_qt/config.cpp | 2 | ||||
| -rw-r--r-- | src/citra_qt/configure_audio.cpp | 3 | ||||
| -rw-r--r-- | src/citra_qt/configure_audio.ui | 10 | ||||
| -rw-r--r-- | src/core/settings.cpp | 1 | ||||
| -rw-r--r-- | src/core/settings.h | 1 |
7 files changed, 24 insertions, 0 deletions
diff --git a/src/citra/config.cpp b/src/citra/config.cpp index e832ec58d..f48386b9c 100644 --- a/src/citra/config.cpp +++ b/src/citra/config.cpp | |||
| @@ -78,6 +78,7 @@ void Config::ReadValues() { | |||
| 78 | 78 | ||
| 79 | // Audio | 79 | // Audio |
| 80 | Settings::values.sink_id = sdl2_config->Get("Audio", "output_engine", "auto"); | 80 | Settings::values.sink_id = sdl2_config->Get("Audio", "output_engine", "auto"); |
| 81 | Settings::values.enable_audio_stretching = sdl2_config->GetBoolean("Audio", "enable_audio_stretching", true); | ||
| 81 | 82 | ||
| 82 | // Data Storage | 83 | // Data Storage |
| 83 | Settings::values.use_virtual_sd = sdl2_config->GetBoolean("Data Storage", "use_virtual_sd", true); | 84 | Settings::values.use_virtual_sd = sdl2_config->GetBoolean("Data Storage", "use_virtual_sd", true); |
diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h index 6249ef9e2..5b8ca12a0 100644 --- a/src/citra/default_ini.h +++ b/src/citra/default_ini.h | |||
| @@ -66,6 +66,12 @@ bg_green = | |||
| 66 | # auto (default): Auto-select, null: No audio output, sdl2: SDL2 (if available) | 66 | # auto (default): Auto-select, null: No audio output, sdl2: SDL2 (if available) |
| 67 | output_engine = | 67 | output_engine = |
| 68 | 68 | ||
| 69 | # Whether or not to enable the audio-stretching post-processing effect. | ||
| 70 | # This effect adjusts audio speed to match emulation speed and helps prevent audio stutter, | ||
| 71 | # at the cost of increasing audio latency. | ||
| 72 | # 0: No, 1 (default): Yes | ||
| 73 | enable_audio_stretching = | ||
| 74 | |||
| 69 | [Data Storage] | 75 | [Data Storage] |
| 70 | # Whether to create a virtual SD card. | 76 | # Whether to create a virtual SD card. |
| 71 | # 1 (default): Yes, 0: No | 77 | # 1 (default): Yes, 0: No |
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp index 93c6a6e41..ff3bfe1bd 100644 --- a/src/citra_qt/config.cpp +++ b/src/citra_qt/config.cpp | |||
| @@ -56,6 +56,7 @@ void Config::ReadValues() { | |||
| 56 | 56 | ||
| 57 | qt_config->beginGroup("Audio"); | 57 | qt_config->beginGroup("Audio"); |
| 58 | Settings::values.sink_id = qt_config->value("output_engine", "auto").toString().toStdString(); | 58 | Settings::values.sink_id = qt_config->value("output_engine", "auto").toString().toStdString(); |
| 59 | Settings::values.enable_audio_stretching = qt_config->value("enable_audio_stretching", true).toBool(); | ||
| 59 | qt_config->endGroup(); | 60 | qt_config->endGroup(); |
| 60 | 61 | ||
| 61 | qt_config->beginGroup("Data Storage"); | 62 | qt_config->beginGroup("Data Storage"); |
| @@ -148,6 +149,7 @@ void Config::SaveValues() { | |||
| 148 | 149 | ||
| 149 | qt_config->beginGroup("Audio"); | 150 | qt_config->beginGroup("Audio"); |
| 150 | qt_config->setValue("output_engine", QString::fromStdString(Settings::values.sink_id)); | 151 | qt_config->setValue("output_engine", QString::fromStdString(Settings::values.sink_id)); |
| 152 | qt_config->setValue("enable_audio_stretching", Settings::values.enable_audio_stretching); | ||
| 151 | qt_config->endGroup(); | 153 | qt_config->endGroup(); |
| 152 | 154 | ||
| 153 | qt_config->beginGroup("Data Storage"); | 155 | qt_config->beginGroup("Data Storage"); |
diff --git a/src/citra_qt/configure_audio.cpp b/src/citra_qt/configure_audio.cpp index cedfa2f2a..7100be158 100644 --- a/src/citra_qt/configure_audio.cpp +++ b/src/citra_qt/configure_audio.cpp | |||
| @@ -36,9 +36,12 @@ void ConfigureAudio::setConfiguration() { | |||
| 36 | } | 36 | } |
| 37 | } | 37 | } |
| 38 | ui->output_sink_combo_box->setCurrentIndex(new_sink_index); | 38 | ui->output_sink_combo_box->setCurrentIndex(new_sink_index); |
| 39 | |||
| 40 | ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); | ||
| 39 | } | 41 | } |
| 40 | 42 | ||
| 41 | void ConfigureAudio::applyConfiguration() { | 43 | void ConfigureAudio::applyConfiguration() { |
| 42 | Settings::values.sink_id = ui->output_sink_combo_box->itemText(ui->output_sink_combo_box->currentIndex()).toStdString(); | 44 | Settings::values.sink_id = ui->output_sink_combo_box->itemText(ui->output_sink_combo_box->currentIndex()).toStdString(); |
| 45 | Settings::values.enable_audio_stretching = ui->toggle_audio_stretching->isChecked(); | ||
| 43 | Settings::Apply(); | 46 | Settings::Apply(); |
| 44 | } | 47 | } |
diff --git a/src/citra_qt/configure_audio.ui b/src/citra_qt/configure_audio.ui index d7f6946ca..3e2b4635f 100644 --- a/src/citra_qt/configure_audio.ui +++ b/src/citra_qt/configure_audio.ui | |||
| @@ -25,6 +25,16 @@ | |||
| 25 | </item> | 25 | </item> |
| 26 | </layout> | 26 | </layout> |
| 27 | </item> | 27 | </item> |
| 28 | <item> | ||
| 29 | <widget class="QCheckBox" name="toggle_audio_stretching"> | ||
| 30 | <property name="text"> | ||
| 31 | <string>Enable audio stretching</string> | ||
| 32 | </property> | ||
| 33 | <property name="toolTip"> | ||
| 34 | <string>This post-processing effect adjusts audio speed to match emulation speed and helps prevent audio stutter. This however increases audio latency.</string> | ||
| 35 | </property> | ||
| 36 | </widget> | ||
| 37 | </item> | ||
| 28 | </layout> | 38 | </layout> |
| 29 | </widget> | 39 | </widget> |
| 30 | </item> | 40 | </item> |
diff --git a/src/core/settings.cpp b/src/core/settings.cpp index 77261eafe..1b6733a79 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp | |||
| @@ -24,6 +24,7 @@ void Apply() { | |||
| 24 | VideoCore::g_scaled_resolution_enabled = values.use_scaled_resolution; | 24 | VideoCore::g_scaled_resolution_enabled = values.use_scaled_resolution; |
| 25 | 25 | ||
| 26 | AudioCore::SelectSink(values.sink_id); | 26 | AudioCore::SelectSink(values.sink_id); |
| 27 | AudioCore::EnableStretching(values.enable_audio_stretching); | ||
| 27 | 28 | ||
| 28 | } | 29 | } |
| 29 | 30 | ||
diff --git a/src/core/settings.h b/src/core/settings.h index f95e62390..0962a4ecf 100644 --- a/src/core/settings.h +++ b/src/core/settings.h | |||
| @@ -81,6 +81,7 @@ struct Values { | |||
| 81 | 81 | ||
| 82 | // Audio | 82 | // Audio |
| 83 | std::string sink_id; | 83 | std::string sink_id; |
| 84 | bool enable_audio_stretching; | ||
| 84 | 85 | ||
| 85 | // Debugging | 86 | // Debugging |
| 86 | bool use_gdbstub; | 87 | bool use_gdbstub; |