diff options
Diffstat (limited to 'src/displayapp')
| -rw-r--r-- | src/displayapp/DisplayApp.cpp | 13 | ||||
| -rw-r--r-- | src/displayapp/Messages.h | 5 | ||||
| -rw-r--r-- | src/displayapp/screens/Alarm.cpp | 7 | ||||
| -rw-r--r-- | src/displayapp/screens/Alarm.h | 4 |
4 files changed, 22 insertions, 7 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 41e73f33..055a6a80 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -127,6 +127,7 @@ void DisplayApp::Process(void* instance) { void DisplayApp::InitHw() { brightnessController.Init(); ApplyBrightness(); + motorController.Init(); } void DisplayApp::Refresh() { @@ -206,6 +207,7 @@ void DisplayApp::Refresh() { } else { LoadNewScreen(Apps::Timer, DisplayApp::FullRefreshDirections::Up); } + motorController.RunForDuration(35); break; case Messages::AlarmTriggered: if (currentApp == Apps::Alarm) { @@ -217,6 +219,7 @@ void DisplayApp::Refresh() { break; case Messages::ShowPairingKey: LoadNewScreen(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); + motorController.RunForDuration(35); break; case Messages::TouchEvent: { if (state != States::Running) { @@ -307,8 +310,12 @@ void DisplayApp::Refresh() { // Added to remove warning // What should happen here? break; - case Messages::Clock: + case Messages::Chime: LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None); + motorController.RunForDuration(35); + break; + case Messages::OnChargingEvent: + motorController.RunForDuration(15); break; } } @@ -342,6 +349,7 @@ void DisplayApp::LoadNewScreen(Apps app, DisplayApp::FullRefreshDirections direc void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections direction) { lvgl.CancelTap(); ApplyBrightness(); + motorController.StopRinging(); currentScreen.reset(nullptr); SetFullRefresh(direction); @@ -399,7 +407,8 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio currentScreen = std::make_unique<Screens::Timer>(this, timerController); break; case Apps::Alarm: - currentScreen = std::make_unique<Screens::Alarm>(this, alarmController, settingsController.GetClockType(), *systemTask); + currentScreen = + std::make_unique<Screens::Alarm>(this, alarmController, settingsController.GetClockType(), *systemTask, motorController); break; // Settings diff --git a/src/displayapp/Messages.h b/src/displayapp/Messages.h index afa7709a..b670b1aa 100644 --- a/src/displayapp/Messages.h +++ b/src/displayapp/Messages.h @@ -22,8 +22,9 @@ namespace Pinetime { RestoreBrightness, ShowPairingKey, AlarmTriggered, - Clock, - BleRadioEnableToggle + Chime, + BleRadioEnableToggle, + OnChargingEvent, }; } } diff --git a/src/displayapp/screens/Alarm.cpp b/src/displayapp/screens/Alarm.cpp index d6371ce6..371e0185 100644 --- a/src/displayapp/screens/Alarm.cpp +++ b/src/displayapp/screens/Alarm.cpp @@ -43,8 +43,9 @@ static void StopAlarmTaskCallback(lv_task_t* task) { Alarm::Alarm(DisplayApp* app, Controllers::AlarmController& alarmController, Controllers::Settings::ClockType clockType, - System::SystemTask& systemTask) - : Screen(app), alarmController {alarmController}, systemTask {systemTask} { + System::SystemTask& systemTask, + Controllers::MotorController& motorController) + : Screen(app), alarmController {alarmController}, systemTask {systemTask}, motorController {motorController} { hourCounter.Create(); lv_obj_align(hourCounter.GetObject(), nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 0); @@ -200,11 +201,13 @@ void Alarm::SetAlerting() { lv_obj_set_hidden(enableSwitch, true); lv_obj_set_hidden(btnStop, false); taskStopAlarm = lv_task_create(StopAlarmTaskCallback, pdMS_TO_TICKS(60 * 1000), LV_TASK_PRIO_MID, this); + motorController.StartRinging(); systemTask.PushMessage(System::Messages::DisableSleeping); } void Alarm::StopAlerting() { alarmController.StopAlerting(); + motorController.StopRinging(); SetSwitchState(LV_ANIM_OFF); if (taskStopAlarm != nullptr) { lv_task_del(taskStopAlarm); diff --git a/src/displayapp/screens/Alarm.h b/src/displayapp/screens/Alarm.h index fba9d5d9..d7935549 100644 --- a/src/displayapp/screens/Alarm.h +++ b/src/displayapp/screens/Alarm.h @@ -31,7 +31,8 @@ namespace Pinetime { Alarm(DisplayApp* app, Controllers::AlarmController& alarmController, Controllers::Settings::ClockType clockType, - System::SystemTask& systemTask); + System::SystemTask& systemTask, + Controllers::MotorController& motorController); ~Alarm() override; void SetAlerting(); void OnButtonEvent(lv_obj_t* obj, lv_event_t event); @@ -43,6 +44,7 @@ namespace Pinetime { private: Controllers::AlarmController& alarmController; System::SystemTask& systemTask; + Controllers::MotorController& motorController; lv_obj_t *btnStop, *txtStop, *btnRecur, *txtRecur, *btnInfo, *enableSwitch; lv_obj_t* lblampm = nullptr; |
