abaddon-ppc/settings.cpp

37 lines
1.1 KiB
C++
Raw Normal View History

2020-08-19 05:07:55 +00:00
#include "settings.hpp"
#include <filesystem>
#include <fstream>
2020-08-19 05:07:55 +00:00
SettingsManager::SettingsManager(std::string filename)
: m_filename(filename) {
if (!std::filesystem::exists(filename)) {
std::fstream fs;
fs.open(filename, std::ios::out);
fs.close();
}
2020-08-19 05:07:55 +00:00
auto rc = m_ini.LoadFile(filename.c_str());
m_ok = rc == SI_OK;
}
2020-11-03 06:52:19 +00:00
std::string SettingsManager::GetSettingString(const std::string &section, const std::string &key, std::string fallback) const {
2020-08-19 05:07:55 +00:00
return m_ini.GetValue(section.c_str(), key.c_str(), fallback.c_str());
}
2020-11-03 06:52:19 +00:00
int SettingsManager::GetSettingInt(const std::string &section, const std::string &key, int fallback) const {
return std::stoul(GetSettingString(section, key, std::to_string(fallback)));
2020-08-19 05:07:55 +00:00
}
2020-11-03 06:52:19 +00:00
bool SettingsManager::GetSettingBool(const std::string &section, const std::string &key, bool fallback) const {
return GetSettingString(section, key, "false") != "false";
}
2020-08-19 05:07:55 +00:00
bool SettingsManager::IsValid() const {
return m_ok;
}
void SettingsManager::Close() {
m_ini.SaveFile(m_filename.c_str());
}
2020-11-03 06:52:19 +00:00