Module: wine Branch: master Commit: a1129ed23b8c95898132400a20407a5ab43ada1d URL: https://gitlab.winehq.org/wine/wine/-/commit/a1129ed23b8c95898132400a20407a5...
Author: Etaash Mathamsetty etaash.mathamsetty@gmail.com Date: Sun Dec 10 15:36:26 2023 -0500
xinput: Reimplement XInputGetCapabilities.
---
dlls/xinput1_3/main.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-)
diff --git a/dlls/xinput1_3/main.c b/dlls/xinput1_3/main.c index 3f0cedab5cb..28f57e93bce 100644 --- a/dlls/xinput1_3/main.c +++ b/dlls/xinput1_3/main.c @@ -1086,25 +1086,14 @@ DWORD WINAPI DECLSPEC_HOTPATCH XInputGetKeystroke(DWORD index, DWORD reserved, P
DWORD WINAPI DECLSPEC_HOTPATCH XInputGetCapabilities(DWORD index, DWORD flags, XINPUT_CAPABILITIES *capabilities) { - TRACE("index %lu, flags %#lx, capabilities %p.\n", index, flags, capabilities); - - start_update_thread(); - - if (index >= XUSER_MAX_COUNT) return ERROR_BAD_ARGUMENTS; - - if (!controller_lock(&controllers[index])) return ERROR_DEVICE_NOT_CONNECTED; - - if (flags & XINPUT_FLAG_GAMEPAD && controllers[index].caps.SubType != XINPUT_DEVSUBTYPE_GAMEPAD) - { - controller_unlock(&controllers[index]); - return ERROR_DEVICE_NOT_CONNECTED; - } + XINPUT_CAPABILITIES_EX caps_ex; + DWORD ret;
- memcpy(capabilities, &controllers[index].caps, sizeof(*capabilities)); + ret = XInputGetCapabilitiesEx(1, index, flags, &caps_ex);
- controller_unlock(&controllers[index]); + if (!ret) *capabilities = caps_ex.Capabilities;
- return ERROR_SUCCESS; + return ret; }
DWORD WINAPI DECLSPEC_HOTPATCH XInputGetDSoundAudioDeviceGuids(DWORD index, GUID *render_guid, GUID *capture_guid)