diff options
Diffstat (limited to 'src/citron/configuration/input_profiles.h')
-rw-r--r-- | src/citron/configuration/input_profiles.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/citron/configuration/input_profiles.h b/src/citron/configuration/input_profiles.h new file mode 100644 index 000000000..023ec74a6 --- /dev/null +++ b/src/citron/configuration/input_profiles.h @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <string> +#include <unordered_map> + +#include "configuration/qt_config.h" + +namespace Core { +class System; +} + +class Config; + +class InputProfiles { + +public: + explicit InputProfiles(); + virtual ~InputProfiles(); + + std::vector<std::string> GetInputProfileNames(); + + static bool IsProfileNameValid(std::string_view profile_name); + + bool CreateProfile(const std::string& profile_name, std::size_t player_index); + bool DeleteProfile(const std::string& profile_name); + bool LoadProfile(const std::string& profile_name, std::size_t player_index); + bool SaveProfile(const std::string& profile_name, std::size_t player_index); + +private: + bool ProfileExistsInMap(const std::string& profile_name) const; + + std::unordered_map<std::string, std::unique_ptr<QtConfig>> map_profiles; +}; |