MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / UpdateInputSourceState

Method UpdateInputSourceState

pcsx2/Input/InputManager.cpp:1814–1846  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1812
1813template <typename T>
1814void InputManager::UpdateInputSourceState(SettingsInterface& si, std::unique_lock<std::mutex>& settings_lock, InputSourceType type)
1815{
1816 if (!s_input_sources[static_cast<u32>(type)])
1817 {
1818 std::unique_ptr<InputSource> source = std::make_unique<T>();
1819 if (!source->Initialize(si, settings_lock))
1820 Console.Error("(InputManager) Source '%s' failed to initialize.", InputSourceToString(type));
1821
1822 s_input_sources[static_cast<u32>(type)] = std::move(source);
1823 }
1824
1825 const bool enabled = IsInputSourceEnabled(si, type);
1826 if (enabled)
1827 {
1828 if (s_input_sources[static_cast<u32>(type)]->IsInitialized())
1829 {
1830 s_input_sources[static_cast<u32>(type)]->UpdateSettings(si, settings_lock);
1831 }
1832 else if (!s_input_sources[static_cast<u32>(type)]->Initialize(si, settings_lock))
1833 {
1834 Console.Error("(InputManager) Source '%s' failed to initialize.", InputSourceToString(type));
1835 }
1836 }
1837 else
1838 {
1839 if (s_input_sources[static_cast<u32>(type)]->IsInitialized())
1840 {
1841 settings_lock.unlock();
1842 s_input_sources[static_cast<u32>(type)]->Shutdown();
1843 settings_lock.lock();
1844 }
1845 }
1846}
1847
1848#include "Input/SDLInputSource.h"
1849

Callers

nothing calls this directly

Calls 7

unlockMethod · 0.80
InitializeMethod · 0.45
ErrorMethod · 0.45
IsInitializedMethod · 0.45
UpdateSettingsMethod · 0.45
ShutdownMethod · 0.45
lockMethod · 0.45

Tested by

no test coverage detected