fix signal tunes not firing in background, and split out foreground/background chime functions

This commit is contained in:
Jeremy O'Brien 2023-09-22 07:29:04 -04:00
parent bc9b4ce700
commit bfde84f01d
6 changed files with 26 additions and 31 deletions

View File

@ -294,9 +294,27 @@ void movement_request_wake() {
}
void movement_play_signal(void) {
watch_buzzer_play_note(BUZZER_NOTE_C8, 75);
watch_buzzer_play_note(BUZZER_NOTE_REST, 100);
watch_buzzer_play_note(BUZZER_NOTE_C8, 100);
}
void movement_play_signal_background(void) {
watch_enable_buzzer();
movement_play_signal();
watch_disable_buzzer();
}
void movement_play_tune(void) {
watch_buzzer_play_sequence(signal_tune, NULL);
}
/* Special version of movement_play_tune meant for use during LE mode */
void movement_play_tune_background(void) {
watch_enable_buzzer();
watch_buzzer_play_sequence(signal_tune, watch_disable_buzzer);
}
void movement_play_alarm(void) {
movement_play_alarm_beeps(5, BUZZER_NOTE_C8);
}

View File

@ -307,6 +307,9 @@ void movement_cancel_background_task_for_face(uint8_t watch_face_index);
void movement_request_wake(void);
void movement_play_signal(void);
void movement_play_signal_background(void);
void movement_play_tune(void);
void movement_play_tune_background(void);
void movement_play_alarm(void);
void movement_play_alarm_beeps(uint8_t rounds, BuzzerNote alarm_note);

View File

@ -151,18 +151,10 @@ bool repetition_minute_face_loop(movement_event_t event, movement_settings_t *se
else watch_clear_indicator(WATCH_INDICATOR_BELL);
break;
case EVENT_BACKGROUND_TASK:
// uncomment this line to snap back to the clock face when the hour signal sounds:
// movement_move_to_face(state->watch_face_index);
if (watch_is_buzzer_or_led_enabled()) {
// if we are in the foreground, we can just beep.
movement_play_signal();
} else {
// if we were in the background, we need to enable the buzzer peripheral first,
watch_enable_buzzer();
// beep quickly (this call blocks for 275 ms),
movement_play_signal();
// and then turn the buzzer peripheral off again.
watch_disable_buzzer();
movement_play_signal_background();
}
break;
case EVENT_LIGHT_LONG_UP:

View File

@ -181,15 +181,9 @@ bool simple_clock_bin_led_face_loop(movement_event_t event, movement_settings_t
// uncomment this line to snap back to the clock face when the hour signal sounds:
// movement_move_to_face(state->watch_face_index);
if (watch_is_buzzer_or_led_enabled()) {
// if we are in the foreground, we can just beep.
movement_play_signal();
} else {
// if we were in the background, we need to enable the buzzer peripheral first,
watch_enable_buzzer();
// beep quickly (this call blocks for 275 ms),
movement_play_signal();
// and then turn the buzzer peripheral off again.
watch_disable_buzzer();
movement_play_signal_background();
}
break;
case EVENT_LIGHT_LONG_PRESS:

View File

@ -137,15 +137,9 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting
// uncomment this line to snap back to the clock face when the hour signal sounds:
// movement_move_to_face(state->watch_face_index);
if (watch_is_buzzer_or_led_enabled()) {
// if we are in the foreground, we can just beep.
movement_play_signal();
movement_play_tune();
} else {
// if we were in the background, we need to enable the buzzer peripheral first,
watch_enable_buzzer();
// beep quickly (this call blocks for 275 ms),
movement_play_signal();
// and then turn the buzzer peripheral off again.
watch_disable_buzzer();
movement_play_tune_background();
}
break;
default:

View File

@ -131,15 +131,9 @@ bool weeknumber_clock_face_loop(movement_event_t event, movement_settings_t *set
// uncomment this line to snap back to the clock face when the hour signal sounds:
// movement_move_to_face(state->watch_face_index);
if (watch_is_buzzer_or_led_enabled()) {
// if we are in the foreground, we can just beep.
movement_play_signal();
} else {
// if we were in the background, we need to enable the buzzer peripheral first,
watch_enable_buzzer();
// beep quickly (this call blocks for 275 ms),
movement_play_signal();
// and then turn the buzzer peripheral off again.
watch_disable_buzzer();
movement_play_signal_background();
}
break;
default: