diff options
Diffstat (limited to 'src/displayapp/screens/StopWatch.h')
| -rw-r--r-- | src/displayapp/screens/StopWatch.h | 89 |
1 files changed, 52 insertions, 37 deletions
diff --git a/src/displayapp/screens/StopWatch.h b/src/displayapp/screens/StopWatch.h index d1acd162..c3550fc4 100644 --- a/src/displayapp/screens/StopWatch.h +++ b/src/displayapp/screens/StopWatch.h @@ -7,50 +7,65 @@ #include "portmacro_cmsis.h" #include "systemtask/SystemTask.h" +#include "displayapp/Apps.h" +#include "displayapp/Controllers.h" +#include "Symbols.h" -namespace Pinetime::Applications::Screens { +namespace Pinetime { + namespace Applications { + namespace Screens { - enum class States { Init, Running, Halted }; + enum class States { Init, Running, Halted }; - struct TimeSeparated_t { - int hours; - int mins; - int secs; - int hundredths; - }; + struct TimeSeparated_t { + int hours; + int mins; + int secs; + int hundredths; + }; - class StopWatch : public Screen { - public: - explicit StopWatch(System::SystemTask& systemTask); - ~StopWatch() override; - void Refresh() override; + class StopWatch : public Screen { + public: + explicit StopWatch(System::SystemTask& systemTask); + ~StopWatch() override; + void Refresh() override; - void playPauseBtnEventHandler(); - void stopLapBtnEventHandler(); - bool OnButtonPushed() override; + void playPauseBtnEventHandler(); + void stopLapBtnEventHandler(); + bool OnButtonPushed() override; - private: - void SetInterfacePaused(); - void SetInterfaceRunning(); - void SetInterfaceStopped(); + private: + void SetInterfacePaused(); + void SetInterfaceRunning(); + void SetInterfaceStopped(); - void Reset(); - void Start(); - void Pause(); + void Reset(); + void Start(); + void Pause(); - Pinetime::System::SystemTask& systemTask; - States currentState = States::Init; - TickType_t startTime; - TickType_t oldTimeElapsed = 0; - TickType_t blinkTime = 0; - static constexpr int maxLapCount = 20; - TickType_t laps[maxLapCount + 1]; - static constexpr int displayedLaps = 2; - int lapsDone = 0; - lv_obj_t *time, *msecTime, *btnPlayPause, *btnStopLap, *txtPlayPause, *txtStopLap; - lv_obj_t* lapText; - bool isHoursLabelUpdated = false; + Pinetime::System::SystemTask& systemTask; + States currentState = States::Init; + TickType_t startTime; + TickType_t oldTimeElapsed = 0; + TickType_t blinkTime = 0; + static constexpr int maxLapCount = 20; + TickType_t laps[maxLapCount + 1]; + static constexpr int displayedLaps = 2; + int lapsDone = 0; + lv_obj_t *time, *msecTime, *btnPlayPause, *btnStopLap, *txtPlayPause, *txtStopLap; + lv_obj_t* lapText; + bool isHoursLabelUpdated = false; - lv_task_t* taskRefresh; - }; + lv_task_t* taskRefresh; + }; + } + template <> + struct AppTraits<Apps::StopWatch> { + static constexpr Apps app = Apps::StopWatch; + static constexpr const char* icon = Screens::Symbols::stopWatch; + static Screens::Screen* Create(AppControllers& controllers) { + return new Screens::StopWatch(*controllers.systemTask); + }; + }; + } } |
