Input: Improve Controller Interface devices threading

This specific issue was already addressed by https://github.com/dolphin-emu/dolphin/pull/11635
though I felt like there was something more we could do, and wasn't too happy with the
likelihood of devices update calls being skipped (due to `m_devices_population_mutex` being locked).
This commit is contained in:
Filoppi
2023-05-24 22:58:30 +03:00
parent e498759d14
commit e456bef163
25 changed files with 125 additions and 58 deletions

View File

@ -1395,14 +1395,10 @@ void Device::UpdateRumble()
QueueReport(OutputReportRumble{});
}
void Device::UpdateInput()
Core::DeviceRemoval Device::UpdateInput()
{
if (!m_wiimote->IsConnected())
{
g_controller_interface.RemoveDevice(
[this](const Core::Device* device) { return device == this; });
return;
}
return Core::DeviceRemoval::Remove;
UpdateRumble();
RunTasks();
@ -1413,6 +1409,8 @@ void Device::UpdateInput()
ProcessInputReport(report);
RunTasks();
}
return Core::DeviceRemoval::Keep;
}
void Device::MotionPlusState::ProcessData(const WiimoteEmu::MotionPlus::DataFormat& data)