|
@@ -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)
|