aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/timer/TimerController.cpp
diff options
context:
space:
mode:
authorJF002 <JF002@users.noreply.github.com>2021-06-12 11:02:06 +0200
committerGitHub <noreply@github.com>2021-06-12 11:02:06 +0200
commit0ce98c7ac7ba66acaf504be9bb042796e12f2733 (patch)
tree3f9c7f96f0fab64f581035c72480596a4cc4db43 /src/components/timer/TimerController.cpp
parent79f0fcb07aa80eb70385223272e29f2ba5657bc8 (diff)
parent6d524ebea2c97e309633d5e01c3a1e37c182f27d (diff)
Merge pull request #415 from JF002/move-heap-to-static
Move dynamically allocated variables to static variables.
Diffstat (limited to 'src/components/timer/TimerController.cpp')
-rw-r--r--src/components/timer/TimerController.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/components/timer/TimerController.cpp b/src/components/timer/TimerController.cpp
index 3b25901c..8d5f5c33 100644
--- a/src/components/timer/TimerController.cpp
+++ b/src/components/timer/TimerController.cpp
@@ -12,14 +12,17 @@ using namespace Pinetime::Controllers;
APP_TIMER_DEF(timerAppTimer);
-
-TimerController::TimerController(System::SystemTask& systemTask) : systemTask{systemTask} {
+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);
-
+ app_timer_create(&timerAppTimer, APP_TIMER_MODE_SINGLE_SHOT, TimerEnd);
}
void TimerController::StartTimer(uint32_t duration) {
@@ -47,13 +50,6 @@ uint32_t TimerController::GetTimeRemaining() {
return (static_cast<TickType_t>(deltaTicks) / static_cast<TickType_t>(configTICK_RATE_HZ)) * 1000;
}
-void TimerController::timerEnd(void* p_context) {
-
- auto* controller = static_cast<Controllers::TimerController*> (p_context);
- controller->timerRunning = false;
- controller->systemTask.PushMessage(System::SystemTask::Messages::OnTimerDone);
-}
-
void TimerController::StopTimer() {
app_timer_stop(timerAppTimer);
timerRunning = false;
@@ -61,4 +57,13 @@ void TimerController::StopTimer() {
bool TimerController::IsRunning() {
return timerRunning;
-} \ No newline at end of file
+}
+void TimerController::OnTimerEnd() {
+ timerRunning = false;
+ if(systemTask != nullptr)
+ systemTask->PushMessage(System::Messages::OnTimerDone);
+}
+
+void TimerController::Register(Pinetime::System::SystemTask* systemTask) {
+ this->systemTask = systemTask;
+}