diff options
Diffstat (limited to 'src/audio/include')
| -rw-r--r-- | src/audio/include/audio_fsm.hpp | 14 | ||||
| -rw-r--r-- | src/audio/include/fatfs_audio_input.hpp | 4 | ||||
| -rw-r--r-- | src/audio/include/i2s_audio_output.hpp | 7 |
3 files changed, 8 insertions, 17 deletions
diff --git a/src/audio/include/audio_fsm.hpp b/src/audio/include/audio_fsm.hpp index cfa65551..1376feae 100644 --- a/src/audio/include/audio_fsm.hpp +++ b/src/audio/include/audio_fsm.hpp @@ -11,6 +11,7 @@ #include <vector> #include "audio_sink.hpp" +#include "service_locator.hpp" #include "tinyfsm.hpp" #include "audio_decoder.hpp" @@ -32,12 +33,6 @@ namespace audio { class AudioState : public tinyfsm::Fsm<AudioState> { public: - static auto Init(drivers::IGpios* gpio_expander, - std::weak_ptr<database::Database>, - std::shared_ptr<database::ITagParser>, - drivers::Bluetooth* bluetooth, - TrackQueue* queue) -> bool; - virtual ~AudioState() {} virtual void entry() {} @@ -46,8 +41,6 @@ class AudioState : public tinyfsm::Fsm<AudioState> { /* Fallback event handler. Does nothing. */ void react(const tinyfsm::Event& ev) {} - void react(const system_fsm::StorageMounted&); - void react(const system_fsm::KeyUpChanged&); void react(const system_fsm::KeyDownChanged&); void react(const system_fsm::HasPhonesChanged&); @@ -65,16 +58,13 @@ class AudioState : public tinyfsm::Fsm<AudioState> { virtual void react(const internal::AudioPipelineIdle&) {} protected: - static drivers::IGpios* sIGpios; - static std::shared_ptr<drivers::I2SDac> sDac; - static std::weak_ptr<database::Database> sDatabase; + static std::shared_ptr<system_fsm::ServiceLocator> sServices; static std::shared_ptr<FatfsAudioInput> sFileSource; static std::unique_ptr<Decoder> sDecoder; static std::shared_ptr<SampleConverter> sSampleConverter; static std::shared_ptr<IAudioOutput> sOutput; - static TrackQueue* sTrackQueue; static std::optional<database::TrackId> sCurrentTrack; }; diff --git a/src/audio/include/fatfs_audio_input.hpp b/src/audio/include/fatfs_audio_input.hpp index da44d2ec..b67d29dc 100644 --- a/src/audio/include/fatfs_audio_input.hpp +++ b/src/audio/include/fatfs_audio_input.hpp @@ -30,7 +30,7 @@ namespace audio { */ class FatfsAudioInput : public IAudioSource { public: - explicit FatfsAudioInput(std::shared_ptr<database::ITagParser> tag_parser); + explicit FatfsAudioInput(database::ITagParser& tag_parser); ~FatfsAudioInput(); /* @@ -53,7 +53,7 @@ class FatfsAudioInput : public IAudioSource { auto ContainerToStreamType(database::Container) -> std::optional<codecs::StreamType>; - std::shared_ptr<database::ITagParser> tag_parser_; + database::ITagParser& tag_parser_; std::mutex new_stream_mutex_; std::shared_ptr<codecs::IStream> new_stream_; diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp index 0068916e..fa09deef 100644 --- a/src/audio/include/i2s_audio_output.hpp +++ b/src/audio/include/i2s_audio_output.hpp @@ -19,7 +19,8 @@ namespace audio { class I2SAudioOutput : public IAudioOutput { public: - I2SAudioOutput(drivers::IGpios* expander, std::weak_ptr<drivers::I2SDac> dac); + I2SAudioOutput(drivers::IGpios& expander, + std::unique_ptr<drivers::I2SDac> dac); ~I2SAudioOutput(); auto SetInUse(bool) -> void override; @@ -37,8 +38,8 @@ class I2SAudioOutput : public IAudioOutput { I2SAudioOutput& operator=(const I2SAudioOutput&) = delete; private: - drivers::IGpios* expander_; - std::shared_ptr<drivers::I2SDac> dac_; + drivers::IGpios& expander_; + std::unique_ptr<drivers::I2SDac> dac_; std::optional<Format> current_config_; int_fast8_t left_difference_; |
