summaryrefslogtreecommitdiff
path: root/src/audio/include/audio_fsm.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-02-05 11:02:45 +1100
committerjacqueline <me@jacqueline.id.au>2024-02-05 11:03:52 +1100
commit299f3cc48f683d3e6dec1efb4957fdb49b4de2c3 (patch)
tree6eb0445c300492e53cdc048f12cc6780a12c55eb /src/audio/include/audio_fsm.hpp
parent811c335c2ac425320a1949ab23378172e86ae60a (diff)
downloadtangara-fw-299f3cc48f683d3e6dec1efb4957fdb49b4de2c3.tar.gz
Preserve the queue when going into standby
Diffstat (limited to 'src/audio/include/audio_fsm.hpp')
-rw-r--r--src/audio/include/audio_fsm.hpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/audio/include/audio_fsm.hpp b/src/audio/include/audio_fsm.hpp
index b8c505b0..884af8a8 100644
--- a/src/audio/include/audio_fsm.hpp
+++ b/src/audio/include/audio_fsm.hpp
@@ -52,12 +52,13 @@ class AudioState : public tinyfsm::Fsm<AudioState> {
void react(const OutputModeChanged&);
virtual void react(const system_fsm::BootComplete&) {}
- void react(const system_fsm::KeyLockChanged&);
+ virtual void react(const system_fsm::KeyLockChanged&);
+ virtual void react(const system_fsm::StorageMounted&) {}
virtual void react(const PlayFile&) {}
virtual void react(const QueueUpdate&) {}
virtual void react(const PlaybackUpdate&) {}
- virtual void react(const TogglePlayPause&) {}
+ void react(const TogglePlayPause&);
virtual void react(const internal::InputFileOpened&) {}
virtual void react(const internal::InputFileClosed&) {}
@@ -77,6 +78,9 @@ class AudioState : public tinyfsm::Fsm<AudioState> {
static std::shared_ptr<IAudioOutput> sOutput;
static std::optional<database::TrackId> sCurrentTrack;
+
+ auto readyToPlay() -> bool;
+ static bool sIsPlaybackAllowed;
};
namespace states {
@@ -92,7 +96,8 @@ class Standby : public AudioState {
void react(const PlayFile&) override;
void react(const internal::InputFileOpened&) override;
void react(const QueueUpdate&) override;
- void react(const TogglePlayPause&) override;
+ void react(const system_fsm::KeyLockChanged&) override;
+ void react(const system_fsm::StorageMounted&) override;
using AudioState::react;
};
@@ -107,7 +112,6 @@ class Playback : public AudioState {
void react(const PlayFile&) override;
void react(const QueueUpdate&) override;
void react(const PlaybackUpdate&) override;
- void react(const TogglePlayPause&) override;
void react(const internal::InputFileOpened&) override;
void react(const internal::InputFileClosed&) override;