summaryrefslogtreecommitdiff
path: root/src/audio/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/include')
-rw-r--r--src/audio/include/audio_events.hpp8
-rw-r--r--src/audio/include/audio_fsm.hpp7
-rw-r--r--src/audio/include/fatfs_audio_input.hpp4
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;