diff options
Diffstat (limited to 'Source/Core/InputCommon/InputConfig.cpp')
| -rw-r--r-- | Source/Core/InputCommon/InputConfig.cpp | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 03d2874332..72b28b6d16 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -4,6 +4,7 @@ #include <vector> +#include "Common/Config/Config.h" #include "Common/FileUtil.h" #include "Common/IniFile.h" #include "Common/MsgHandler.h" @@ -101,6 +102,8 @@ bool InputConfig::LoadConfig(bool isGC) !inifile.GetSections().empty()) { int n = 0; + + std::vector<std::string> controller_names; for (auto& controller : m_controllers) { IniFile::Section config; @@ -113,9 +116,8 @@ bool InputConfig::LoadConfig(bool isGC) controller->GetName() + "'", 6000); - IniFile profile_ini; - profile_ini.Load(profile[n]); - config = *profile_ini.GetOrCreateSection("Profile"); + inifile.Load(profile[n]); + config = *inifile.GetOrCreateSection("Profile"); } else { @@ -133,10 +135,13 @@ bool InputConfig::LoadConfig(bool isGC) controller->LoadConfig(&config); // Update refs controller->UpdateReferences(g_controller_interface); + controller_names.push_back(controller->GetName()); // Next profile n++; } + + m_dynamic_input_tex_config_manager.GenerateTextures(inifile, controller_names); return true; } else @@ -154,8 +159,14 @@ void InputConfig::SaveConfig() IniFile inifile; inifile.Load(ini_filename); + std::vector<std::string> controller_names; for (auto& controller : m_controllers) + { controller->SaveConfig(inifile.GetOrCreateSection(controller->GetName())); + controller_names.push_back(controller->GetName()); + } + + m_dynamic_input_tex_config_manager.GenerateTextures(inifile, controller_names); inifile.Save(ini_filename); } @@ -195,11 +206,6 @@ void InputConfig::UnregisterHotplugCallback() g_controller_interface.UnregisterDevicesChangedCallback(m_hotplug_callback_handle); } -void InputConfig::OnControllerCreated(ControllerEmu::EmulatedController& controller) -{ - controller.SetDynamicInputTextureManager(&m_dynamic_input_tex_config_manager); -} - bool InputConfig::IsControllerControlledByGamepadDevice(int index) const { if (static_cast<size_t>(index) >= m_controllers.size()) @@ -215,3 +221,14 @@ bool InputConfig::IsControllerControlledByGamepadDevice(int index) const || (controller.source == "DInput" && controller.name == "Keyboard Mouse")); // Windows Keyboard/Mouse } + +void InputConfig::GenerateControllerTextures(const IniFile& file) +{ + std::vector<std::string> controller_names; + for (auto& controller : m_controllers) + { + controller_names.push_back(controller->GetName()); + } + + m_dynamic_input_tex_config_manager.GenerateTextures(file, controller_names); +} |
