-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsettings_manager.cpp
More file actions
68 lines (56 loc) · 1.29 KB
/
Copy pathsettings_manager.cpp
File metadata and controls
68 lines (56 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "framework.h"
#include "settings_manager.h"
SettingsManager::SettingsManager(std::wstring settingsFile)
: m_settingsFile(settingsFile)
, m_bSettingsUpdated(false)
, m_iniData()
{
m_iniData.SetUnicode(true);
}
SettingsManager::~SettingsManager()
{
DispatchUpdate();
}
void SettingsManager::ReadSettingsFile()
{
SI_Error result = m_iniData.LoadFile(m_settingsFile.c_str());
if (result < 0)
{
g_logger->warn("Failed to read settings file, writing default values...");
UpdateSettingsFile();
}
else
{
m_settingsMain.ParseSettings(m_iniData, "Main");
m_settingsAdaLight.ParseSettings(m_iniData, "AdaLight");
}
m_bSettingsUpdated = false;
}
void SettingsManager::UpdateSettingsFile()
{
m_settingsMain.UpdateSettings(m_iniData, "Main");
m_settingsAdaLight.UpdateSettings(m_iniData, "AdaLight");
SI_Error result = m_iniData.SaveFile(m_settingsFile.c_str());
if (result < 0)
{
g_logger->error("Failed to save settings file, {}", errno);
}
m_bSettingsUpdated = false;
}
void SettingsManager::SettingsUpdated()
{
m_bSettingsUpdated = true;
}
void SettingsManager::DispatchUpdate()
{
if (m_bSettingsUpdated)
{
UpdateSettingsFile();
}
}
void SettingsManager::ResetToDefaults()
{
m_settingsMain = Settings_Main();
m_settingsAdaLight = Settings_AdaLight();
UpdateSettingsFile();
}