aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_input.cpp
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2020-12-21 10:46:19 -0500
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-01-01 06:39:24 -0500
commit904ac1daec186a98c33f2e8ac140d919ca8fe0a7 (patch)
tree0c525192706039bd757264fdf0cf8b87d322ee7a /src/yuzu/configuration/configure_input.cpp
parentda07977db0b71e52f5870e3adf8c2fa0ada3c706 (diff)
configure_input: Modify controller connection delay
Increases the controller connection delay to 60ms and refactors it to attempt to disconnect all controllers prior to connecting all controllers in HID.
Diffstat (limited to 'src/yuzu/configuration/configure_input.cpp')
-rw-r--r--src/yuzu/configuration/configure_input.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/yuzu/configuration/configure_input.cpp b/src/yuzu/configuration/configure_input.cpp
index d9009091b8..567a36d9bc 100644
--- a/src/yuzu/configuration/configure_input.cpp
+++ b/src/yuzu/configuration/configure_input.cpp
@@ -4,6 +4,7 @@
#include <algorithm>
#include <memory>
+#include <thread>
#include <QSignalBlocker>
#include <QTimer>
@@ -181,8 +182,18 @@ QList<QWidget*> ConfigureInput::GetSubTabs() const {
}
void ConfigureInput::ApplyConfiguration() {
- for (auto controller : player_controllers) {
+ for (auto* controller : player_controllers) {
controller->ApplyConfiguration();
+ controller->TryDisconnectSelectedController();
+ }
+
+ // This emulates a delay between disconnecting and reconnecting controllers as some games
+ // do not respond to a change in controller type if it was instantaneous.
+ using namespace std::chrono_literals;
+ std::this_thread::sleep_for(60ms);
+
+ for (auto* controller : player_controllers) {
+ controller->TryConnectSelectedController();
}
advanced->ApplyConfiguration();