Send LI_CTYPE_STEAM for known Steam Controllers

This commit is contained in:
Cameron Gutman
2026-08-18 22:26:07 -05:00
parent 256022d3d6
commit d2f6990be6
2 changed files with 27 additions and 2 deletions
+25
View File
@@ -700,10 +700,35 @@ void SdlInputHandler::handleControllerDeviceEvent(SDL_ControllerDeviceEvent* eve
#endif
type = LI_CTYPE_NINTENDO;
break;
default:
// These Steam Controller VID/PID combos come from SDL's controller_list.h
// TODO: Use SDL_GAMEPAD_TYPE_STEAM on SDL 3.6+
if (vendorId == 0x28de) {
switch (productId) {
case 0x1101:
case 0x1102:
case 0x1105:
case 0x1106:
case 0x1142:
case 0x1201:
case 0x1202:
case 0x1205:
case 0x1302:
case 0x1303:
case 0x1304:
case 0x1305:
type = LI_CTYPE_STEAM;
break;
default:
type = LI_CTYPE_UNKNOWN;
break;
}
}
else {
type = LI_CTYPE_UNKNOWN;
}
break;
}
// If this is a PlayStation controller that doesn't have a touchpad button mapped,
// we'll allow the Select+PS button combo to act as the touchpad.