From 547c7d6dc82b0b01e3c1cf1395545f32c0785cdb Mon Sep 17 00:00:00 2001 From: Kevin Ahrendt Date: Thu, 3 Jul 2025 17:17:01 +0100 Subject: [PATCH] [microphone] simplify mute handling to avoid unnecessary copies (#9303) --- esphome/components/microphone/microphone.cpp | 16 +++++++--------- esphome/components/microphone/microphone.h | 2 -- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/esphome/components/microphone/microphone.cpp b/esphome/components/microphone/microphone.cpp index b1289f3791..0fbb393fd2 100644 --- a/esphome/components/microphone/microphone.cpp +++ b/esphome/components/microphone/microphone.cpp @@ -5,17 +5,15 @@ namespace microphone { void Microphone::add_data_callback(std::function &)> &&data_callback) { std::function &)> mute_handled_callback = - [this, data_callback](const std::vector &data) { data_callback(this->silence_audio_(data)); }; + [this, data_callback](const std::vector &data) { + if (this->mute_state_) { + data_callback(std::vector(data.size(), 0)); + } else { + data_callback(data); + }; + }; this->data_callbacks_.add(std::move(mute_handled_callback)); } -std::vector Microphone::silence_audio_(std::vector data) { - if (this->mute_state_) { - std::memset((void *) data.data(), 0, data.size()); - } - - return data; -} - } // namespace microphone } // namespace esphome diff --git a/esphome/components/microphone/microphone.h b/esphome/components/microphone/microphone.h index ea4e979e20..fcf9822458 100644 --- a/esphome/components/microphone/microphone.h +++ b/esphome/components/microphone/microphone.h @@ -33,8 +33,6 @@ class Microphone { audio::AudioStreamInfo get_audio_stream_info() { return this->audio_stream_info_; } protected: - std::vector silence_audio_(std::vector data); - State state_{STATE_STOPPED}; bool mute_state_{false};