Unique ptr for xtreme settings, no more loading

This commit is contained in:
Willy-JL
2023-01-17 15:45:39 +00:00
parent 067f7bd3f5
commit 483d96f447
6 changed files with 34 additions and 20 deletions

View File

@@ -1,18 +1,35 @@
#include "xtreme_settings.h"
bool XTREME_SETTINGS_LOAD(XtremeSettings* xtreme_settings) {
XtremeSettings* xtreme_settings = NULL;
XtremeSettings* XTREME_SETTINGS() {
if (xtreme_settings == NULL) {
xtreme_settings = malloc(sizeof(XtremeSettings));
_XTREME_SETTINGS_LOAD(xtreme_settings);
}
return xtreme_settings;
}
bool XTREME_SETTINGS_SAVE() {
if (xtreme_settings == NULL) {
XTREME_SETTINGS();
}
return _XTREME_SETTINGS_SAVE(xtreme_settings);
}
bool _XTREME_SETTINGS_LOAD(XtremeSettings* xtreme_settings) {
furi_assert(xtreme_settings);
bool loaded = saved_struct_load(
XTREME_SETTINGS_PATH, xtreme_settings, sizeof(XtremeSettings), XTREME_SETTINGS_MAGIC, XTREME_SETTINGS_VERSION);
if(!loaded) {
memset(xtreme_settings, 0, sizeof(XtremeSettings));
loaded = XTREME_SETTINGS_SAVE(xtreme_settings);
loaded = _XTREME_SETTINGS_SAVE(xtreme_settings);
}
return loaded;
}
bool XTREME_SETTINGS_SAVE(XtremeSettings* xtreme_settings) {
bool _XTREME_SETTINGS_SAVE(XtremeSettings* xtreme_settings) {
furi_assert(xtreme_settings);
return saved_struct_save(