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/include/audio_playback.hpp | 7 ++----- src/audio/include/i2s_audio_output.hpp | 8 ++------ 2 files changed, 4 insertions(+), 11 deletions(-) (limited to 'src/audio/include') diff --git a/src/audio/include/audio_playback.hpp b/src/audio/include/audio_playback.hpp index 88dc29aa..cd4be3e7 100644 --- a/src/audio/include/audio_playback.hpp +++ b/src/audio/include/audio_playback.hpp @@ -6,6 +6,7 @@ #include #include "audio_task.hpp" +#include "driver_cache.hpp" #include "esp_err.h" #include "fatfs_audio_input.hpp" #include "i2s_audio_output.hpp" @@ -25,11 +26,7 @@ namespace audio { */ class AudioPlayback { public: - enum Error { ERR_INIT_ELEMENT, ERR_MEM }; - static auto create(drivers::GpioExpander* expander) - -> cpp::result, Error>; - - explicit AudioPlayback(std::unique_ptr output); + explicit AudioPlayback(drivers::DriverCache* drivers); ~AudioPlayback(); /* diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp index 31510a91..07430777 100644 --- a/src/audio/include/i2s_audio_output.hpp +++ b/src/audio/include/i2s_audio_output.hpp @@ -17,12 +17,8 @@ namespace audio { class I2SAudioOutput : public IAudioSink { public: - enum Error { DAC_CONFIG, I2S_CONFIG, STREAM_INIT }; - static auto create(drivers::GpioExpander* expander) - -> cpp::result, Error>; - I2SAudioOutput(drivers::GpioExpander* expander, - std::unique_ptr dac); + std::shared_ptr dac); ~I2SAudioOutput(); auto Configure(const StreamInfo::Format& format) -> bool override; @@ -36,7 +32,7 @@ class I2SAudioOutput : public IAudioSink { auto SetVolume(uint8_t volume) -> void; drivers::GpioExpander* expander_; - std::unique_ptr dac_; + std::shared_ptr dac_; std::optional current_config_; }; -- cgit v1.2.3