ESPHome
2026.5.1
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::microphone
{
11
12
enum
State
: uint8_t {
13
STATE_STOPPED
= 0,
14
STATE_STARTING
,
15
STATE_RUNNING
,
16
STATE_STOPPING
,
17
};
18
19
class
Microphone
{
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
39
audio::AudioStreamInfo
get_audio_stream_info
() {
return
this->
audio_stream_info_
; }
40
41
protected
:
42
State
state_
{
STATE_STOPPED
};
43
bool
mute_state_
{
false
};
44
45
audio::AudioStreamInfo
audio_stream_info_
;
46
47
CallbackManager
<void(
const
std::vector<uint8_t> &)>
data_callbacks_
{};
48
};
49
50
}
// namespace esphome::microphone
audio.h
esphome::CallbackManager
Definition
helpers.h:1670
esphome::audio::AudioStreamInfo
Definition
audio.h:10
esphome::microphone::Microphone
Definition
microphone.h:19
esphome::microphone::Microphone::get_mute_state
bool get_mute_state()
Definition
microphone.h:37
esphome::microphone::Microphone::start
virtual void start()=0
esphome::microphone::Microphone::get_audio_stream_info
audio::AudioStreamInfo get_audio_stream_info()
Definition
microphone.h:39
esphome::microphone::Microphone::state_
State state_
Definition
microphone.h:42
esphome::microphone::Microphone::stop
virtual void stop()=0
esphome::microphone::Microphone::set_mute_state
void set_mute_state(bool is_muted)
Definition
microphone.h:36
esphome::microphone::Microphone::mute_state_
bool mute_state_
Definition
microphone.h:43
esphome::microphone::Microphone::audio_stream_info_
audio::AudioStreamInfo audio_stream_info_
Definition
microphone.h:45
esphome::microphone::Microphone::is_stopped
bool is_stopped() const
Definition
microphone.h:34
esphome::microphone::Microphone::data_callbacks_
CallbackManager< void(const std::vector< uint8_t > &)> data_callbacks_
Definition
microphone.h:47
esphome::microphone::Microphone::add_data_callback
void add_data_callback(F &&data_callback)
Definition
microphone.h:23
esphome::microphone::Microphone::is_running
bool is_running() const
Definition
microphone.h:33
helpers.h
esphome::microphone
Definition
automation.h:8
esphome::microphone::State
State
Definition
microphone.h:12
esphome::microphone::STATE_STOPPED
@ STATE_STOPPED
Definition
microphone.h:13
esphome::microphone::STATE_RUNNING
@ STATE_RUNNING
Definition
microphone.h:15
esphome::microphone::STATE_STOPPING
@ STATE_STOPPING
Definition
microphone.h:16
esphome::microphone::STATE_STARTING
@ STATE_STARTING
Definition
microphone.h:14
Generated by
1.12.0