Simpler settings save and load

This commit is contained in:
Willy-JL
2023-01-19 00:54:50 +00:00
parent 9117c95d9a
commit 4fda3de4c1
2 changed files with 18 additions and 25 deletions

View File

@@ -4,34 +4,29 @@ XtremeSettings* xtreme_settings = NULL;
XtremeSettings* XTREME_SETTINGS() { XtremeSettings* XTREME_SETTINGS() {
if (xtreme_settings == NULL) { if (xtreme_settings == NULL) {
xtreme_settings = malloc(sizeof(XtremeSettings)); XTREME_SETTINGS_LOAD();
_XTREME_SETTINGS_LOAD(xtreme_settings);
} }
return xtreme_settings; return xtreme_settings;
} }
bool XTREME_SETTINGS_SAVE() { bool XTREME_SETTINGS_LOAD() {
if (xtreme_settings == NULL) { if (xtreme_settings == NULL) {
XTREME_SETTINGS(); xtreme_settings = malloc(sizeof(XtremeSettings));
}
return _XTREME_SETTINGS_SAVE(xtreme_settings);
}
bool _XTREME_SETTINGS_LOAD(XtremeSettings* xtreme_settings) {
furi_assert(xtreme_settings);
bool loaded = saved_struct_load( bool loaded = saved_struct_load(
XTREME_SETTINGS_PATH, xtreme_settings, sizeof(XtremeSettings), XTREME_SETTINGS_MAGIC, XTREME_SETTINGS_VERSION); XTREME_SETTINGS_PATH, xtreme_settings, sizeof(XtremeSettings), XTREME_SETTINGS_MAGIC, XTREME_SETTINGS_VERSION);
if(!loaded) { if(!loaded) {
memset(xtreme_settings, 0, sizeof(XtremeSettings)); memset(xtreme_settings, 0, sizeof(XtremeSettings));
loaded = _XTREME_SETTINGS_SAVE(xtreme_settings); loaded = XTREME_SETTINGS_SAVE();
} }
return loaded; return loaded;
}
return true;
} }
bool _XTREME_SETTINGS_SAVE(XtremeSettings* xtreme_settings) { bool XTREME_SETTINGS_SAVE() {
furi_assert(xtreme_settings); if (xtreme_settings == NULL) {
XTREME_SETTINGS_LOAD();
}
return saved_struct_save( return saved_struct_save(
XTREME_SETTINGS_PATH, xtreme_settings, sizeof(XtremeSettings), XTREME_SETTINGS_MAGIC, XTREME_SETTINGS_VERSION); XTREME_SETTINGS_PATH, xtreme_settings, sizeof(XtremeSettings), XTREME_SETTINGS_MAGIC, XTREME_SETTINGS_VERSION);
} }

View File

@@ -20,8 +20,6 @@ typedef struct {
XtremeSettings* XTREME_SETTINGS(); XtremeSettings* XTREME_SETTINGS();
bool XTREME_SETTINGS_LOAD();
bool XTREME_SETTINGS_SAVE(); bool XTREME_SETTINGS_SAVE();
bool _XTREME_SETTINGS_LOAD(XtremeSettings* xtreme_settings);
bool _XTREME_SETTINGS_SAVE(XtremeSettings* xtreme_settings);