summaryrefslogtreecommitdiff
path: root/src/components/timer/TimerController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/timer/TimerController.cpp')
-rw-r--r--src/components/timer/TimerController.cpp32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp
index 55b7d56..eeee61f 100644
--- a/src/components/timer/TimerController.cpp
+++ b/src/components/timer/TimerController.cpp
@@ -3,11 +3,9 @@
using namespace Pinetime::Controllers;
-namespace {
- void TimerCallback(TimerHandle_t xTimer) {
- auto* controller = static_cast<TimerController*>(pvTimerGetTimerID(xTimer));
- controller->OnTimerEnd();
- }
+void TimerCallback(TimerHandle_t xTimer) {
+ auto* controller = static_cast<TimerController*>(pvTimerGetTimerID(xTimer));
+ controller->OnTimerEnd();
}
void TimerController::Init(Pinetime::System::SystemTask* systemTask) {
@@ -18,37 +16,25 @@ void TimerController::Init(Pinetime::System::SystemTask* systemTask) {
void TimerController::StartTimer(uint32_t duration) {
xTimerChangePeriod(timer, pdMS_TO_TICKS(duration), 0);
xTimerStart(timer, 0);
- timerRunning = true;
- overtime = false;
}
-int32_t TimerController::GetSecondsRemaining() {
+uint32_t TimerController::GetTimeRemaining() {
if (IsRunning()) {
- int32_t remainingTime = xTimerGetExpiryTime(timer) - xTaskGetTickCount();
- return remainingTime / configTICK_RATE_HZ;
+ TickType_t remainingTime = xTimerGetExpiryTime(timer) - xTaskGetTickCount();
+ return (remainingTime * 1000 / configTICK_RATE_HZ);
}
return 0;
}
void TimerController::StopTimer() {
xTimerStop(timer, 0);
- timerRunning = false;
- if (overtime) {
- StopAlerting();
- overtime = false;
- }
}
-void TimerController::StopAlerting() {
- if (systemTask != nullptr) {
- systemTask->PushMessage(System::Messages::StopRinging);
- }
+bool TimerController::IsRunning() {
+ return (xTimerIsTimerActive(timer) == pdTRUE);
}
void TimerController::OnTimerEnd() {
- overtime = true;
- if (systemTask != nullptr) {
- systemTask->PushMessage(System::Messages::OnTimerDone);
- }
+ systemTask->PushMessage(System::Messages::OnTimerDone);
}