diff options
Diffstat (limited to 'src/displayapp/DisplayApp.h')
| -rw-r--r-- | src/displayapp/DisplayApp.h | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h index 09111865..2f276eaf 100644 --- a/src/displayapp/DisplayApp.h +++ b/src/displayapp/DisplayApp.h @@ -4,7 +4,7 @@ #include <task.h> #include <memory> #include <systemtask/Messages.h> -#include "displayapp/Apps.h" +#include "displayapp/apps/Apps.h" #include "displayapp/LittleVgl.h" #include "displayapp/TouchEvents.h" #include "components/brightness/BrightnessController.h" @@ -12,14 +12,15 @@ #include "components/firmwarevalidator/FirmwareValidator.h" #include "components/settings/Settings.h" #include "displayapp/screens/Screen.h" -#include "components/timer/TimerController.h" +#include "components/timer/Timer.h" #include "components/alarm/AlarmController.h" #include "touchhandler/TouchHandler.h" #include "displayapp/Messages.h" #include "BootErrors.h" -#include "StaticStack.h" +#include "utility/StaticStack.h" +#include "displayapp/Controllers.h" namespace Pinetime { @@ -38,6 +39,7 @@ namespace Pinetime { class HeartRateController; class MotionController; class TouchHandler; + class SimpleWeatherService; } namespace System { @@ -47,7 +49,7 @@ namespace Pinetime { namespace Applications { class DisplayApp { public: - enum class States { Idle, Running }; + enum class States { Idle, Running, AOD }; enum class FullRefreshDirections { None, Up, Down, Left, Right, LeftAnim, RightAnim }; DisplayApp(Drivers::St7789& lcd, @@ -61,11 +63,11 @@ namespace Pinetime { Controllers::Settings& settingsController, Pinetime::Controllers::MotorController& motorController, Pinetime::Controllers::MotionController& motionController, - Pinetime::Controllers::TimerController& timerController, Pinetime::Controllers::AlarmController& alarmController, Pinetime::Controllers::BrightnessController& brightnessController, Pinetime::Controllers::TouchHandler& touchHandler, - Pinetime::Controllers::FS& filesystem); + Pinetime::Controllers::FS& filesystem, + Pinetime::Drivers::SpiNorFlash& spiNorFlash); void Start(System::BootErrors error); void PushMessage(Display::Messages msg); @@ -74,6 +76,9 @@ namespace Pinetime { void SetFullRefresh(FullRefreshDirections direction); void Register(Pinetime::System::SystemTask* systemTask); + void Register(Pinetime::Controllers::SimpleWeatherService* weatherService); + void Register(Pinetime::Controllers::MusicService* musicService); + void Register(Pinetime::Controllers::NavigationService* NavigationService); private: Pinetime::Drivers::St7789& lcd; @@ -88,15 +93,17 @@ namespace Pinetime { Pinetime::Controllers::Settings& settingsController; Pinetime::Controllers::MotorController& motorController; Pinetime::Controllers::MotionController& motionController; - Pinetime::Controllers::TimerController& timerController; Pinetime::Controllers::AlarmController& alarmController; Pinetime::Controllers::BrightnessController& brightnessController; Pinetime::Controllers::TouchHandler& touchHandler; Pinetime::Controllers::FS& filesystem; + Pinetime::Drivers::SpiNorFlash& spiNorFlash; Pinetime::Controllers::FirmwareValidator validator; Pinetime::Components::LittleVgl lvgl; + Pinetime::Controllers::Timer timer; + AppControllers controllers; TaskHandle_t taskHandle; States state = States::Running; @@ -126,8 +133,17 @@ namespace Pinetime { void ApplyBrightness(); static constexpr size_t returnAppStackSize = 10; - StaticStack<Apps, returnAppStackSize> returnAppStack; - StaticStack<FullRefreshDirections, returnAppStackSize> appStackDirections; + Utility::StaticStack<Apps, returnAppStackSize> returnAppStack; + Utility::StaticStack<FullRefreshDirections, returnAppStackSize> appStackDirections; + + bool isDimmed = false; + + TickType_t CalculateSleepTime(); + TickType_t alwaysOnFrameCount; + TickType_t alwaysOnStartTime; + // If this is to be changed, make sure the actual always on refresh rate is changed + // by configuring the LCD refresh timings + static constexpr uint32_t alwaysOnRefreshPeriod = 500; }; } } |
