ref: e5b73212f6addcfdb5e306df63d7135e543c4f8d
src/components/settings/Settings.cpp
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 |
#include "components/settings/Settings.h" #include <cstdlib> #include <cstring> using namespace Pinetime::Controllers; Settings::Settings(Pinetime::Controllers::FS& fs) : fs {fs} { } void Settings::Init() { // Load default settings from Flash LoadSettingsFromFile(); } void Settings::SaveSettings() { // verify if is necessary to save if (settingsChanged) { SaveSettingsToFile(); } settingsChanged = false; } void Settings::LoadSettingsFromFile() { SettingsData bufferSettings; lfs_file_t settingsFile; if (fs.FileOpen(&settingsFile, "/settings.dat", LFS_O_RDONLY) != LFS_ERR_OK) { return; } fs.FileRead(&settingsFile, reinterpret_cast<uint8_t*>(&bufferSettings), sizeof(settings)); fs.FileClose(&settingsFile); if (bufferSettings.version == settingsVersion) { settings = bufferSettings; } } void Settings::SaveSettingsToFile() { lfs_file_t settingsFile; if (fs.FileOpen(&settingsFile, "/settings.dat", LFS_O_WRONLY | LFS_O_CREAT) != LFS_ERR_OK) { return; } fs.FileWrite(&settingsFile, reinterpret_cast<uint8_t*>(&settings), sizeof(settings)); fs.FileClose(&settingsFile); } |