Add auto-sleep timeout setting and handle it in loop

Incremented settings count, added autoSleepMinutes to CrossPointSettings, updated save/load functions, and integrated auto-sleep logic based on the new setting.
This commit is contained in:
altsysrq
2026-01-03 22:27:02 -06:00
parent 490ae79ede
commit 9ab27f848c
10 changed files with 213 additions and 54 deletions

View File

@@ -12,7 +12,7 @@ CrossPointSettings CrossPointSettings::instance;
namespace {
constexpr uint8_t SETTINGS_FILE_VERSION = 1;
// Increment this when adding new persisted settings fields
constexpr uint8_t SETTINGS_COUNT = 12;
constexpr uint8_t SETTINGS_COUNT = 13;
constexpr char SETTINGS_FILE[] = "/.crosspoint/settings.bin";
} // namespace
@@ -39,6 +39,7 @@ bool CrossPointSettings::saveToFile() const {
serialization::writePod(outputFile, lineSpacing);
serialization::writePod(outputFile, bluetoothEnabled);
serialization::writePod(outputFile, useCoverArtPicker);
serialization::writePod(outputFile, autoSleepMinutes);
outputFile.close();
Serial.printf("[%lu] [CPS] Settings saved to file\n", millis());
@@ -89,6 +90,8 @@ bool CrossPointSettings::loadFromFile() {
if (++settingsRead >= fileSettingsCount) break;
serialization::readPod(inputFile, useCoverArtPicker);
if (++settingsRead >= fileSettingsCount) break;
serialization::readPod(inputFile, autoSleepMinutes);
if (++settingsRead >= fileSettingsCount) break;
} while (false);
inputFile.close();