ESPHome 2026.5.0-dev
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 {
11namespace microphone {
12
19
21 public:
22 virtual void start() = 0;
23 virtual void stop() = 0;
24 template<typename F> void add_data_callback(F &&data_callback) {
25 this->data_callbacks_.add([this, data_callback](const std::vector<uint8_t> &data) {
26 if (this->mute_state_) {
27 data_callback(std::vector<uint8_t>(data.size(), 0));
28 } else {
29 data_callback(data);
30 }
31 });
32 }
33
34 bool is_running() const { return this->state_ == STATE_RUNNING; }
35 bool is_stopped() const { return this->state_ == STATE_STOPPED; }
36
37 void set_mute_state(bool is_muted) { this->mute_state_ = is_muted; }
38 bool get_mute_state() { return this->mute_state_; }
39
41
42 protected:
44 bool mute_state_{false};
45
47
48 CallbackManager<void(const std::vector<uint8_t> &)> data_callbacks_{};
49};
50
51} // namespace microphone
52} // namespace esphome
audio::AudioStreamInfo get_audio_stream_info()
Definition microphone.h:40
void set_mute_state(bool is_muted)
Definition microphone.h:37
audio::AudioStreamInfo audio_stream_info_
Definition microphone.h:46
CallbackManager< void(const std::vector< uint8_t > &)> data_callbacks_
Definition microphone.h:48
void add_data_callback(F &&data_callback)
Definition microphone.h:24
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7