summaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
authorSteveAmor <SteveAmor@users.noreply.github.com>2021-11-07 10:50:33 (GMT)
committerSteveAmor <SteveAmor@users.noreply.github.com>2021-11-07 10:50:33 (GMT)
commit5932391c8b2178cc0beed9f4c2b0aa4a24ac7e1f (patch)
tree0aa7b5045e4bfb473b066aa23a1a2380442db358 /src/components
parent0aa73c2279f81a3cc2c730d253807b6102033195 (diff)
Chimes option
Diffstat (limited to 'src/components')
-rw-r--r--src/components/datetime/DateTimeController.cpp16
-rw-r--r--src/components/datetime/DateTimeController.h2
-rw-r--r--src/components/settings/Settings.h11
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;