ESPHome
2026.5.0-dev
Loading...
Searching...
No Matches
esphome
components
microphone
microphone.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
esphome/components/audio/audio.h
"
4
5
#include <cstddef>
6
#include <cstdint>
7
#include <vector>
8
#include "
esphome/core/helpers.h
"
9
10
namespace
esphome
{
11
namespace
microphone {
12
13
enum
State
: uint8_t {
14
STATE_STOPPED
= 0,
15
STATE_STARTING
,
16
STATE_RUNNING
,
17
STATE_STOPPING
,
18
};
19
20
class
Microphone
{
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
40
audio::AudioStreamInfo
get_audio_stream_info
() {
return
this->
audio_stream_info_
; }
41
42
protected
:
43
State
state_
{
STATE_STOPPED
};
44
bool
mute_state_
{
false
};
45
46
audio::AudioStreamInfo
audio_stream_info_
;
47
48
CallbackManager
<void(
const
std::vector<uint8_t> &)>
data_callbacks_
{};
49
};
50
51
}
// namespace microphone
52
}
// namespace esphome
audio.h
esphome::CallbackManager
Definition
helpers.h:1822
esphome::audio::AudioStreamInfo
Definition
audio.h:11
esphome::microphone::Microphone
Definition
microphone.h:20
esphome::microphone::Microphone::get_mute_state
bool get_mute_state()
Definition
microphone.h:38
esphome::microphone::Microphone::start
virtual void start()=0
esphome::microphone::Microphone::get_audio_stream_info
audio::AudioStreamInfo get_audio_stream_info()
Definition
microphone.h:40
esphome::microphone::Microphone::state_
State state_
Definition
microphone.h:43
esphome::microphone::Microphone::stop
virtual void stop()=0
esphome::microphone::Microphone::set_mute_state
void set_mute_state(bool is_muted)
Definition
microphone.h:37
esphome::microphone::Microphone::mute_state_
bool mute_state_
Definition
microphone.h:44
esphome::microphone::Microphone::audio_stream_info_
audio::AudioStreamInfo audio_stream_info_
Definition
microphone.h:46
esphome::microphone::Microphone::is_stopped
bool is_stopped() const
Definition
microphone.h:35
esphome::microphone::Microphone::data_callbacks_
CallbackManager< void(const std::vector< uint8_t > &)> data_callbacks_
Definition
microphone.h:48
esphome::microphone::Microphone::add_data_callback
void add_data_callback(F &&data_callback)
Definition
microphone.h:24
esphome::microphone::Microphone::is_running
bool is_running() const
Definition
microphone.h:34
helpers.h
esphome::microphone::State
State
Definition
microphone.h:13
esphome::microphone::STATE_STOPPED
@ STATE_STOPPED
Definition
microphone.h:14
esphome::microphone::STATE_RUNNING
@ STATE_RUNNING
Definition
microphone.h:16
esphome::microphone::STATE_STOPPING
@ STATE_STOPPING
Definition
microphone.h:17
esphome::microphone::STATE_STARTING
@ STATE_STARTING
Definition
microphone.h:15
esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition
a01nyub.cpp:7
Generated by
1.12.0