diff options
Diffstat (limited to 'src/components/datetime')
-rw-r--r-- | src/components/datetime/DateTimeController.cpp | 16 | ||||
-rw-r--r-- | src/components/datetime/DateTimeController.h | 2 |
2 files changed, 18 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; }; } |