summaryrefslogtreecommitdiff
path: root/src/components/timer/TimerController.h
diff options
context:
space:
mode:
authorFlorian <fgrauper@gmail.com>2021-05-20 18:43:54 (GMT)
committerGitHub <noreply@github.com>2021-05-20 18:43:54 (GMT)
commit13e3463276114dff838fc8fe281754eecfbe9538 (patch)
tree55ded8860f26ff7f5f1ffb585d35a252f36f9148 /src/components/timer/TimerController.h
parent8c3b250dbfe17be61462adc8f84760ce9a648e55 (diff)
Timer App (#355)
* built timer app * Style improvements * making sure buttons stay hidden when the app is reopened and reappear after the timer runs out * more sensible calculations of time deltas. eliminated that mysterious scaling factor * changing the timer icon
Diffstat (limited to 'src/components/timer/TimerController.h')
-rw-r--r--src/components/timer/TimerController.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/components/timer/TimerController.h b/src/components/timer/TimerController.h
new file mode 100644
index 0000000..5a0b293
--- /dev/null
+++ b/src/components/timer/TimerController.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <cstdint>
+#include "app_timer.h"
+#include "portmacro_cmsis.h"
+
+namespace Pinetime {
+ namespace System {
+ class SystemTask;
+ }
+ namespace Controllers {
+
+ class TimerController {
+ public:
+ TimerController(Pinetime::System::SystemTask& systemTask);
+
+ void Init();
+
+ void StartTimer(uint32_t duration);
+
+ void StopTimer();
+
+ uint32_t GetTimeRemaining();
+
+ bool IsRunning();
+
+ private:
+ System::SystemTask& systemTask;
+
+ static void timerEnd(void* p_context);
+
+ TickType_t endTicks;
+ bool timerRunning = false;
+ };
+ }
+} \ No newline at end of file