From 771de64cecd6d8162329d8c657da2369dcb1dd83 Mon Sep 17 00:00:00 2001 From: Peter Repukat Date: Sun, 25 Sep 2022 23:11:49 +0200 Subject: [PATCH] GlosSITarget: Allow live controller type switching from overlay --- GlosSITarget/InputRedirector.cpp | 11 ++++++++--- GlosSITarget/InputRedirector.h | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/GlosSITarget/InputRedirector.cpp b/GlosSITarget/InputRedirector.cpp index 5f64de3..034d1f5 100644 --- a/GlosSITarget/InputRedirector.cpp +++ b/GlosSITarget/InputRedirector.cpp @@ -65,6 +65,11 @@ void InputRedirector::run() countcopy = 0; } Settings::controller.maxControllers = countcopy; + + if (ImGui::Checkbox("Emulate DS4 (instead of Xbox360 controller)", &Settings::controller.emulateDS4)) { + controller_settings_changed_ = true; + } + bool enable_rumbe_copy = enable_rumble_; ImGui::Checkbox("Enable Rumble", &enable_rumbe_copy); enable_rumble_ = enable_rumbe_copy; @@ -78,7 +83,7 @@ void InputRedirector::run() bool use_real_copy = Settings::devices.realDeviceIds; ImGui::Checkbox("Use real USB-IDs", &use_real_copy); if (Settings::devices.realDeviceIds != use_real_copy) { - use_real_vid_pid_changed_ = true; + controller_settings_changed_ = true; } Settings::devices.realDeviceIds = use_real_copy; } @@ -107,9 +112,9 @@ void InputRedirector::runLoop() } while (run_) { #ifdef _WIN32 - if (use_real_vid_pid_changed_) { + if (controller_settings_changed_) { // unplug all. - use_real_vid_pid_changed_ = false; + controller_settings_changed_ = false; for (int i = 0; i < XUSER_MAX_COUNT; i++) { unplugVigemPad(i); } diff --git a/GlosSITarget/InputRedirector.h b/GlosSITarget/InputRedirector.h index 945a7d6..875b155 100644 --- a/GlosSITarget/InputRedirector.h +++ b/GlosSITarget/InputRedirector.h @@ -42,7 +42,7 @@ class InputRedirector { // variables for overlay element; run in different thread static inline std::atomic enable_rumble_ = true; - static inline std::atomic use_real_vid_pid_changed_ = false; + static inline std::atomic controller_settings_changed_ = false; bool vigem_connected_;