diff options
Diffstat (limited to 'src/components/timer')
| -rw-r--r-- | src/components/timer/TimerController.cpp | 69 | ||||
| -rw-r--r-- | src/components/timer/TimerController.h | 37 |
2 files changed, 0 insertions, 106 deletions
diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp deleted file mode 100644 index 79e44d6..0000000 --- a/src/components/timer/TimerController.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// Created by florian on 16.05.21. -// - -#include "components/timer/TimerController.h" -#include "systemtask/SystemTask.h" -#include "app_timer.h" -#include "task.h" - -using namespace Pinetime::Controllers; - - -APP_TIMER_DEF(timerAppTimer); - -namespace { - void TimerEnd(void* p_context) { - auto* controller = static_cast<Pinetime::Controllers::TimerController*> (p_context); - if(controller != nullptr) - controller->OnTimerEnd(); - } -} - - -void TimerController::Init() { - app_timer_create(&timerAppTimer, APP_TIMER_MODE_SINGLE_SHOT, TimerEnd); -} - -void TimerController::StartTimer(uint32_t duration) { - app_timer_stop(timerAppTimer); - auto currentTicks = xTaskGetTickCount(); - app_timer_start(timerAppTimer, APP_TIMER_TICKS(duration), this); - endTicks = currentTicks + APP_TIMER_TICKS(duration); - timerRunning = true; -} - -uint32_t TimerController::GetTimeRemaining() { - if (!timerRunning) { - return 0; - } - auto currentTicks = xTaskGetTickCount(); - - TickType_t deltaTicks = 0; - if (currentTicks > endTicks) { - deltaTicks = 0xffffffff - currentTicks; - deltaTicks += (endTicks + 1); - } else { - deltaTicks = endTicks - currentTicks; - } - - return (static_cast<TickType_t>(deltaTicks) / static_cast<TickType_t>(configTICK_RATE_HZ)) * 1000; -} - -void TimerController::StopTimer() { - app_timer_stop(timerAppTimer); - timerRunning = false; -} - -bool TimerController::IsRunning() { - return timerRunning; -} -void TimerController::OnTimerEnd() { - timerRunning = false; - if(systemTask != nullptr) - systemTask->PushMessage(System::Messages::OnTimerDone); -} - -void TimerController::Register(Pinetime::System::SystemTask* systemTask) { - this->systemTask = systemTask; -} diff --git a/src/components/timer/TimerController.h b/src/components/timer/TimerController.h deleted file mode 100644 index fa7bc90..0000000 --- a/src/components/timer/TimerController.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -#include <cstdint> -#include "app_timer.h" -#include "portmacro_cmsis.h" - -namespace Pinetime { - namespace System { - class SystemTask; - } - namespace Controllers { - - class TimerController { - public: - TimerController() = default; - - void Init(); - - void StartTimer(uint32_t duration); - - void StopTimer(); - - uint32_t GetTimeRemaining(); - - bool IsRunning(); - - void OnTimerEnd(); - - void Register(System::SystemTask* systemTask); - - private: - System::SystemTask* systemTask = nullptr; - TickType_t endTicks; - bool timerRunning = false; - }; - } -}
\ No newline at end of file |
