diff options
Diffstat (limited to 'src/audio/include')
| -rw-r--r-- | src/audio/include/audio_events.hpp | 2 | ||||
| -rw-r--r-- | src/audio/include/audio_fsm.hpp | 12 | ||||
| -rw-r--r-- | src/audio/include/track_queue.hpp | 3 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/audio/include/audio_events.hpp b/src/audio/include/audio_events.hpp index b76d8c89..03584062 100644 --- a/src/audio/include/audio_events.hpp +++ b/src/audio/include/audio_events.hpp @@ -35,7 +35,7 @@ struct PlaybackUpdate : tinyfsm::Event { std::shared_ptr<Track> track; }; -struct PlaybackFinished : tinyfsm::Event {}; +struct PlaybackStopped : tinyfsm::Event {}; struct QueueUpdate : tinyfsm::Event { bool current_changed; 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; diff --git a/src/audio/include/track_queue.hpp b/src/audio/include/track_queue.hpp index 0ff72021..5b14fd4a 100644 --- a/src/audio/include/track_queue.hpp +++ b/src/audio/include/track_queue.hpp @@ -98,6 +98,9 @@ class TrackQueue { auto repeat(bool) -> void; auto repeat() const -> bool; + auto serialise() -> std::string; + auto deserialise(const std::string&) -> void; + // Cannot be copied or moved. TrackQueue(const TrackQueue&) = delete; TrackQueue& operator=(const TrackQueue&) = delete; |
