diff options
Diffstat (limited to 'watch-library')
-rw-r--r-- | watch-library/hardware/watch/watch_buzzer.c | 9 | ||||
-rw-r--r-- | watch-library/shared/watch/watch_buzzer.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/watch-library/hardware/watch/watch_buzzer.c b/watch-library/hardware/watch/watch_buzzer.c index 18fb4db0..63506a51 100644 --- a/watch-library/hardware/watch/watch_buzzer.c +++ b/watch-library/hardware/watch/watch_buzzer.c @@ -90,6 +90,15 @@ void watch_buzzer_play_sequence(int8_t *note_sequence, void (*callback_on_end)(v _tc3_start(); } +uint16_t sequence_length(int8_t *sequence) { + uint16_t result = 0; + int i = 0; + while (sequence[i++]) { + result += sequence[i++]; + } + return result; +} + void cb_watch_buzzer_seq(void) { // callback for reading the note sequence if (_tone_ticks == 0) { diff --git a/watch-library/shared/watch/watch_buzzer.h b/watch-library/shared/watch/watch_buzzer.h index 7ba9a52e..4c39475c 100644 --- a/watch-library/shared/watch/watch_buzzer.h +++ b/watch-library/shared/watch/watch_buzzer.h @@ -175,6 +175,8 @@ extern const uint16_t NotePeriods[108]; */ void watch_buzzer_play_sequence(int8_t *note_sequence, void (*callback_on_end)(void)); +uint16_t sequence_length(int8_t *sequence); + /** @brief Aborts a playing sequence. */ void watch_buzzer_abort_sequence(void); |