diff options
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 e9c5d870..2513e427 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 77ed68e8..cbc80447 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 871ff3b6..b7e4dcf6 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; |