aboutsummaryrefslogtreecommitdiff
path: root/Config.h
diff options
context:
space:
mode:
Diffstat (limited to 'Config.h')
-rw-r--r--Config.h41
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);
+};