From aef2eb7566e7f8f6caf2481942ce67a31f007563 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 15 Nov 2022 14:40:17 +1100 Subject: fix build --- src/drivers/i2s_audio_output.cpp | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src/drivers/i2s_audio_output.cpp') diff --git a/src/drivers/i2s_audio_output.cpp b/src/drivers/i2s_audio_output.cpp index 6b231f0e..8505895b 100644 --- a/src/drivers/i2s_audio_output.cpp +++ b/src/drivers/i2s_audio_output.cpp @@ -1,19 +1,24 @@ #include "i2s_audio_output.hpp" + #include -#include "audio_output.hpp" -#include "gpio-expander.hpp" + +#include "audio_element.h" +#include "driver/i2s.h" +#include "esp_err.h" +#include "freertos/portmacro.h" +#include "i2s_stream.h" static const i2s_port_t kI2SPort = I2S_NUM_0; +static const char* kTag = "I2SOUT"; namespace drivers { -auto I2SAudioOutput::create(GpioExpander *expander) +auto I2SAudioOutput::create(GpioExpander* expander) -> cpp::result, Error> { - // First, we need to perform initial configuration of the DAC chip. auto dac_result = drivers::AudioDac::create(expander); if (dac_result.has_error()) { - ESP_LOGE(TAG, "failed to init dac: %d", dac_result.error()); + ESP_LOGE(kTag, "failed to init dac: %d", dac_result.error()); return cpp::fail(DAC_CONFIG); } std::unique_ptr dac = std::move(dac_result.value()); @@ -54,7 +59,8 @@ auto I2SAudioOutput::create(GpioExpander *expander) .need_expand = false, .expand_src_bits = I2S_BITS_PER_SAMPLE_16BIT, }; - i2s_stream_writer = i2s_stream_init(&i2s_stream_config); + audio_element_handle_t i2s_stream_writer = + i2s_stream_init(&i2s_stream_config); if (i2s_stream_writer == NULL) { return cpp::fail(Error::STREAM_INIT); } @@ -74,8 +80,10 @@ auto I2SAudioOutput::create(GpioExpander *expander) return std::make_unique(dac, i2s_stream_writer); } -I2SAudioOutput(std::unique dac, audio_element_handle_t element) : IAudioOutput(element), dac_(dac) {} -~I2SAudioOutput() { +I2SAudioOutput::I2SAudioOutput(std::unique_ptr& dac, + audio_element_handle_t element) + : IAudioOutput(element), dac_(std::move(dac)) {} +I2SAudioOutput::~I2SAudioOutput() { // TODO: power down the DAC. } @@ -83,10 +91,9 @@ auto I2SAudioOutput::SetVolume(uint8_t volume) -> void { dac_->WriteVolume(255); } -auto I2SAudioOutput::Configure(audio_element_info_t info) -> void { - audio_element_setinfo(element_, &music_info); - i2s_stream_set_clk(element_, music_info.sample_rates, - music_info.bits, music_info.channels); +auto I2SAudioOutput::Configure(audio_element_info_t& info) -> void { + audio_element_setinfo(element_, &info); + i2s_stream_set_clk(element_, info.sample_rates, info.bits, info.channels); } -} +} // namespace drivers -- cgit v1.2.3