Skip to content

Commit 319311a

Browse files
committed
chimes: Different vibration patterns for each time of hour
1 parent 66e4b16 commit 319311a

File tree

6 files changed

+62
-16
lines changed

6 files changed

+62
-16
lines changed

src/components/datetime/DateTimeController.cpp

+16-7
Original file line numberDiff line numberDiff line change
@@ -117,22 +117,31 @@ void DateTime::UpdateTime(uint32_t systickCounter, bool forceUpdate) {
117117
isHourAlreadyNotified = false;
118118
}
119119

120-
if ((minute == 0 || minute == 30) && !isHalfHourAlreadyNotified) {
120+
if (minute == 15 && !isQuarterHourAlreadyNotified) {
121+
isQuarterHourAlreadyNotified = true;
122+
if (systemTask != nullptr) {
123+
systemTask->PushMessage(System::Messages::OnNewQuarterHour);
124+
}
125+
} else if (minute != 15) {
126+
isQuarterHourAlreadyNotified = false;
127+
}
128+
129+
if (minute == 30 && !isHalfHourAlreadyNotified) {
121130
isHalfHourAlreadyNotified = true;
122131
if (systemTask != nullptr) {
123132
systemTask->PushMessage(System::Messages::OnNewHalfHour);
124133
}
125-
} else if (minute != 0 && minute != 30) {
134+
} else if (minute != 30) {
126135
isHalfHourAlreadyNotified = false;
127136
}
128137

129-
if ((minute == 0 || minute == 15 || minute == 30 || minute == 45) && !isQuarterHourAlreadyNotified) {
130-
isQuarterHourAlreadyNotified = true;
138+
if (minute == 45 && !isThreeQuarterHourAlreadyNotified) {
139+
isThreeQuarterHourAlreadyNotified = true;
131140
if (systemTask != nullptr) {
132-
systemTask->PushMessage(System::Messages::OnNewQuarterHour);
141+
systemTask->PushMessage(System::Messages::OnNewThreeQuarterHour);
133142
}
134-
} else if (minute != 0 && minute != 15 && minute != 30 && minute != 45) {
135-
isQuarterHourAlreadyNotified = false;
143+
} else if (minute != 45) {
144+
isThreeQuarterHourAlreadyNotified = false;
136145
}
137146

138147
// Notify new day to SystemTask

src/components/datetime/DateTimeController.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,9 @@ namespace Pinetime {
153153

154154
bool isMidnightAlreadyNotified = false;
155155
bool isHourAlreadyNotified = true;
156-
bool isHalfHourAlreadyNotified = true;
157156
bool isQuarterHourAlreadyNotified = true;
157+
bool isHalfHourAlreadyNotified = true;
158+
bool isThreeQuarterHourAlreadyNotified = true;
158159
System::SystemTask* systemTask = nullptr;
159160
Controllers::Settings& settingsController;
160161
};

src/displayapp/DisplayApp.cpp

+26-2
Original file line numberDiff line numberDiff line change
@@ -471,9 +471,33 @@ void DisplayApp::Refresh() {
471471
case Messages::BleRadioEnableToggle:
472472
PushMessageToSystemTask(System::Messages::BleRadioEnableToggle);
473473
break;
474-
case Messages::Chime:
474+
case Messages::FullHourChime:
475475
LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None);
476-
motorController.RunForDuration(35);
476+
motorController.RunForDuration(100);
477+
break;
478+
case Messages::QuarterHourChime:
479+
LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None);
480+
motorController.RunForDuration(100);
481+
vTaskDelay(pdMS_TO_TICKS(500));
482+
motorController.RunForDuration(100);
483+
break;
484+
case Messages::HalfHourChime:
485+
LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None);
486+
motorController.RunForDuration(100);
487+
vTaskDelay(pdMS_TO_TICKS(500));
488+
motorController.RunForDuration(100);
489+
vTaskDelay(pdMS_TO_TICKS(500));
490+
motorController.RunForDuration(100);
491+
break;
492+
case Messages::ThreeQuarterHourChime:
493+
LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None);
494+
motorController.RunForDuration(100);
495+
vTaskDelay(pdMS_TO_TICKS(500));
496+
motorController.RunForDuration(100);
497+
vTaskDelay(pdMS_TO_TICKS(500));
498+
motorController.RunForDuration(100);
499+
vTaskDelay(pdMS_TO_TICKS(500));
500+
motorController.RunForDuration(100);
477501
break;
478502
case Messages::OnChargingEvent:
479503
motorController.RunForDuration(15);

src/displayapp/Messages.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ namespace Pinetime {
2222
NotifyDeviceActivity,
2323
ShowPairingKey,
2424
AlarmTriggered,
25-
Chime,
25+
FullHourChime,
26+
QuarterHourChime,
27+
HalfHourChime,
28+
ThreeQuarterHourChime,
2629
BleRadioEnableToggle,
2730
OnChargingEvent,
2831
};

src/systemtask/Messages.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ namespace Pinetime {
2121
DisableSleeping,
2222
OnNewDay,
2323
OnNewHour,
24-
OnNewHalfHour,
2524
OnNewQuarterHour,
25+
OnNewHalfHour,
26+
OnNewThreeQuarterHour,
2627
OnChargingEvent,
2728
OnPairing,
2829
SetOffAlarm,

src/systemtask/SystemTask.cpp

+12-4
Original file line numberDiff line numberDiff line change
@@ -325,23 +325,31 @@ void SystemTask::Work() {
325325
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
326326
settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::Hours && !alarmController.IsAlerting()) {
327327
GoToRunning();
328-
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Chime);
328+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::FullHourChime);
329+
}
330+
break;
331+
case Messages::OnNewQuarterHour:
332+
using Pinetime::Controllers::AlarmController;
333+
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
334+
settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::QuarterHours && !alarmController.IsAlerting()) {
335+
GoToRunning();
336+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::QuarterHourChime);
329337
}
330338
break;
331339
case Messages::OnNewHalfHour:
332340
using Pinetime::Controllers::AlarmController;
333341
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
334342
settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::HalfHours && !alarmController.IsAlerting()) {
335343
GoToRunning();
336-
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Chime);
344+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::HalfHourChime);
337345
}
338346
break;
339-
case Messages::OnNewQuarterHour:
347+
case Messages::OnNewThreeQuarterHour:
340348
using Pinetime::Controllers::AlarmController;
341349
if (settingsController.GetNotificationStatus() != Controllers::Settings::Notification::Sleep &&
342350
settingsController.GetChimeOption() == Controllers::Settings::ChimesOption::QuarterHours && !alarmController.IsAlerting()) {
343351
GoToRunning();
344-
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Chime);
352+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::ThreeQuarterHourChime);
345353
}
346354
break;
347355
case Messages::OnChargingEvent:

0 commit comments

Comments
 (0)