From 419909f4187d66032f167800585a038b5e7b656f Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Bernon?= Date: Fri, 6 Aug 2021 17:08:59 +0200 Subject: [PATCH] xinput1_3: Move enabled flag to struct xinput_controller. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/xinput1_3/main.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/dlls/xinput1_3/main.c b/dlls/xinput1_3/main.c index d5ddc1f38c8..248f8f796e5 100644 --- a/dlls/xinput1_3/main.c +++ b/dlls/xinput1_3/main.c @@ -56,6 +56,7 @@ struct xinput_controller XINPUT_STATE state; XINPUT_GAMEPAD last_keystroke; XINPUT_VIBRATION vibration; + BOOL enabled; }; /* xinput_crit guards controllers array */ @@ -115,7 +116,6 @@ struct hid_platform_private HANDLE device; WCHAR device_path[MAX_PATH]; - BOOL enabled; char *input_report_buf[2]; char *output_report_buf; @@ -251,7 +251,7 @@ static DWORD HID_set_state(struct xinput_controller *device, XINPUT_VIBRATION *s device->vibration.wLeftMotorSpeed = state->wLeftMotorSpeed; device->vibration.wRightMotorSpeed = state->wRightMotorSpeed; - if (private->enabled) + if (device->enabled) { memset(output_report_buf, 0, output_report_len); output_report_buf[0] = /* report id */ 0; @@ -274,22 +274,20 @@ static DWORD HID_set_state(struct xinput_controller *device, XINPUT_VIBRATION *s static void controller_enable(struct xinput_controller *controller) { - struct hid_platform_private *private = controller->platform_private; XINPUT_VIBRATION state = controller->vibration; - if (private->enabled) return; + if (controller->enabled) return; if (controller->caps.Flags & XINPUT_CAPS_FFB_SUPPORTED) HID_set_state(controller, &state); - private->enabled = TRUE; + controller->enabled = TRUE; } static void controller_disable(struct xinput_controller *controller) { - struct hid_platform_private *private = controller->platform_private; XINPUT_VIBRATION state = {0}; - if (!private->enabled) return; + if (!controller->enabled) return; if (controller->caps.Flags & XINPUT_CAPS_FFB_SUPPORTED) HID_set_state(controller, &state); - private->enabled = FALSE; + controller->enabled = FALSE; } static BOOL init_controller(struct xinput_controller *controller, PHIDP_PREPARSED_DATA preparsed, @@ -309,10 +307,10 @@ static BOOL init_controller(struct xinput_controller *controller, PHIDP_PREPARSE if (!(private->input_report_buf[1] = calloc(1, private->caps.InputReportByteLength))) goto failed; if (!(private->output_report_buf = calloc(1, private->caps.OutputReportByteLength))) goto failed; lstrcpynW(private->device_path, device_path, MAX_PATH); - private->enabled = FALSE; memset(&controller->state, 0, sizeof(controller->state)); memset(&controller->vibration, 0, sizeof(controller->vibration)); + controller->enabled = FALSE; EnterCriticalSection(&controller->crit); controller->platform_private = private; @@ -447,7 +445,7 @@ static void HID_update_state(struct xinput_controller *device, XINPUT_STATE *sta ULONG button_length, hat_value; LONG value; - if (!private->enabled) return; + if (!device->enabled) return; if (!HidD_GetInputReport(private->device, report_buf[0], report_len)) { -- 2.11.4.GIT