diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-04-21 15:27:57 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-04-21 15:27:57 +1000 |
| commit | 7083459cf3c62c32d0c039a4665e702d70a27bba (patch) | |
| tree | 815757d591d8600469104398e95e80824bd94871 /src/audio/audio_playback.cpp | |
| parent | 130009eb142a5ce8bb6cf9cbb59d69a4d96ed5f9 (diff) | |
| download | tangara-fw-7083459cf3c62c32d0c039a4665e702d70a27bba.tar.gz | |
wrap driver instance ownership + di in a class
Diffstat (limited to 'src/audio/audio_playback.cpp')
| -rw-r--r-- | src/audio/audio_playback.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
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 <memory> #include <string_view> +#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<std::unique_ptr<AudioPlayback>, Error> { - auto sink_res = I2SAudioOutput::create(expander); - if (sink_res.has_error()) { - return cpp::fail(ERR_INIT_ELEMENT); - } - return std::make_unique<AudioPlayback>(std::move(sink_res.value())); -} - -AudioPlayback::AudioPlayback(std::unique_ptr<I2SAudioOutput> output) +AudioPlayback::AudioPlayback(drivers::DriverCache* drivers) : file_source_(std::make_unique<FatfsAudioInput>()), - i2s_output_(std::move(output)) { + i2s_output_(std::make_unique<I2SAudioOutput>(drivers->AcquireGpios(), + drivers->AcquireDac())) { AudioDecoder* codec = new AudioDecoder(); elements_.emplace_back(codec); |
