From b7f6ab899d3b1f2bb0216f2260d4966f34a7b066 Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Sun, 4 Jun 2023 21:31:56 +0200 Subject: [PATCH] save brightness/interval to preferences --- src/display.cpp | 2 -- src/display.h | 2 +- src/gameoflife.cpp | 1 + src/main.cpp | 17 +++++++++++++---- src/network.cpp | 4 ++++ src/network.h | 1 + 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/display.cpp b/src/display.cpp index a523205..c30d059 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -14,8 +14,6 @@ const uint8_t kMatrixOptions = (SMARTMATRIX_OPTIONS_NONE); // see http://docs const uint8_t kBackgroundLayerOptions = (SM_BACKGROUND_OPTIONS_NONE); const uint8_t kIndexedLayerOptions = (SM_INDEXED_OPTIONS_NONE); -int defaultBrightness = (brightnessPercent * 255) / 100; - rgb24 colorWhite = {0xff, 0xff, 0xff}; SMARTMATRIX_ALLOCATE_BUFFERS(matrix, kMatrixWidth, kMatrixHeight, kRefreshDepth, kDmaBufferRows, kPanelType, kMatrixOptions); diff --git a/src/display.h b/src/display.h index be4764c..52ccbe3 100644 --- a/src/display.h +++ b/src/display.h @@ -6,7 +6,7 @@ #include <SmartMatrix.h> extern bool runGame; -extern int brightnessPercent; +extern int defaultBrightness; extern int gameEra; void setupDisplay(); diff --git a/src/gameoflife.cpp b/src/gameoflife.cpp index d5d57e2..58995c6 100644 --- a/src/gameoflife.cpp +++ b/src/gameoflife.cpp @@ -18,6 +18,7 @@ int finalTicks; int cellsAliveNow; int cellsAliveBefore; int noEvolutionTicks; +int noEvolutionTicksLimit = 100; const uint scoreScreenTimeout = 5000; unsigned long currentMillis; diff --git a/src/main.cpp b/src/main.cpp index 5c4edae..2ed21b6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,13 +1,14 @@ -#define CONFIG_HEAP_CORRUPTION_DETECTION HEAP_POISONING_LIGHT #include <Arduino.h> +#include <Preferences.h> #include "utils.h" #include "network.h" #include "display.h" #include "gameoflife.h" -int noEvolutionTicksLimit = 100; -int brightnessPercent = 20; -int gameInterval = 100; +Preferences preferences; + +int defaultBrightness; +int gameInterval; unsigned long lastTick; @@ -18,10 +19,18 @@ void showTitle() { showMessage(msg); } +void setupSettings() { + preferences.begin("settings", true); // true = readonly + defaultBrightness = preferences.getUInt("brightness", 50); + gameInterval = preferences.getUInt("interval", 100); + preferences.end(); +} + void setup() { Serial.begin(115200); logLine("", true); + setupSettings(); setupDisplay(); showTitle(); setupNetwork(); diff --git a/src/network.cpp b/src/network.cpp index a13222b..272ad92 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -266,4 +266,8 @@ void updateConfig(StaticJsonDocument<200U> doc) gameInterval = doc["config"]["interval"]; defaultBrightness = doc["config"]["brightness"]; displayBrightness(defaultBrightness); + preferences.begin("settings", false); + preferences.putUInt("brightness", defaultBrightness); + preferences.putUInt("interval", gameInterval); + preferences.end(); } diff --git a/src/network.h b/src/network.h index f83d916..c22f54a 100644 --- a/src/network.h +++ b/src/network.h @@ -15,6 +15,7 @@ extern bool runGame; extern int defaultBrightness; extern int gameInterval; +extern Preferences preferences; void setupNetwork(); void setupMDNS(); -- GitLab