aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcodingjourney <coding@journey.sk>2024-11-28 05:19:34 +0100
committerJF <JF002@users.noreply.github.com>2025-11-04 21:25:31 +0100
commitf720a7fb3ce40880319ceba79eb00a9699dbc1ef (patch)
tree345a695b5a02c756617c6f37628961993720d72c
parent5c2d4a515112f8ba6a23f34d59c8a481368a1e79 (diff)
upper bound for lap numbers
-rw-r--r--src/components/stopwatch/StopWatchController.cpp2
-rw-r--r--src/components/stopwatch/StopWatchController.h3
-rw-r--r--src/displayapp/screens/StopWatch.cpp3
3 files changed, 5 insertions, 3 deletions
diff --git a/src/components/stopwatch/StopWatchController.cpp b/src/components/stopwatch/StopWatchController.cpp
index 7af80367..311bccc7 100644
--- a/src/components/stopwatch/StopWatchController.cpp
+++ b/src/components/stopwatch/StopWatchController.cpp
@@ -34,7 +34,7 @@ void StopWatchController::Clear() {
void StopWatchController::AddLapToHistory() {
TickType_t lapEnd = GetElapsedTime();
history[0].timeSinceStart = lapEnd;
- history[0].number = ++maxLapNumber;
+ history[0].number = ++maxLapNumber % lapNumberBoundary;
history--;
}
diff --git a/src/components/stopwatch/StopWatchController.h b/src/components/stopwatch/StopWatchController.h
index 800ca1b3..0791701c 100644
--- a/src/components/stopwatch/StopWatchController.h
+++ b/src/components/stopwatch/StopWatchController.h
@@ -55,9 +55,10 @@ namespace Pinetime {
// Maximum number of stored laps
static constexpr int histSize = 2;
+ static constexpr int lapNumberBoundary = 1000;
// Lap storage
Utility::CircularBuffer<LapInfo, histSize> history;
- // Highest lap number; may exceed histSize
+ // Highest lap number; less than lapNumberBoundary, may exceed histSize
int maxLapNumber;
};
}
diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp
index 710c4d44..08bc5ddd 100644
--- a/src/displayapp/screens/StopWatch.cpp
+++ b/src/displayapp/screens/StopWatch.cpp
@@ -181,7 +181,8 @@ void StopWatch::RenderLaps() {
if (lap) {
TimeSeparated laptime = ConvertTicksToTimeSegments(lap->timeSinceStart);
char buffer[16];
- sprintf(buffer, "#%2d %2d:%02d.%02d\n", lap->number, laptime.mins, laptime.secs, laptime.hundredths);
+ snprintf(buffer, sizeof(buffer), "#%3d %2d:%02d.%02d\n",
+ lap->number, laptime.mins, laptime.secs, laptime.hundredths);
lv_label_ins_text(lapText, LV_LABEL_POS_LAST, buffer);
} else {
lv_label_ins_text(lapText, LV_LABEL_POS_LAST, "\n");