#pragma once #include #include #include namespace Pinetime { namespace System { class SystemTask; } namespace Controllers { class TimerController { public: TimerController() = default; void StartTimer(uint32_t duration); void StopTimer(); void StopAlerting(); int32_t GetSecondsRemaining(); inline bool IsOvertime() { return overtime; } inline bool IsRunning() { return timerRunning; } void OnTimerEnd(); protected: friend class Pinetime::System::SystemTask; void Init(System::SystemTask* systemTask); private: System::SystemTask* systemTask = nullptr; TimerHandle_t timer; bool timerRunning = false; bool overtime = false; }; } }