From 7083459cf3c62c32d0c039a4665e702d70a27bba Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 21 Apr 2023 15:27:57 +1000 Subject: wrap driver instance ownership + di in a class --- src/audio/audio_playback.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'src/audio/audio_playback.cpp') diff --git a/src/audio/audio_playback.cpp b/src/audio/audio_playback.cpp index fac4bfab..c51e41fb 100644 --- a/src/audio/audio_playback.cpp +++ b/src/audio/audio_playback.cpp @@ -5,6 +5,7 @@ #include #include +#include "driver_cache.hpp" #include "freertos/portmacro.h" #include "audio_decoder.hpp" @@ -21,19 +22,10 @@ #include "stream_message.hpp" namespace audio { - -auto AudioPlayback::create(drivers::GpioExpander* expander) - -> cpp::result, Error> { - auto sink_res = I2SAudioOutput::create(expander); - if (sink_res.has_error()) { - return cpp::fail(ERR_INIT_ELEMENT); - } - return std::make_unique(std::move(sink_res.value())); -} - -AudioPlayback::AudioPlayback(std::unique_ptr output) +AudioPlayback::AudioPlayback(drivers::DriverCache* drivers) : file_source_(std::make_unique()), - i2s_output_(std::move(output)) { + i2s_output_(std::make_unique(drivers->AcquireGpios(), + drivers->AcquireDac())) { AudioDecoder* codec = new AudioDecoder(); elements_.emplace_back(codec); -- cgit v1.2.3