mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
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:
@ -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)
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
std::string GetSource() const override;
|
||||
int GetSortPriority() const override;
|
||||
|
||||
void UpdateInput() override;
|
||||
Core::DeviceRemoval UpdateInput() override;
|
||||
|
||||
private:
|
||||
using Clock = std::chrono::steady_clock;
|
||||
|
Reference in New Issue
Block a user