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/include | |
| parent | 130009eb142a5ce8bb6cf9cbb59d69a4d96ed5f9 (diff) | |
| download | tangara-fw-7083459cf3c62c32d0c039a4665e702d70a27bba.tar.gz | |
wrap driver instance ownership + di in a class
Diffstat (limited to 'src/audio/include')
| -rw-r--r-- | src/audio/include/audio_playback.hpp | 7 | ||||
| -rw-r--r-- | src/audio/include/i2s_audio_output.hpp | 8 |
2 files changed, 4 insertions, 11 deletions
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 <vector> #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<std::unique_ptr<AudioPlayback>, Error>; - - explicit AudioPlayback(std::unique_ptr<I2SAudioOutput> 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<std::unique_ptr<I2SAudioOutput>, Error>; - I2SAudioOutput(drivers::GpioExpander* expander, - std::unique_ptr<drivers::AudioDac> dac); + std::shared_ptr<drivers::AudioDac> 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<drivers::AudioDac> dac_; + std::shared_ptr<drivers::AudioDac> dac_; std::optional<StreamInfo::Pcm> current_config_; }; |
