summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu
diff options
context:
space:
mode:
authorLeo Lam <leolino.lam@gmail.com>2017-11-19 16:53:23 +0100
committerGitHub <noreply@github.com>2017-11-19 16:53:23 +0100
commit38f44b2839d1cb3792f1bf517efe4a092933c43e (patch)
treebc2dad207404addb20dae8ac25d602cc5ebe9366 /Source/Core/InputCommon/ControllerEmu
parent80bcc0d58d7d3b39d0e1b7973cbce34d4cf61f4e (diff)
parentc62d83a34b34fe591dca1d3c03354ff915c589f4 (diff)
Merge pull request #4853 from ligfx/always_connected
GCPadEmu: only connected if default device connected
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp7
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControllerEmu.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp
index cf70fa8468..98b9e5828b 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp
@@ -34,6 +34,8 @@ std::unique_lock<std::recursive_mutex> EmulatedController::GetStateLock()
void EmulatedController::UpdateReferences(const ControllerInterface& devi)
{
const auto lock = GetStateLock();
+ m_default_device_is_connected = devi.HasConnectedDevice(m_default_device);
+
for (auto& ctrlGroup : groups)
{
for (auto& control : ctrlGroup->controls)
@@ -48,6 +50,11 @@ void EmulatedController::UpdateReferences(const ControllerInterface& devi)
}
}
+bool EmulatedController::IsDefaultDeviceConnected() const
+{
+ return m_default_device_is_connected;
+}
+
const ciface::Core::DeviceQualifier& EmulatedController::GetDefaultDevice() const
{
return m_default_device;
diff --git a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.h b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.h
index c9faf4457c..8b7925f7df 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.h
+++ b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.h
@@ -33,6 +33,7 @@ public:
virtual void LoadConfig(IniFile::Section* sec, const std::string& base = "");
virtual void SaveConfig(IniFile::Section* sec, const std::string& base = "");
+ bool IsDefaultDeviceConnected() const;
const ciface::Core::DeviceQualifier& GetDefaultDevice() const;
void SetDefaultDevice(const std::string& device);
void SetDefaultDevice(ciface::Core::DeviceQualifier devq);
@@ -49,5 +50,6 @@ public:
private:
ciface::Core::DeviceQualifier m_default_device;
+ bool m_default_device_is_connected{false};
};
} // namespace ControllerEmu