From 8c51280bc68e51b76243e83b84762e33c52510ca Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 16 Nov 2022 11:13:21 +1100 Subject: Fix playback and console issues --- src/drivers/i2s_audio_output.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 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 8505895b..77d01b6a 100644 --- a/src/drivers/i2s_audio_output.cpp +++ b/src/drivers/i2s_audio_output.cpp @@ -82,13 +82,28 @@ auto I2SAudioOutput::create(GpioExpander* expander) I2SAudioOutput::I2SAudioOutput(std::unique_ptr& dac, audio_element_handle_t element) - : IAudioOutput(element), dac_(std::move(dac)) {} + : IAudioOutput(element), dac_(std::move(dac)) { + volume_ = 255; +} I2SAudioOutput::~I2SAudioOutput() { // TODO: power down the DAC. } auto I2SAudioOutput::SetVolume(uint8_t volume) -> void { - dac_->WriteVolume(255); + volume_ = volume; + if (!is_soft_muted_) { + dac_->WriteVolume(volume); + } +} + +auto I2SAudioOutput::SetSoftMute(bool enabled) -> void { + if (enabled) { + is_soft_muted_ = true; + dac_->WriteVolume(255); + } else { + is_soft_muted_ = false; + dac_->WriteVolume(volume_); + } } auto I2SAudioOutput::Configure(audio_element_info_t& info) -> void { -- cgit v1.2.3