summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/DynamicInputTextureManager.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-10-20 02:10:29 +0200
committerGitHub <noreply@github.com>2020-10-20 02:10:29 +0200
commitfc3b474cceb2a24df21640140be4beb95b9b9fd1 (patch)
tree84c89656ad79357c819b129a927db20cec1cdf9e /Source/Core/InputCommon/DynamicInputTextureManager.cpp
parentb26c2e7adb80436f131f1a50e462ee7c25792c48 (diff)
parent4fff04db3ce16c72d8b3b95df2285a129605fde4 (diff)
Merge pull request #8318 from iwubcode/dynamic_input_textures
InputCommon: Dynamic Input Textures
Diffstat (limited to 'Source/Core/InputCommon/DynamicInputTextureManager.cpp')
-rw-r--r--Source/Core/InputCommon/DynamicInputTextureManager.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/DynamicInputTextureManager.cpp b/Source/Core/InputCommon/DynamicInputTextureManager.cpp
new file mode 100644
index 0000000000..437d083ee9
--- /dev/null
+++ b/Source/Core/InputCommon/DynamicInputTextureManager.cpp
@@ -0,0 +1,49 @@
+// Copyright 2019 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include "InputCommon/DynamicInputTextureManager.h"
+
+#include <set>
+
+#include "Common/CommonPaths.h"
+#include "Common/FileSearch.h"
+#include "Common/FileUtil.h"
+#include "Core/ConfigManager.h"
+
+#include "InputCommon/DynamicInputTextureConfiguration.h"
+#include "VideoCommon/HiresTextures.h"
+
+namespace InputCommon
+{
+DynamicInputTextureManager::DynamicInputTextureManager() = default;
+
+DynamicInputTextureManager::~DynamicInputTextureManager() = default;
+
+void DynamicInputTextureManager::Load()
+{
+ m_configuration.clear();
+
+ const std::string& game_id = SConfig::GetInstance().GetGameID();
+ const std::set<std::string> dynamic_input_directories =
+ GetTextureDirectoriesWithGameId(File::GetUserPath(D_DYNAMICINPUT_IDX), game_id);
+
+ for (const auto& dynamic_input_directory : dynamic_input_directories)
+ {
+ const auto json_files = Common::DoFileSearch({dynamic_input_directory}, {".json"});
+ for (auto& file : json_files)
+ {
+ m_configuration.emplace_back(file);
+ }
+ }
+}
+
+void DynamicInputTextureManager::GenerateTextures(const IniFile::Section* sec,
+ const std::string& controller_name)
+{
+ for (const auto& configuration : m_configuration)
+ {
+ configuration.GenerateTextures(sec, controller_name);
+ }
+}
+} // namespace InputCommon