Merge pull request #283 from neutralinsomniac/fix_hourly_chime_background
fix signal tunes not firing in background, and move buzzer disable/enable logic into movement
This commit is contained in:
		
						commit
						5c94111ea2
					
				@ -294,7 +294,25 @@ void movement_request_wake() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void movement_play_signal(void) {
 | 
			
		||||
    watch_buzzer_play_sequence(signal_tune, NULL);
 | 
			
		||||
    bool buzzer_enabled = watch_is_buzzer_or_led_enabled();
 | 
			
		||||
    if (!buzzer_enabled) {
 | 
			
		||||
        watch_enable_buzzer();
 | 
			
		||||
    }
 | 
			
		||||
    watch_buzzer_play_note(BUZZER_NOTE_C8, 75);
 | 
			
		||||
    watch_buzzer_play_note(BUZZER_NOTE_REST, 100);
 | 
			
		||||
    watch_buzzer_play_note(BUZZER_NOTE_C8, 100);
 | 
			
		||||
    if (!buzzer_enabled) {
 | 
			
		||||
        watch_disable_buzzer();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void movement_play_tune(void) {
 | 
			
		||||
    if (!watch_is_buzzer_or_led_enabled()) {
 | 
			
		||||
        watch_enable_buzzer();
 | 
			
		||||
        watch_buzzer_play_sequence(signal_tune, watch_disable_buzzer);
 | 
			
		||||
    } else {
 | 
			
		||||
        watch_buzzer_play_sequence(signal_tune, NULL);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void movement_play_alarm(void) {
 | 
			
		||||
 | 
			
		||||
@ -307,6 +307,7 @@ 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_tune(void);
 | 
			
		||||
void movement_play_alarm(void);
 | 
			
		||||
void movement_play_alarm_beeps(uint8_t rounds, BuzzerNote alarm_note);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -151,19 +151,7 @@ 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();
 | 
			
		||||
            break;
 | 
			
		||||
        case EVENT_LIGHT_LONG_UP:
 | 
			
		||||
            /*
 | 
			
		||||
 | 
			
		||||
@ -180,17 +180,7 @@ bool simple_clock_bin_led_face_loop(movement_event_t event, movement_settings_t
 | 
			
		||||
        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();
 | 
			
		||||
            break;
 | 
			
		||||
        case EVENT_LIGHT_LONG_PRESS:
 | 
			
		||||
            if (state->flashing_state == 0) {
 | 
			
		||||
 | 
			
		||||
@ -136,17 +136,11 @@ bool simple_clock_face_loop(movement_event_t event, movement_settings_t *setting
 | 
			
		||||
        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();
 | 
			
		||||
            }
 | 
			
		||||
            #ifdef SIGNAL_TUNE_DEFAULT
 | 
			
		||||
            movement_play_signal();
 | 
			
		||||
            #else
 | 
			
		||||
            movement_play_tune();
 | 
			
		||||
            #endif
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            return movement_default_loop_handler(event, settings);
 | 
			
		||||
 | 
			
		||||
@ -130,17 +130,7 @@ bool weeknumber_clock_face_loop(movement_event_t event, movement_settings_t *set
 | 
			
		||||
        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();
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            movement_default_loop_handler(event, settings);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user