From 75e74904e82a18012436a3d496223d2d53111866 Mon Sep 17 00:00:00 2001 From: JF Date: Thu, 26 Dec 2019 18:33:40 +0100 Subject: Use push button to go to sleep/wake up. Use a queue to transmit messages between system and display task (sleep & wake up for now). --- src/DisplayApp/DisplayApp.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/DisplayApp/DisplayApp.h') diff --git a/src/DisplayApp/DisplayApp.h b/src/DisplayApp/DisplayApp.h index e89ff64f..b15c3580 100644 --- a/src/DisplayApp/DisplayApp.h +++ b/src/DisplayApp/DisplayApp.h @@ -5,6 +5,7 @@ #include #include #include +#include extern const FONT_INFO lCD_70ptFontInfo; @@ -12,6 +13,9 @@ namespace Pinetime { namespace Applications { class DisplayApp { public: + enum class States {Idle, Running}; + enum class Messages : uint8_t {GoToSleep, GoToRunning} ; + DisplayApp(); void Start(); void Minutes(uint8_t m); @@ -19,6 +23,8 @@ namespace Pinetime { void SetTime(uint8_t minutes, uint8_t hours); + void PushMessage(Messages msg); + private: TaskHandle_t taskHandle; static void Process(void* instance); @@ -29,13 +35,20 @@ namespace Pinetime { const FONT_INFO largeFont {lCD_70ptFontInfo.height, lCD_70ptFontInfo.startChar, lCD_70ptFontInfo.endChar, lCD_70ptFontInfo.spacePixels, lCD_70ptFontInfo.charInfo, lCD_70ptFontInfo.data}; void Refresh(); - - uint8_t seconds = 0; uint8_t minutes = 0; uint8_t hours = 0; char currentChar[4]; uint32_t deltaSeconds = 0; + + States state = States::Running; + void RunningState(); + void IdleState(); + QueueHandle_t msgQueue; + + static constexpr uint8_t queueSize = 10; + static constexpr uint8_t itemSize = 1; + }; } } -- cgit v1.2.3-70-g09d2