hid: Cleanup Windows joystick blacklist code, to make additions easier.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
diff --git a/src/hidapi/windows/hid.c b/src/hidapi/windows/hid.c
index d0aef74..8ffd2f2 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)