From 7032b41747a1f75d3d200d7dad06754d78106a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Thu, 16 Sep 2021 10:17:54 +0200 Subject: [PATCH] winebus.sys: Move is_xbox_gamepad to unixlib.c. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/winebus.sys/bus.h | 3 --- dlls/winebus.sys/main.c | 38 --------------------------------- dlls/winebus.sys/unix_private.h | 2 ++ dlls/winebus.sys/unixlib.c | 19 +++++++++++++++++ 4 files changed, 21 insertions(+), 41 deletions(-) diff --git a/dlls/winebus.sys/bus.h b/dlls/winebus.sys/bus.h index df53508d2c0..96503a8267f 100644 --- a/dlls/winebus.sys/bus.h +++ b/dlls/winebus.sys/bus.h @@ -27,7 +27,4 @@ #include "unixlib.h" -/* General Bus Functions */ -BOOL is_xbox_gamepad(WORD vid, WORD pid) DECLSPEC_HIDDEN; - extern HANDLE driver_key DECLSPEC_HIDDEN; diff --git a/dlls/winebus.sys/main.c b/dlls/winebus.sys/main.c index a80bd8a186e..f1b0430509a 100644 --- a/dlls/winebus.sys/main.c +++ b/dlls/winebus.sys/main.c @@ -57,31 +57,6 @@ __ASM_STDCALL_FUNC( wrap_fastcall_func1, 8, #endif -struct product_desc -{ - WORD vid; - WORD pid; -}; - -#define VID_MICROSOFT 0x045e - -static const struct product_desc XBOX_CONTROLLERS[] = -{ - {VID_MICROSOFT, 0x0202}, /* Xbox Controller */ - {VID_MICROSOFT, 0x0285}, /* Xbox Controller S */ - {VID_MICROSOFT, 0x0289}, /* Xbox Controller S */ - {VID_MICROSOFT, 0x028e}, /* Xbox360 Controller */ - {VID_MICROSOFT, 0x028f}, /* Xbox360 Wireless Controller */ - {VID_MICROSOFT, 0x02d1}, /* Xbox One Controller */ - {VID_MICROSOFT, 0x02dd}, /* Xbox One Controller (Covert Forces/Firmware 2015) */ - {VID_MICROSOFT, 0x02e0}, /* Xbox One X Controller */ - {VID_MICROSOFT, 0x02e3}, /* Xbox One Elite Controller */ - {VID_MICROSOFT, 0x02e6}, /* Wireless XBox Controller Dongle */ - {VID_MICROSOFT, 0x02ea}, /* Xbox One S Controller */ - {VID_MICROSOFT, 0x02fd}, /* Xbox One S Controller (Firmware 2017) */ - {VID_MICROSOFT, 0x0719}, /* Xbox 360 Wireless Adapter */ -}; - static DRIVER_OBJECT *driver_obj; static DEVICE_OBJECT *mouse_obj; @@ -1021,19 +996,6 @@ static NTSTATUS WINAPI hid_internal_dispatch(DEVICE_OBJECT *device, IRP *irp) return status; } -BOOL is_xbox_gamepad(WORD vid, WORD pid) -{ - int i; - - if (vid != VID_MICROSOFT) - return FALSE; - - for (i = 0; i < ARRAY_SIZE(XBOX_CONTROLLERS); i++) - if (pid == XBOX_CONTROLLERS[i].pid) return TRUE; - - return FALSE; -} - static NTSTATUS WINAPI driver_add_device(DRIVER_OBJECT *driver, DEVICE_OBJECT *pdo) { NTSTATUS ret; diff --git a/dlls/winebus.sys/unix_private.h b/dlls/winebus.sys/unix_private.h index f2af846473a..cdc2be9b318 100644 --- a/dlls/winebus.sys/unix_private.h +++ b/dlls/winebus.sys/unix_private.h @@ -89,4 +89,6 @@ extern BOOL hid_descriptor_add_axes(struct hid_descriptor *desc, BYTE count, USA extern BOOL hid_descriptor_add_haptics(struct hid_descriptor *desc) DECLSPEC_HIDDEN; +BOOL is_xbox_gamepad(WORD vid, WORD pid) DECLSPEC_HIDDEN; + #endif /* __WINEBUS_UNIX_PRIVATE_H */ diff --git a/dlls/winebus.sys/unixlib.c b/dlls/winebus.sys/unixlib.c index b6fcdf18ffe..57e81d3cba8 100644 --- a/dlls/winebus.sys/unixlib.c +++ b/dlls/winebus.sys/unixlib.c @@ -34,6 +34,25 @@ WINE_DEFAULT_DEBUG_CHANNEL(plugplay); +BOOL is_xbox_gamepad(WORD vid, WORD pid) +{ + if (vid != 0x045e) return FALSE; + if (pid == 0x0202) return TRUE; /* Xbox Controller */ + if (pid == 0x0285) return TRUE; /* Xbox Controller S */ + if (pid == 0x0289) return TRUE; /* Xbox Controller S */ + if (pid == 0x028e) return TRUE; /* Xbox360 Controller */ + if (pid == 0x028f) return TRUE; /* Xbox360 Wireless Controller */ + if (pid == 0x02d1) return TRUE; /* Xbox One Controller */ + if (pid == 0x02dd) return TRUE; /* Xbox One Controller (Covert Forces/Firmware 2015) */ + if (pid == 0x02e0) return TRUE; /* Xbox One X Controller */ + if (pid == 0x02e3) return TRUE; /* Xbox One Elite Controller */ + if (pid == 0x02e6) return TRUE; /* Wireless XBox Controller Dongle */ + if (pid == 0x02ea) return TRUE; /* Xbox One S Controller */ + if (pid == 0x02fd) return TRUE; /* Xbox One S Controller (Firmware 2017) */ + if (pid == 0x0719) return TRUE; /* Xbox 360 Wireless Adapter */ + return FALSE; +} + struct mouse_device { struct unix_device unix_device;