summaryrefslogtreecommitdiff
path: root/settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'settings.cpp')
-rw-r--r--settings.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/settings.cpp b/settings.cpp
new file mode 100644
index 0000000..1fb0bb1
--- /dev/null
+++ b/settings.cpp
@@ -0,0 +1,23 @@
+#include "settings.hpp"
+
+SettingsManager::SettingsManager(std::string filename)
+ : m_filename(filename) {
+ auto rc = m_ini.LoadFile(filename.c_str());
+ m_ok = rc == SI_OK;
+}
+
+std::string SettingsManager::GetSetting(std::string section, std::string key, std::string fallback) {
+ return m_ini.GetValue(section.c_str(), key.c_str(), fallback.c_str());
+}
+
+void SettingsManager::SetSetting(std::string section, std::string key, std::string value) {
+ m_ini.SetValue(section.c_str(), key.c_str(), value.c_str());
+}
+
+bool SettingsManager::IsValid() const {
+ return m_ok;
+}
+
+void SettingsManager::Close() {
+ m_ini.SaveFile(m_filename.c_str());
+}