add 16 bit integer ranges to allow for larger ints in wpm

This commit is contained in:
Matthijs Mars
2026-01-09 14:29:17 +01:00
parent 38f0b9678d
commit 3f9142fba7
4 changed files with 37 additions and 17 deletions

View File

@@ -12,7 +12,7 @@
CrossPointSettings CrossPointSettings::instance;
namespace {
constexpr uint8_t SETTINGS_FILE_VERSION = 1;
constexpr uint8_t SETTINGS_FILE_VERSION = 2;
// Increment this when adding new persisted settings fields
constexpr uint8_t SETTINGS_COUNT = 19;
constexpr char SETTINGS_FILE[] = "/.crosspoint/settings.bin";
@@ -62,7 +62,7 @@ bool CrossPointSettings::loadFromFile() {
uint8_t version;
serialization::readPod(inputFile, version);
if (version != SETTINGS_FILE_VERSION) {
if (version != SETTINGS_FILE_VERSION && version != 1) {
Serial.printf("[%lu] [CPS] Deserialization failed: Unknown version %u\n", millis(), version);
inputFile.close();
return false;
@@ -112,7 +112,13 @@ bool CrossPointSettings::loadFromFile() {
}
serialization::readPod(inputFile, textAntiAliasing);
if (++settingsRead >= fileSettingsCount) break;
serialization::readPod(inputFile, readingSpeedWpm);
if (version == 1) {
uint8_t wpmV1;
serialization::readPod(inputFile, wpmV1);
readingSpeedWpm = wpmV1;
} else {
serialization::readPod(inputFile, readingSpeedWpm);
}
if (++settingsRead >= fileSettingsCount) break;
serialization::readPod(inputFile, showTimeLeftInChapter);
} while (false);