diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-05-12 07:18:34 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-05-12 07:26:11 (GMT) |
| commit | 181b30eccf79f6a9e6f30f3eefa312b6681f37dd (patch) | |
| tree | 77c4c8def1ec67daf8e931a2cb65c7ccba44f5d1 /src/systemtask | |
| parent | 948661c9f650d59aa05ad93855703dab86603673 (diff) | |
Add 5-minutes chimes
Diffstat (limited to 'src/systemtask')
| -rw-r--r-- | src/systemtask/Messages.h | 2 | ||||
| -rw-r--r-- | src/systemtask/SystemTask.cpp | 41 |
2 files changed, 24 insertions, 19 deletions
diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h index ecd1a48..716aeef 100644 --- a/src/systemtask/Messages.h +++ b/src/systemtask/Messages.h @@ -23,7 +23,7 @@ namespace Pinetime { DisableSleeping, OnNewDay, OnNewHour, - OnNewHalfHour, + OnChime, OnChargingEvent, OnPairing, SetOffAlarm, diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 4f81271..a5ac0fa 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -408,26 +408,31 @@ void SystemTask::Work() { stepCounterMustBeReset = true; break; case Messages::OnNewHour: + case Messages::OnChime: using Pinetime::Controllers::AlarmController; - if (settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::Hours && - alarmController.State() != AlarmController::AlarmState::Alerting) { - if (isSleeping && !isWakingUp) { - GoToRunning(); - displayApp.PushMessage(Pinetime::Applications::Display::Messages::Clock); + if (alarmController.State() != AlarmController::AlarmState::Alerting) do { + auto chimeOption = settingsController.GetChimeOption(); + if (chimeOption != Controllers::Settings::ChimesOption::None) { + uint8_t chimeDuration; + bool chimeWakeup = false; + uint8_t minute; + if (message == Messages::OnNewHour) { + chimeDuration = 22; + chimeWakeup = true; + } else if (chimeOption >= Controllers::Settings::ChimesOption::HalfHours && (minute = dateTimeController.Minutes()) == 30) { + chimeDuration = 18; + } else if (chimeOption > Controllers::Settings::ChimesOption::HalfHours) { + chimeDuration = 11; + } else { + break; + } + if (chimeWakeup && isSleeping && !isWakingUp) { + GoToRunning(); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::Clock); + } + motorController.RunForDuration(chimeDuration); } - motorController.RunForDuration(35); - } - break; - case Messages::OnNewHalfHour: - using Pinetime::Controllers::AlarmController; - if (settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::HalfHours && - alarmController.State() != AlarmController::AlarmState::Alerting) { - if (isSleeping && !isWakingUp) { - GoToRunning(); - displayApp.PushMessage(Pinetime::Applications::Display::Messages::Clock); - } - motorController.RunForDuration(35); - } + } while(0); break; case Messages::OnChargingEvent: batteryController.ReadPowerState(); |
