mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-04 00:46:25 +00:00
Added support for the Kinvoca Joy-Cons
These report their VID/PID as a Nintendo Switch Pro controller, but they are actually left/right Joy-Cons. We'll fix up the joystick GUID so applications can handle them appropriately.
This commit is contained in:
@@ -712,6 +712,8 @@ HIDAPI_CreateCombinedJoyCons()
|
||||
}
|
||||
|
||||
for (device = SDL_HIDAPI_devices; device; device = device->next) {
|
||||
Uint16 vendor, product;
|
||||
|
||||
if (!device->driver) {
|
||||
/* Unsupported device */
|
||||
continue;
|
||||
@@ -721,15 +723,17 @@ HIDAPI_CreateCombinedJoyCons()
|
||||
continue;
|
||||
}
|
||||
|
||||
SDL_GetJoystickGUIDInfo(device->guid, &vendor, &product, NULL, NULL);
|
||||
|
||||
if (!joycons[0] &&
|
||||
(SDL_IsJoystickNintendoSwitchJoyConLeft(device->vendor_id, device->product_id) ||
|
||||
(SDL_IsJoystickNintendoSwitchJoyConGrip(device->vendor_id, device->product_id) &&
|
||||
(SDL_IsJoystickNintendoSwitchJoyConLeft(vendor, product) ||
|
||||
(SDL_IsJoystickNintendoSwitchJoyConGrip(vendor, product) &&
|
||||
SDL_strstr(device->name, "(L)") != NULL))) {
|
||||
joycons[0] = device;
|
||||
}
|
||||
if (!joycons[1] &&
|
||||
(SDL_IsJoystickNintendoSwitchJoyConRight(device->vendor_id, device->product_id) ||
|
||||
(SDL_IsJoystickNintendoSwitchJoyConGrip(device->vendor_id, device->product_id) &&
|
||||
(SDL_IsJoystickNintendoSwitchJoyConRight(vendor, product) ||
|
||||
(SDL_IsJoystickNintendoSwitchJoyConGrip(vendor, product) &&
|
||||
SDL_strstr(device->name, "(R)") != NULL))) {
|
||||
joycons[1] = device;
|
||||
}
|
||||
|
Reference in New Issue
Block a user