mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-28 09:59:32 -06:00
Merge pull request #13434 from JosJuice/android-non-blocking-input-detection
Android: Don't use separate thread for MotionAlertDialog
This commit is contained in:
@ -335,29 +335,6 @@ bool DeviceContainer::HasConnectedDevice(const DeviceQualifier& qualifier) const
|
||||
return device != nullptr && device->IsValid();
|
||||
}
|
||||
|
||||
// Wait for inputs on supplied devices.
|
||||
// Inputs are only considered if they are first seen in a neutral state.
|
||||
// This is useful for crazy flightsticks that have certain buttons that are always held down
|
||||
// and also properly handles detection when using "FullAnalogSurface" inputs.
|
||||
// Multiple detections are returned until the various timeouts have been reached.
|
||||
auto DeviceContainer::DetectInput(const std::vector<std::string>& device_strings,
|
||||
std::chrono::milliseconds initial_wait,
|
||||
std::chrono::milliseconds confirmation_wait,
|
||||
std::chrono::milliseconds maximum_wait) const
|
||||
-> std::vector<InputDetection>
|
||||
{
|
||||
InputDetector input_detector;
|
||||
input_detector.Start(*this, device_strings);
|
||||
|
||||
while (!input_detector.IsComplete())
|
||||
{
|
||||
Common::SleepCurrentThread(10);
|
||||
input_detector.Update(initial_wait, confirmation_wait, maximum_wait);
|
||||
}
|
||||
|
||||
return input_detector.TakeResults();
|
||||
}
|
||||
|
||||
struct InputDetector::Impl
|
||||
{
|
||||
struct InputState
|
||||
|
@ -230,20 +230,20 @@ public:
|
||||
|
||||
bool HasConnectedDevice(const DeviceQualifier& qualifier) const;
|
||||
|
||||
std::vector<InputDetection> DetectInput(const std::vector<std::string>& device_strings,
|
||||
std::chrono::milliseconds initial_wait,
|
||||
std::chrono::milliseconds confirmation_wait,
|
||||
std::chrono::milliseconds maximum_wait) const;
|
||||
|
||||
std::recursive_mutex& GetDevicesMutex() const { return m_devices_mutex; }
|
||||
|
||||
protected:
|
||||
// Exclusively needed when reading/writing the "m_devices" array.
|
||||
// Not needed when individually readring/writing a single device ptr.
|
||||
// Not needed when individually reading/writing a single device ptr.
|
||||
mutable std::recursive_mutex m_devices_mutex;
|
||||
std::vector<std::shared_ptr<Device>> m_devices;
|
||||
};
|
||||
|
||||
// Wait for inputs on supplied devices.
|
||||
// Inputs are only considered if they are first seen in a neutral state.
|
||||
// This is useful for wacky flight sticks that have certain buttons that are always held down
|
||||
// and also properly handles detection when using "FullAnalogSurface" inputs.
|
||||
// Multiple detections are returned until the various timeouts have been reached.
|
||||
class InputDetector
|
||||
{
|
||||
public:
|
||||
|
Reference in New Issue
Block a user