aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn <john@eden-emu.dev>2026-10-18 00:17:28 +0200
committercrueter <crueter@eden-emu.dev>2026-10-18 00:17:28 +0200
commitde7e6e01d43e8cf2ec193d74fa053b0d7949955f (patch)
tree8d7c5885fab5129959c426982d31ce22b8191383
parente0d47f2790e3f758fa2188926a0bb2f56af6b310 (diff)
Revert [input_common/joycon] Enumerate SDL devices iff SDL signals change (#4486) (#4545)
Due to causing the platform windows to crash when a controller is activated. - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md). - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Co-authored-by: Your Name <John@John.localdomain> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4545 Reviewed-by: lizzie <lizzie@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com>
-rw-r--r--src/input_common/drivers/joycon.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/input_common/drivers/joycon.cpp b/src/input_common/drivers/joycon.cpp
index 047e7eb6d8..ded92d3f1d 100644
--- a/src/input_common/drivers/joycon.cpp
+++ b/src/input_common/drivers/joycon.cpp
@@ -83,21 +83,20 @@ void Joycons::ScanThread(std::stop_token stop_token) {
constexpr u16 nintendo_vendor_id = 0x057e;
Common::SetCurrentThreadName("JoyconScanThread");
- auto last_ret = 0u;
do {
- auto ret = SDL_hid_device_change_count();
- if (last_ret == 0u || last_ret != ret) {
- last_ret = ret;
- SDL_hid_device_info* devs = SDL_hid_enumerate(nintendo_vendor_id, 0x0);
- for (auto* cur_dev = devs; cur_dev; cur_dev = cur_dev->next) {
- if (IsDeviceNew(cur_dev)) {
- LOG_DEBUG(Input, "Device Found,type : {:04X} {:04X}", cur_dev->vendor_id, cur_dev->product_id);
- RegisterNewDevice(cur_dev);
- }
- cur_dev = cur_dev->next;
+ SDL_hid_device_info* devs = SDL_hid_enumerate(nintendo_vendor_id, 0x0);
+ SDL_hid_device_info* cur_dev = devs;
+
+ while (cur_dev) {
+ if (IsDeviceNew(cur_dev)) {
+ LOG_DEBUG(Input, "Device Found,type : {:04X} {:04X}", cur_dev->vendor_id,
+ cur_dev->product_id);
+ RegisterNewDevice(cur_dev);
}
- SDL_hid_free_enumeration(devs);
+ cur_dev = cur_dev->next;
}
+
+ SDL_hid_free_enumeration(devs);
} while (Common::StoppableTimedWait(stop_token, std::chrono::seconds{5}));
}