mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-02 06:08:50 +00: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:
parent
e498759d14
commit
e456bef163
25 changed files with 125 additions and 58 deletions
|
@ -222,7 +222,7 @@ bool Joystick::IsValid() const
|
|||
return SUCCEEDED(m_device->Acquire());
|
||||
}
|
||||
|
||||
void Joystick::UpdateInput()
|
||||
Core::DeviceRemoval Joystick::UpdateInput()
|
||||
{
|
||||
HRESULT hr = 0;
|
||||
|
||||
|
@ -261,6 +261,8 @@ void Joystick::UpdateInput()
|
|||
// try reacquire if input lost
|
||||
if (DIERR_INPUTLOST == hr || DIERR_NOTACQUIRED == hr)
|
||||
m_device->Acquire();
|
||||
|
||||
return Core::DeviceRemoval::Keep;
|
||||
}
|
||||
|
||||
// get name
|
||||
|
|
|
@ -57,7 +57,7 @@ private:
|
|||
};
|
||||
|
||||
public:
|
||||
void UpdateInput() override;
|
||||
Core::DeviceRemoval UpdateInput() override;
|
||||
|
||||
Joystick(const LPDIRECTINPUTDEVICE8 device);
|
||||
~Joystick();
|
||||
|
|
|
@ -205,7 +205,7 @@ void KeyboardMouse::UpdateCursorInput()
|
|||
m_state_in.cursor.y = (ControlState(point.y) / win_height * 2 - 1) * window_scale.y;
|
||||
}
|
||||
|
||||
void KeyboardMouse::UpdateInput()
|
||||
Core::DeviceRemoval KeyboardMouse::UpdateInput()
|
||||
{
|
||||
UpdateCursorInput();
|
||||
|
||||
|
@ -254,6 +254,8 @@ void KeyboardMouse::UpdateInput()
|
|||
else
|
||||
INFO_LOG_FMT(CONTROLLERINTERFACE, "Keyboard device failed to re-acquire, we'll retry later");
|
||||
}
|
||||
|
||||
return Core::DeviceRemoval::Keep;
|
||||
}
|
||||
|
||||
std::string KeyboardMouse::GetName() const
|
||||
|
|
|
@ -94,7 +94,7 @@ private:
|
|||
};
|
||||
|
||||
public:
|
||||
void UpdateInput() override;
|
||||
Core::DeviceRemoval UpdateInput() override;
|
||||
|
||||
KeyboardMouse(const LPDIRECTINPUTDEVICE8 kb_device, const LPDIRECTINPUTDEVICE8 mo_device);
|
||||
~KeyboardMouse();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue