summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar MerryMage2016-08-31 16:59:37 +0100
committerGravatar MerryMage2016-08-31 16:59:37 +0100
commitdc3f6a34f8e3458982f3ad646a54bbeac4b918e2 (patch)
tree547ec290bfa04497c63f10603d801e473a0b1f84
parentaudio_core: Add EnableStretching to interface so that one can toggle stretchi... (diff)
downloadyuzu-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.cpp1
-rw-r--r--src/citra/default_ini.h6
-rw-r--r--src/citra_qt/config.cpp2
-rw-r--r--src/citra_qt/configure_audio.cpp3
-rw-r--r--src/citra_qt/configure_audio.ui10
-rw-r--r--src/core/settings.cpp1
-rw-r--r--src/core/settings.h1
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)
67output_engine = 67output_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
73enable_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
41void ConfigureAudio::applyConfiguration() { 43void 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;