DynamicInputTextureManager.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright 2019 Dolphin Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "InputCommon/DynamicInputTextureManager.h"
  4. #include <set>
  5. #include "Common/CommonPaths.h"
  6. #include "Common/FileSearch.h"
  7. #include "Common/FileUtil.h"
  8. #include "Core/ConfigManager.h"
  9. #include "Core/Core.h"
  10. #include "InputCommon/DynamicInputTextures/DITConfiguration.h"
  11. #include "VideoCommon/HiresTextures.h"
  12. #include "VideoCommon/TextureCacheBase.h"
  13. namespace InputCommon
  14. {
  15. DynamicInputTextureManager::DynamicInputTextureManager() = default;
  16. DynamicInputTextureManager::~DynamicInputTextureManager() = default;
  17. void DynamicInputTextureManager::Load()
  18. {
  19. m_configuration.clear();
  20. const std::string& game_id = SConfig::GetInstance().GetGameID();
  21. const std::set<std::string> dynamic_input_directories =
  22. GetTextureDirectoriesWithGameId(File::GetUserPath(D_DYNAMICINPUT_IDX), game_id);
  23. for (const auto& dynamic_input_directory : dynamic_input_directories)
  24. {
  25. const auto json_files = Common::DoFileSearch({dynamic_input_directory}, {".json"});
  26. for (auto& file : json_files)
  27. {
  28. m_configuration.emplace_back(file);
  29. }
  30. }
  31. }
  32. void DynamicInputTextureManager::GenerateTextures(const Common::IniFile& file,
  33. const std::vector<std::string>& controller_names)
  34. {
  35. for (const auto& configuration : m_configuration)
  36. {
  37. (void)configuration.GenerateTextures(file, controller_names);
  38. }
  39. }
  40. } // namespace InputCommon