diff options
| author | jacqueline <me@jacqueline.id.au> | 2022-11-16 11:13:21 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2022-11-16 11:13:21 +1100 |
| commit | 8c51280bc68e51b76243e83b84762e33c52510ca (patch) | |
| tree | 7871ce5bca24c9b9f42a437763d7f1411ddbcd94 /src/drivers/i2s_audio_output.cpp | |
| parent | e802b8583f58a2be366f24b72afeb050550dbc7e (diff) | |
| download | tangara-fw-8c51280bc68e51b76243e83b84762e33c52510ca.tar.gz | |
Fix playback and console issues
Diffstat (limited to 'src/drivers/i2s_audio_output.cpp')
| -rw-r--r-- | src/drivers/i2s_audio_output.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
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<AudioDac>& 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 { |
