ESPHome 2026.5.1
Loading...
Searching...
No Matches
microphone.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <cstddef>
6#include <cstdint>
7#include <vector>
9
10namespace esphome::microphone {
11
18
20 public:
21 virtual void start() = 0;
22 virtual void stop() = 0;
23 template<typename F> void add_data_callback(F &&data_callback) {
24 this->data_callbacks_.add([this, data_callback](const std::vector<uint8_t> &data) {
25 if (this->mute_state_) {
26 data_callback(std::vector<uint8_t>(data.size(), 0));
27 } else {
28 data_callback(data);
29 }
30 });
31 }
32
33 bool is_running() const { return this->state_ == STATE_RUNNING; }
34 bool is_stopped() const { return this->state_ == STATE_STOPPED; }
35
36 void set_mute_state(bool is_muted) { this->mute_state_ = is_muted; }
37 bool get_mute_state() { return this->mute_state_; }
38
40
41 protected:
43 bool mute_state_{false};
44
46
47 CallbackManager<void(const std::vector<uint8_t> &)> data_callbacks_{};
48};
49
50} // namespace esphome::microphone
audio::AudioStreamInfo get_audio_stream_info()
Definition microphone.h:39
void set_mute_state(bool is_muted)
Definition microphone.h:36
audio::AudioStreamInfo audio_stream_info_
Definition microphone.h:45
CallbackManager< void(const std::vector< uint8_t > &)> data_callbacks_
Definition microphone.h:47
void add_data_callback(F &&data_callback)
Definition microphone.h:23