diff options
| author | SteveAmor <SteveAmor@users.noreply.github.com> | 2021-11-07 10:50:33 (GMT) |
|---|---|---|
| committer | SteveAmor <SteveAmor@users.noreply.github.com> | 2021-11-07 10:50:33 (GMT) |
| commit | 5932391c8b2178cc0beed9f4c2b0aa4a24ac7e1f (patch) | |
| tree | 0aa7b5045e4bfb473b066aa23a1a2380442db358 /src/components | |
| parent | 0aa73c2279f81a3cc2c730d253807b6102033195 (diff) | |
Chimes option
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/datetime/DateTimeController.cpp | 16 | ||||
| -rw-r--r-- | src/components/datetime/DateTimeController.h | 2 | ||||
| -rw-r--r-- | src/components/settings/Settings.h | 11 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/components/datetime/DateTimeController.cpp b/src/components/datetime/DateTimeController.cpp index e9c5d87..2513e42 100644 --- a/src/components/datetime/DateTimeController.cpp +++ b/src/components/datetime/DateTimeController.cpp @@ -75,6 +75,22 @@ void DateTime::UpdateTime(uint32_t systickCounter) { minute = time.minutes().count(); second = time.seconds().count(); + if(minute == 0 and not isHourAlreadyNotified) { + isHourAlreadyNotified = true; + if(systemTask != nullptr) + systemTask->PushMessage(System::Messages::OnNewHour); + } else if (minute != 0) { + isHourAlreadyNotified = false; + } + + if((minute == 0 or minute == 30) and not isHalfHourAlreadyNotified) { + isHalfHourAlreadyNotified = true; + if(systemTask != nullptr) + systemTask->PushMessage(System::Messages::OnNewHalfHour); + } else if (minute != 0 and minute != 30) { + isHalfHourAlreadyNotified = false; + } + // Notify new day to SystemTask if (hour == 0 and not isMidnightAlreadyNotified) { isMidnightAlreadyNotified = true; diff --git a/src/components/datetime/DateTimeController.h b/src/components/datetime/DateTimeController.h index 77ed68e..cbc8044 100644 --- a/src/components/datetime/DateTimeController.h +++ b/src/components/datetime/DateTimeController.h @@ -86,6 +86,8 @@ namespace Pinetime { std::chrono::seconds uptime {0}; bool isMidnightAlreadyNotified = false; + bool isHourAlreadyNotified = true; + bool isHalfHourAlreadyNotified = true; System::SystemTask* systemTask = nullptr; }; } diff --git a/src/components/settings/Settings.h b/src/components/settings/Settings.h index 871ff3b..b7e4dcf 100644 --- a/src/components/settings/Settings.h +++ b/src/components/settings/Settings.h @@ -41,6 +41,16 @@ namespace Pinetime { return settings.clockFace; }; + void SetChimesState(uint8_t state) { + if (state != settings.chimesState) { + settingsChanged = true; + } + settings.chimesState = state; + }; + uint8_t GetChimesState() const { + return settings.chimesState; + }; + void SetPTSColorTime(Colors colorTime) { if (colorTime != settings.PTS.ColorTime) settingsChanged = true; @@ -173,6 +183,7 @@ namespace Pinetime { Notification notificationStatus = Notification::ON; uint8_t clockFace = 0; + uint8_t chimesState = 0; PineTimeStyle PTS; |
