From 85d97410d403ea2664474605aabb03f10c271fe2 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 6 May 2020 03:13:44 -0400 Subject: [PATCH] hid: Cleanup Windows joystick blacklist code, to make additions easier. --- src/hidapi/windows/hid.c | 43 +++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/hidapi/windows/hid.c b/src/hidapi/windows/hid.c index d0aef74256809..8ffd2f29cb619 100644 --- a/src/hidapi/windows/hid.c +++ b/src/hidapi/windows/hid.c @@ -314,31 +314,24 @@ int HID_API_EXPORT hid_exit(void) int hid_blacklist(unsigned short vendor_id, unsigned short product_id) { - // Corsair Gaming keyboard - Causes deadlock when asking for device details - if ( vendor_id == 0x1B1C && product_id == 0x1B3D ) - { - return 1; - } - - // Razer Lycosa Gaming keyboard - Causes deadlock when asking for device details - if ( vendor_id == 0x1532 && product_id == 0x0109 ) - { - return 1; - } - - // Razer Arctosa Gaming keyboard - Causes deadlock when asking for device details - if ( vendor_id == 0x1532 && product_id == 0x010B ) - { - return 1; - } - - // SPEEDLINK COMPETITION PRO - turns into an Android controller when enumerated - if ( vendor_id == 0x0738 && product_id == 0x2217 ) - { - return 1; - } - - return 0; + size_t i; + static const struct { unsigned short vid; unsigned short pid; } known_bad[] = { + /* Causes deadlock when asking for device details... */ + { 0x1B1C, 0x1B3D }, /* Corsair Gaming keyboard */ + { 0x1532, 0x0109 }, /* Razer Lycosa Gaming keyboard */ + { 0x1532, 0x010B }, /* Razer Arctosa Gaming keyboard */ + + /* Turns into an Android controller when enumerated... */ + { 0x0738, 0x2217 } /* SPEEDLINK COMPETITION PRO */ + }; + + for (i = 0; i < SDL_arraysize(known_bad); i++) { + if ((vendor_id == known_bad[i].vid) && (product_id == known_bad[i].pid)) { + return 1; + } + } + + return 0; } struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate(unsigned short vendor_id, unsigned short product_id)