From db2e29a72d9b934e7b58f1d20ac3768eae484ab5 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 1 Jun 2023 15:28:10 +1000 Subject: Start on audio FSM playback. needs more thought. --- src/audio/include/audio_events.hpp | 8 ++++++++ src/audio/include/audio_fsm.hpp | 7 +++++++ src/audio/include/fatfs_audio_input.hpp | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/audio/include') 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 + #include "tinyfsm.hpp" #include "song.hpp" namespace audio { +struct PlayFile : tinyfsm::Event { + std::string filename; +}; + struct PlaySong : tinyfsm::Event { database::SongId id; + std::optional data; + std::optional 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 { 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& inputs, OutputStream* output) -> void override; -- cgit v1.2.3