diff options
Diffstat (limited to 'src/audio/include')
| -rw-r--r-- | src/audio/include/audio_events.hpp | 8 | ||||
| -rw-r--r-- | src/audio/include/audio_fsm.hpp | 7 | ||||
| -rw-r--r-- | src/audio/include/fatfs_audio_input.hpp | 4 |
3 files changed, 17 insertions, 2 deletions
diff --git a/src/audio/include/audio_events.hpp b/src/audio/include/audio_events.hpp index e59d7739..765e0899 100644 --- a/src/audio/include/audio_events.hpp +++ b/src/audio/include/audio_events.hpp @@ -6,14 +6,22 @@ #pragma once +#include <string> + #include "tinyfsm.hpp" #include "song.hpp" namespace audio { +struct PlayFile : tinyfsm::Event { + std::string filename; +}; + struct PlaySong : tinyfsm::Event { database::SongId id; + std::optional<database::SongData> data; + std::optional<database::SongTags> tags; }; } // namespace audio diff --git a/src/audio/include/audio_fsm.hpp b/src/audio/include/audio_fsm.hpp index bf5acf69..7368cfc8 100644 --- a/src/audio/include/audio_fsm.hpp +++ b/src/audio/include/audio_fsm.hpp @@ -37,6 +37,7 @@ class AudioState : public tinyfsm::Fsm<AudioState> { virtual void react(const system_fsm::BootComplete&) {} virtual void react(const PlaySong&) {} + virtual void react(const PlayFile&) {} protected: static drivers::GpioExpander* sGpioExpander; @@ -59,6 +60,12 @@ class Uninitialised : public AudioState { class Standby : public AudioState { public: void react(const PlaySong&) override {} + void react(const PlayFile&) override; + using AudioState::react; +}; + +class Playback : public AudioState { + public: using AudioState::react; }; diff --git a/src/audio/include/fatfs_audio_input.hpp b/src/audio/include/fatfs_audio_input.hpp index d2285515..98ad4d2b 100644 --- a/src/audio/include/fatfs_audio_input.hpp +++ b/src/audio/include/fatfs_audio_input.hpp @@ -28,10 +28,10 @@ namespace audio { class FatfsAudioInput : public IAudioElement { public: - explicit FatfsAudioInput(); + FatfsAudioInput(); ~FatfsAudioInput(); - auto OpenFile(const std::string& path) -> void; + auto OpenFile(const std::string& path) -> bool; auto Process(const std::vector<InputStream>& inputs, OutputStream* output) -> void override; |
