btdrv-mitm: remove IsJoycon function and always check all official controller names instead

This commit is contained in:
ndeadly 2020-09-08 01:24:52 +02:00
parent 9f44f747f4
commit 41861b9d29
2 changed files with 5 additions and 11 deletions

View file

@ -39,6 +39,7 @@ namespace ams::controller {
}
ControllerType Identify(const BluetoothDevicesSettings *device) {
for (auto hwId : SwitchController::hardware_ids) {
if ( (device->vid == hwId.vid) && (device->pid == hwId.pid) ) {
return ControllerType_Switch;
@ -92,11 +93,10 @@ namespace ams::controller {
return ControllerType_Xiaomi;
}
}
// Handle the case where joycons have been assigned random hardware ids when paired via rails
if (IsJoyCon(device->name)) {
return ControllerType_Switch;;
}
// Check for third party switch controllers or official switch controllers that have been assigned garbage IDs
if (IsOfficialSwitchControllerName(device->name))
return ControllerType_Switch;
return ControllerType_Unknown;
}
@ -106,11 +106,6 @@ namespace ams::controller {
(((cod->cod[2] & 0x0f) == cod_minor_gamepad) || ((cod->cod[2] & 0x0f) == cod_minor_joystick));
}
bool IsJoyCon(const char *name) {
return std::strncmp(name, "Joy-Con (L)", sizeof(BluetoothName)) == 0 ||
std::strncmp(name, "Joy-Con (R)", sizeof(BluetoothName)) == 0;
}
bool IsOfficialSwitchControllerName(const char *name) {
return std::strncmp(name, "Joy-Con (L)", sizeof(BluetoothName)) == 0 ||
std::strncmp(name, "Joy-Con (R)", sizeof(BluetoothName)) == 0 ||

View file

@ -46,7 +46,6 @@ namespace ams::controller {
ControllerType Identify(const BluetoothDevicesSettings *device);
bool IsGamepad(const bluetooth::DeviceClass *cod);
bool IsJoyCon(const char *name);
bool IsOfficialSwitchControllerName(const char *name);
void AttachHandler(const bluetooth::Address *address);