From f2f8301ad86ff4b3b77f5608d5e1a0de6f041f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=B6glinger-Stelzer?= Date: Tue, 1 Sep 2020 15:16:17 +0200 Subject: [PATCH] Fixed dangling device if wait call failed --- sdk/src/ViGEmClient.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sdk/src/ViGEmClient.cpp b/sdk/src/ViGEmClient.cpp index d7361b8..2eb3571 100644 --- a/sdk/src/ViGEmClient.cpp +++ b/sdk/src/ViGEmClient.cpp @@ -436,7 +436,7 @@ VIGEM_ERROR vigem_target_add(PVIGEM_CLIENT vigem, PVIGEM_TARGET target) } // - // TODO: this is mad stupid, redesign + // TODO: this is mad stupid, redesign, so that the bus fills the assigned slot // for (target->SerialNo = 1; target->SerialNo <= VIGEM_TARGETS_MAX; target->SerialNo++) { @@ -478,6 +478,12 @@ VIGEM_ERROR vigem_target_add(PVIGEM_CLIENT vigem, PVIGEM_TARGET target) error = VIGEM_ERROR_NONE; break; } + + // + // Don't leave device connected if the wait call failed + // + error = vigem_target_remove(vigem, target); + break; } } } while (false);