diff options
Diffstat (limited to 'Config.h')
-rw-r--r-- | Config.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Config.h b/Config.h new file mode 100644 index 0000000..1fd994b --- /dev/null +++ b/Config.h @@ -0,0 +1,41 @@ +#pragma once +#include <filesystem> +#include <string> + + +class Config +{ + static Config* instance; + + Config(); +public: + + static Config* Get() + { + if (!instance) + { + instance = new Config(); + } + return instance; + } + + std::filesystem::path GetConfigPath(); + std::filesystem::path GetConfigFilePath(); + + + template <class T> + void Write(std::string feature, std::string settingsName, T value) + { + if (!WritePrivateProfileString(feature.c_str(), settingsName.c_str(), std::to_string(value).c_str(), GetConfigFilePath().string().c_str())) + { + printf("Failed to write config: %s->%s\n", feature.c_str(), settingsName.c_str()); + } + } + + float ReadFloat(std::string feature, std::string settingsName); + + int ReadInt(std::string feature, std::string settingsName); + + + std::string ReadString(std::string feature, std::string settingsName); +}; |