summaryrefslogtreecommitdiff
path: root/src/displayapp/DisplayApp.h
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2021-04-21 18:19:57 (GMT)
committerGitea <gitea@fake.local>2021-04-21 18:19:57 (GMT)
commita80e782f267cd2424d22da23d809c0c6a8ff8761 (patch)
treeca2bdb100ea98d361296a61352679f63a507f955 /src/displayapp/DisplayApp.h
parent24d3eea4fba05d774ace794eb8c9b21b8f2aa8c6 (diff)
parentfefb429fb4bf1020553900d9e514d3baa9040325 (diff)
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/displayapp/DisplayApp.h')
-rw-r--r--src/displayapp/DisplayApp.h61
1 files changed, 35 insertions, 26 deletions
diff --git a/src/displayapp/DisplayApp.h b/src/displayapp/DisplayApp.h
index c22aa1f..85aee0f 100644
--- a/src/displayapp/DisplayApp.h
+++ b/src/displayapp/DisplayApp.h
@@ -27,6 +27,7 @@ namespace Pinetime {
class DateTime;
class NotificationManager;
class HeartRateController;
+ class MotionController;
}
namespace System {
@@ -36,7 +37,7 @@ namespace Pinetime {
class DisplayApp {
public:
enum class States {Idle, Running};
- enum class FullRefreshDirections { None, Up, Down };
+ enum class FullRefreshDirections { None, Up, Down, Left, Right, LeftAnim, RightAnim };
enum class TouchModes { Gestures, Polling };
DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Drivers::Cst816S &,
@@ -45,53 +46,61 @@ namespace Pinetime {
System::SystemTask &systemTask,
Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::HeartRateController& heartRateController,
- Controllers::Settings &settingsController
+ Controllers::Settings &settingsController,
+ Pinetime::Controllers::MotionController& motionController
);
void Start();
void PushMessage(Display::Messages msg);
- void StartApp(Apps app);
+ void StartApp(Apps app, DisplayApp::FullRefreshDirections direction);
void SetFullRefresh(FullRefreshDirections direction);
void SetTouchMode(TouchModes mode);
private:
- TaskHandle_t taskHandle;
- static void Process(void* instance);
- void InitHw();
+
Pinetime::Drivers::St7789& lcd;
Pinetime::Components::LittleVgl& lvgl;
- void Refresh();
+ Pinetime::Drivers::Cst816S& touchPanel;
+ Pinetime::Controllers::Battery &batteryController;
+ Pinetime::Controllers::Ble &bleController;
+ Pinetime::Controllers::DateTime& dateTimeController;
+ Pinetime::Drivers::WatchdogView& watchdog;
+ Pinetime::System::SystemTask& systemTask;
+ Pinetime::Controllers::NotificationManager& notificationManager;
+ Pinetime::Controllers::HeartRateController& heartRateController;
+ Pinetime::Controllers::Settings& settingsController;
+ Pinetime::Controllers::MotionController& motionController;
+
+ Pinetime::Controllers::FirmwareValidator validator;
+ Controllers::BrightnessController brightnessController;
+
+ TaskHandle_t taskHandle;
States state = States::Running;
- void RunningState();
- void IdleState();
QueueHandle_t msgQueue;
static constexpr uint8_t queueSize = 10;
static constexpr uint8_t itemSize = 1;
- Pinetime::Controllers::Battery &batteryController;
- Pinetime::Controllers::Ble &bleController;
- Pinetime::Controllers::DateTime& dateTimeController;
- Pinetime::Drivers::WatchdogView& watchdog;
-
- Pinetime::Drivers::Cst816S& touchPanel;
- TouchEvents OnTouchEvent();
-
std::unique_ptr<Screens::Screen> currentScreen;
- bool isClock = true;
+ Apps currentApp = Apps::None;
+ Apps returnToApp = Apps::None;
+ FullRefreshDirections returnDirection = FullRefreshDirections::None;
+ TouchEvents returnTouchEvent = TouchEvents::None;
- Pinetime::System::SystemTask& systemTask;
- Apps nextApp = Apps::None;
- bool onClockApp = false; // TODO find a better way to know that we should handle gestures and button differently for the Clock app.
- Controllers::BrightnessController brightnessController;
- Pinetime::Controllers::NotificationManager& notificationManager;
- Pinetime::Controllers::FirmwareValidator validator;
TouchModes touchMode = TouchModes::Gestures;
- Pinetime::Controllers::HeartRateController& heartRateController;
- Pinetime::Controllers::Settings& settingsController;
+
+ TouchEvents OnTouchEvent();
+ void RunningState();
+ void IdleState();
+ static void Process(void* instance);
+ void InitHw();
+ void Refresh();
+ void returnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent);
+ void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction);
+
};
}
}