summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/DynamicInputTextureManager.cpp
diff options
context:
space:
mode:
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