diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2023-02-23 17:32:11 +0200 |
|---|---|---|
| committer | Riku Isokoski <riksu9000@gmail.com> | 2023-02-23 23:17:18 +0200 |
| commit | 05f404950afeef26393b3e385bdb6d77df423e86 (patch) | |
| tree | 427f9f8578078ae472bacc9f564b13895ab3cf22 /src/displayapp/screens/Timer.cpp | |
| parent | 56b6291ab779acd8cd5af007a0a97397a93a33f2 (diff) | |
TimerController: Use chrono for durations
Diffstat (limited to 'src/displayapp/screens/Timer.cpp')
| -rw-r--r-- | src/displayapp/screens/Timer.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/displayapp/screens/Timer.cpp b/src/displayapp/screens/Timer.cpp index 136d6b52..9d5b2fa9 100644 --- a/src/displayapp/screens/Timer.cpp +++ b/src/displayapp/screens/Timer.cpp @@ -104,9 +104,9 @@ void Timer::UpdateMask() { void Timer::Refresh() { if (timerController.IsRunning()) { - uint32_t seconds = timerController.GetTimeRemaining() / 1000; - minuteCounter.SetValue(seconds / 60); - secondCounter.SetValue(seconds % 60); + auto secondsRemaining = std::chrono::duration_cast<std::chrono::seconds>(timerController.GetTimeRemaining()); + minuteCounter.SetValue(secondsRemaining.count() / 60); + secondCounter.SetValue(secondsRemaining.count() % 60); } else if (buttonPressing && xTaskGetTickCount() > pressTime + pdMS_TO_TICKS(150)) { lv_label_set_text_static(txtPlayPause, "Reset"); maskPosition += 15; @@ -133,13 +133,14 @@ void Timer::SetTimerStopped() { void Timer::ToggleRunning() { if (timerController.IsRunning()) { - uint32_t seconds = timerController.GetTimeRemaining() / 1000; - minuteCounter.SetValue(seconds / 60); - secondCounter.SetValue(seconds % 60); + auto secondsRemaining = std::chrono::duration_cast<std::chrono::seconds>(timerController.GetTimeRemaining()); + minuteCounter.SetValue(secondsRemaining.count() / 60); + secondCounter.SetValue(secondsRemaining.count() % 60); timerController.StopTimer(); SetTimerStopped(); } else if (secondCounter.GetValue() + minuteCounter.GetValue() > 0) { - timerController.StartTimer((secondCounter.GetValue() + minuteCounter.GetValue() * 60) * 1000); + auto timerDuration = std::chrono::minutes(minuteCounter.GetValue()) + std::chrono::seconds(secondCounter.GetValue()); + timerController.StartTimer(timerDuration); Refresh(); SetTimerRunning(); } |
