mirror of
https://github.com/esphome/esphome.git
synced 2026-10-07 19:44:08 +00:00
[voice_assistant] Group the one byte members at the end (#20147)
This commit is contained in:
@@ -44,7 +44,7 @@ enum VoiceAssistantFeature : uint32_t {
|
||||
FEATURE_MULTI_CHANNEL_AUDIO = 1 << 6,
|
||||
};
|
||||
|
||||
enum class State {
|
||||
enum class State : uint8_t {
|
||||
IDLE,
|
||||
START_MICROPHONE,
|
||||
STARTING_MICROPHONE,
|
||||
@@ -96,7 +96,7 @@ struct Configuration {
|
||||
};
|
||||
|
||||
#ifdef USE_MEDIA_PLAYER
|
||||
enum class MediaPlayerResponseState {
|
||||
enum class MediaPlayerResponseState : uint8_t {
|
||||
IDLE,
|
||||
URL_SENT,
|
||||
PLAYING,
|
||||
@@ -237,6 +237,7 @@ class VoiceAssistant final : public Component {
|
||||
|
||||
void set_state_(State state);
|
||||
void set_state_(State state, State desired_state);
|
||||
bool start_udp_socket_();
|
||||
void signal_stop_();
|
||||
void start_playback_timeout_();
|
||||
|
||||
@@ -280,8 +281,6 @@ class VoiceAssistant final : public Component {
|
||||
Trigger<Timer> timer_updated_trigger_;
|
||||
Trigger<Timer> timer_cancelled_trigger_;
|
||||
Trigger<const std::vector<Timer> &> timer_tick_trigger_;
|
||||
bool has_timers_{false};
|
||||
bool timer_tick_running_{false};
|
||||
|
||||
microphone::MicrophoneSource *mic_source_{nullptr};
|
||||
microphone::MicrophoneSource *mic_source2_{nullptr};
|
||||
@@ -292,19 +291,12 @@ class VoiceAssistant final : public Component {
|
||||
size_t speaker_buffer_index_{0};
|
||||
size_t speaker_buffer_size_{0};
|
||||
size_t speaker_bytes_received_{0};
|
||||
bool wait_for_stream_end_{false};
|
||||
bool stream_ended_{false};
|
||||
#endif
|
||||
#ifdef USE_MEDIA_PLAYER
|
||||
media_player::MediaPlayer *media_player_{nullptr};
|
||||
std::string tts_response_url_;
|
||||
bool started_streaming_tts_{false};
|
||||
|
||||
MediaPlayerResponseState media_player_response_state_{MediaPlayerResponseState::IDLE};
|
||||
#endif
|
||||
|
||||
bool local_output_{false};
|
||||
|
||||
std::string conversation_id_;
|
||||
|
||||
std::string wake_word_;
|
||||
@@ -324,29 +316,37 @@ class VoiceAssistant final : public Component {
|
||||
// prolonged one can be detected and stopped; 0 means no imbalance is currently being timed.
|
||||
uint32_t audio_channel_stall_start_{0};
|
||||
|
||||
bool use_wake_word_;
|
||||
uint8_t noise_suppression_level_;
|
||||
uint8_t auto_gain_;
|
||||
float volume_multiplier_;
|
||||
uint32_t conversation_timeout_;
|
||||
|
||||
bool continuous_{false};
|
||||
bool silence_detection_;
|
||||
|
||||
bool continue_conversation_{false};
|
||||
|
||||
State state_{State::IDLE};
|
||||
State desired_state_{State::IDLE};
|
||||
|
||||
AudioMode audio_mode_{AUDIO_MODE_UDP};
|
||||
bool udp_socket_running_{false};
|
||||
bool start_udp_socket_();
|
||||
|
||||
Configuration config_{};
|
||||
|
||||
#ifdef USE_MICRO_WAKE_WORD
|
||||
micro_wake_word::MicroWakeWord *micro_wake_word_{nullptr};
|
||||
#endif
|
||||
|
||||
// 1 byte members grouped at the end so they share padding instead of each taking a word
|
||||
State state_{State::IDLE};
|
||||
State desired_state_{State::IDLE};
|
||||
AudioMode audio_mode_{AUDIO_MODE_UDP};
|
||||
bool has_timers_{false};
|
||||
bool timer_tick_running_{false};
|
||||
#ifdef USE_SPEAKER
|
||||
bool wait_for_stream_end_{false};
|
||||
bool stream_ended_{false};
|
||||
#endif
|
||||
#ifdef USE_MEDIA_PLAYER
|
||||
MediaPlayerResponseState media_player_response_state_{MediaPlayerResponseState::IDLE};
|
||||
bool started_streaming_tts_{false};
|
||||
#endif
|
||||
bool local_output_{false};
|
||||
bool use_wake_word_;
|
||||
uint8_t noise_suppression_level_;
|
||||
uint8_t auto_gain_;
|
||||
bool continuous_{false};
|
||||
bool silence_detection_;
|
||||
bool continue_conversation_{false};
|
||||
bool udp_socket_running_{false};
|
||||
};
|
||||
|
||||
extern VoiceAssistant *global_voice_assistant; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||
|
||||
Reference in New Issue
Block a user