mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-05-19 17:42:40 +00:00
Merge #15
This commit is contained in:
parent
7d8fe0f105
commit
871da4e307
275 changed files with 33002 additions and 27474 deletions
|
@ -16,7 +16,6 @@
|
|||
#include "InputCommon/ControllerInterface/Xlib/XInput2.h"
|
||||
#endif
|
||||
#ifdef CIFACE_USE_OSX
|
||||
#include "InputCommon/ControllerInterface/OSX/OSX.h"
|
||||
#include "InputCommon/ControllerInterface/Quartz/Quartz.h"
|
||||
#endif
|
||||
#ifdef CIFACE_USE_SDL
|
||||
|
@ -34,6 +33,9 @@
|
|||
#ifdef CIFACE_USE_DUALSHOCKUDPCLIENT
|
||||
#include "InputCommon/ControllerInterface/DualShockUDPClient/DualShockUDPClient.h"
|
||||
#endif
|
||||
#ifdef CIFACE_USE_STEAMDECK
|
||||
#include "InputCommon/ControllerInterface/SteamDeck/SteamDeck.h"
|
||||
#endif
|
||||
|
||||
ControllerInterface g_controller_interface;
|
||||
|
||||
|
@ -61,7 +63,7 @@ void ControllerInterface::Initialize(const WindowSystemInfo& wsi)
|
|||
// nothing needed
|
||||
#endif
|
||||
#ifdef CIFACE_USE_OSX
|
||||
// nothing needed for OSX and Quartz
|
||||
// nothing needed for Quartz
|
||||
#endif
|
||||
#ifdef CIFACE_USE_SDL
|
||||
m_input_backends.emplace_back(ciface::SDL::CreateInputBackend(this));
|
||||
|
@ -78,6 +80,9 @@ void ControllerInterface::Initialize(const WindowSystemInfo& wsi)
|
|||
#ifdef CIFACE_USE_DUALSHOCKUDPCLIENT
|
||||
m_input_backends.emplace_back(ciface::DualShockUDPClient::CreateInputBackend(this));
|
||||
#endif
|
||||
#ifdef CIFACE_USE_STEAMDECK
|
||||
m_input_backends.emplace_back(ciface::SteamDeck::CreateInputBackend(this));
|
||||
#endif
|
||||
|
||||
// Don't allow backends to add devices before the first RefreshDevices() as they will be cleaned
|
||||
// there. Or they'd end up waiting on the devices mutex if populated from another thread.
|
||||
|
@ -114,18 +119,6 @@ void ControllerInterface::RefreshDevices(RefreshReason reason)
|
|||
if (!m_is_init)
|
||||
return;
|
||||
|
||||
#ifdef CIFACE_USE_OSX
|
||||
if (m_wsi.type == WindowSystemType::MacOS)
|
||||
{
|
||||
std::lock_guard lk_pre_population(m_pre_population_mutex);
|
||||
// This is needed to stop its threads before locking our mutexes, to avoid deadlocks
|
||||
// (in case it tried to add a device after we had locked m_devices_population_mutex).
|
||||
// There doesn't seem to be an easy to way to repopulate OSX devices without restarting its
|
||||
// hotplug thread. This should not remove its devices, and if it did, calls should be ignored.
|
||||
ciface::OSX::DeInit();
|
||||
}
|
||||
#endif
|
||||
|
||||
// We lock m_devices_population_mutex here to make everything simpler.
|
||||
// Multiple devices classes have their own "hotplug" thread, and can add/remove devices at any
|
||||
// time, while actual writes to "m_devices" are safe, the order in which they happen is not. That
|
||||
|
@ -174,10 +167,6 @@ void ControllerInterface::RefreshDevices(RefreshReason reason)
|
|||
#ifdef CIFACE_USE_OSX
|
||||
if (m_wsi.type == WindowSystemType::MacOS)
|
||||
{
|
||||
{
|
||||
std::lock_guard lk_pre_population(m_pre_population_mutex);
|
||||
ciface::OSX::Init();
|
||||
}
|
||||
ciface::Quartz::PopulateDevices(m_wsi.render_window);
|
||||
}
|
||||
#endif
|
||||
|
@ -233,7 +222,6 @@ void ControllerInterface::Shutdown()
|
|||
// nothing needed
|
||||
#endif
|
||||
#ifdef CIFACE_USE_OSX
|
||||
ciface::OSX::DeInit();
|
||||
ciface::Quartz::DeInit();
|
||||
#endif
|
||||
#ifdef CIFACE_USE_ANDROID
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue