diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-08-28 10:36:18 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-08-28 10:36:18 +1000 |
| commit | a1327763ab70dbf4996e032dd227de368f78f4ad (patch) | |
| tree | 6d53cd295833e0e7f9ee2a37df3cbabe7f507daf /src/audio/audio_fsm.cpp | |
| parent | 8ff93f5467b0eef54d18b35d742de05c8a63da9a (diff) | |
| download | tangara-fw-a1327763ab70dbf4996e032dd227de368f78f4ad.tar.gz | |
Support play/pause toggling
Diffstat (limited to 'src/audio/audio_fsm.cpp')
| -rw-r--r-- | src/audio/audio_fsm.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/audio/audio_fsm.cpp b/src/audio/audio_fsm.cpp index cd36b398..6cca8211 100644 --- a/src/audio/audio_fsm.cpp +++ b/src/audio/audio_fsm.cpp @@ -133,6 +133,12 @@ void Standby::react(const QueueUpdate& ev) { sFileSource->SetPath(db->GetTrackPath(*current_track)); } +void Standby::react(const TogglePlayPause& ev) { + if (sCurrentTrack) { + transit<Playback>(); + } +} + void Playback::entry() { ESP_LOGI(kTag, "beginning playback"); sOutput->SetInUse(true); @@ -142,7 +148,7 @@ void Playback::exit() { ESP_LOGI(kTag, "finishing playback"); // TODO(jacqueline): Second case where it's useful to wait for the i2s buffer // to drain. - vTaskDelay(pdMS_TO_TICKS(250)); + vTaskDelay(pdMS_TO_TICKS(10)); sOutput->SetInUse(false); events::System().Dispatch(PlaybackFinished{}); @@ -170,6 +176,10 @@ void Playback::react(const QueueUpdate& ev) { sFileSource->SetPath(db->GetTrackPath(*current_track)); } +void Playback::react(const TogglePlayPause& ev) { + transit<Standby>(); +} + void Playback::react(const PlaybackUpdate& ev) { ESP_LOGI(kTag, "elapsed: %lu, total: %lu", ev.seconds_elapsed, ev.seconds_total); |
