From 5ab255b26b4f23ca4b6fab2a660f8cf55fcda48b Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 25 Feb 2023 10:25:38 +0200 Subject: SystemTask: Move MotorController to DisplayApp Vibrations should be associated with something happening on the UI. Therefore SystemTask should not be controlling the motor. --- src/displayapp/screens/Alarm.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/displayapp/screens/Alarm.cpp') 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); -- cgit v1.2.3-70-g09d2