#include "components/settings/Settings.h" #include #include 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(&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(&settings), sizeof(settings)); fs.FileClose(&settingsFile); }