|
|
@ -57,6 +57,11 @@ namespace {
|
|
|
|
inline bool in_isr() {
|
|
|
|
inline bool in_isr() {
|
|
|
|
return (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0;
|
|
|
|
return (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void TimerCallback(TimerHandle_t xTimer) {
|
|
|
|
|
|
|
|
auto* dispApp = static_cast<DisplayApp*>(pvTimerGetTimerID(xTimer));
|
|
|
|
|
|
|
|
dispApp->PushMessage(Display::Messages::TimerDone);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DisplayApp::DisplayApp(Drivers::St7789& lcd,
|
|
|
|
DisplayApp::DisplayApp(Drivers::St7789& lcd,
|
|
|
@ -70,7 +75,6 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd,
|
|
|
|
Controllers::Settings& settingsController,
|
|
|
|
Controllers::Settings& settingsController,
|
|
|
|
Pinetime::Controllers::MotorController& motorController,
|
|
|
|
Pinetime::Controllers::MotorController& motorController,
|
|
|
|
Pinetime::Controllers::MotionController& motionController,
|
|
|
|
Pinetime::Controllers::MotionController& motionController,
|
|
|
|
Pinetime::Controllers::TimerController& timerController,
|
|
|
|
|
|
|
|
Pinetime::Controllers::AlarmController& alarmController,
|
|
|
|
Pinetime::Controllers::AlarmController& alarmController,
|
|
|
|
Pinetime::Controllers::BrightnessController& brightnessController,
|
|
|
|
Pinetime::Controllers::BrightnessController& brightnessController,
|
|
|
|
Pinetime::Controllers::TouchHandler& touchHandler,
|
|
|
|
Pinetime::Controllers::TouchHandler& touchHandler,
|
|
|
@ -86,12 +90,12 @@ DisplayApp::DisplayApp(Drivers::St7789& lcd,
|
|
|
|
settingsController {settingsController},
|
|
|
|
settingsController {settingsController},
|
|
|
|
motorController {motorController},
|
|
|
|
motorController {motorController},
|
|
|
|
motionController {motionController},
|
|
|
|
motionController {motionController},
|
|
|
|
timerController {timerController},
|
|
|
|
|
|
|
|
alarmController {alarmController},
|
|
|
|
alarmController {alarmController},
|
|
|
|
brightnessController {brightnessController},
|
|
|
|
brightnessController {brightnessController},
|
|
|
|
touchHandler {touchHandler},
|
|
|
|
touchHandler {touchHandler},
|
|
|
|
filesystem {filesystem},
|
|
|
|
filesystem {filesystem},
|
|
|
|
lvgl {lcd, filesystem} {
|
|
|
|
lvgl {lcd, filesystem},
|
|
|
|
|
|
|
|
timerController(this, TimerCallback) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DisplayApp::Start(System::BootErrors error) {
|
|
|
|
void DisplayApp::Start(System::BootErrors error) {
|
|
|
@ -238,6 +242,9 @@ void DisplayApp::Refresh() {
|
|
|
|
LoadNewScreen(Apps::NotificationsPreview, DisplayApp::FullRefreshDirections::Down);
|
|
|
|
LoadNewScreen(Apps::NotificationsPreview, DisplayApp::FullRefreshDirections::Down);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case Messages::TimerDone:
|
|
|
|
case Messages::TimerDone:
|
|
|
|
|
|
|
|
if (state != States::Running) {
|
|
|
|
|
|
|
|
PushMessageToSystemTask(System::Messages::GoToRunning);
|
|
|
|
|
|
|
|
}
|
|
|
|
if (currentApp == Apps::Timer) {
|
|
|
|
if (currentApp == Apps::Timer) {
|
|
|
|
lv_disp_trig_activity(nullptr);
|
|
|
|
lv_disp_trig_activity(nullptr);
|
|
|
|
auto* timer = static_cast<Screens::Timer*>(currentScreen.get());
|
|
|
|
auto* timer = static_cast<Screens::Timer*>(currentScreen.get());
|
|
|
|