@@ -15,7 +15,7 @@ namespace {
15
15
const int secs = (timeElapsedSecs) % 60 ;
16
16
const int mins = (timeElapsedSecs / 60 ) % 60 ;
17
17
const int hours = (timeElapsedSecs / 60 ) / 60 ;
18
- return TimeSeparated {hours, mins, secs, hundredths};
18
+ return TimeSeparated {hours, mins, secs, hundredths, timeElapsedSecs };
19
19
}
20
20
21
21
void PlayPauseEventHandler (lv_obj_t * obj, lv_event_t event) {
@@ -145,11 +145,14 @@ void StopWatch::DisplayCleared() {
145
145
146
146
void StopWatch::RenderTime () {
147
147
TimeSeparated elapsedTime = ConvertTicksToTimeSegments (stopWatchController.GetElapsedTime ());
148
- SetHoursVisible (elapsedTime.hours != 0 );
149
- if (!hoursVisible) {
150
- lv_label_set_text_fmt (time, " %02d:%02d" , elapsedTime.mins , elapsedTime.secs );
151
- } else {
152
- lv_label_set_text_fmt (time, " %02d:%02d:%02d" , elapsedTime.hours , elapsedTime.mins , elapsedTime.secs );
148
+ renderedSeconds = elapsedTime.epochSecs ;
149
+ if (renderedSeconds.IsUpdated ()) {
150
+ SetHoursVisible (elapsedTime.hours != 0 );
151
+ if (!hoursVisible) {
152
+ lv_label_set_text_fmt (time, " %02d:%02d" , elapsedTime.mins , elapsedTime.secs );
153
+ } else {
154
+ lv_label_set_text_fmt (time, " %02d:%02d:%02d" , elapsedTime.hours , elapsedTime.mins , elapsedTime.secs );
155
+ }
153
156
}
154
157
lv_label_set_text_fmt (msecTime, " %02d" , elapsedTime.hundredths );
155
158
}
0 commit comments