From 659c470eba542383987aad227b7f918100f131fa Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期五, 11 九月 2026 15:09:05 +0800
Subject: [PATCH] 小智终端 5种 场景模式 OK
---
xiaozhi-esp32-2.2.6/main/application.h | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/xiaozhi-esp32-2.2.6/main/application.h b/xiaozhi-esp32-2.2.6/main/application.h
index 8842bf0..4713b56 100644
--- a/xiaozhi-esp32-2.2.6/main/application.h
+++ b/xiaozhi-esp32-2.2.6/main/application.h
@@ -105,6 +105,7 @@
*/
void StopListening();
void SendListenDetect(const std::string& text, bool open_if_idle = true);
+ bool SendListenDetectNow(const std::string& text);
void Reboot();
void WakeWordInvoke(const std::string& wake_word);
@@ -125,6 +126,9 @@
AecMode GetAecMode() const { return aec_mode_; }
void PlaySound(const std::string_view& sound);
AudioService& GetAudioService() { return audio_service_; }
+ void ApplyMp3CommandOnlyMic();
+ void ResumeListeningAfterMp3Clip();
+ void CloseShadowingListenWindow();
/**
* Reset protocol resources (thread-safe)
@@ -154,10 +158,18 @@
bool assets_version_checked_ = false;
bool local_assets_applied_ = false;
bool play_popup_on_listening_ = false; // Flag to play popup sound after state changes to listening
+ bool skip_playback_wait_on_listen_ = false;
bool resume_sdcard_mp3_after_tts_ = false;
bool resume_sdcard_mp3_after_voice_ = false;
bool sdcard_mp3_stop_requested_ = false;
bool opening_audio_channel_ = false;
+ bool suppress_wake_until_listen_ = false;
+ bool network_error_suppressed_ = false;
+ std::string pending_detect_text_;
+ int pending_detect_retry_ticks_ = 0;
+ int pending_detect_retries_left_ = 0;
+ int greeting_listen_wait_ticks_ = 0;
+ int boot_wake_restore_ticks_ = 0;
bool tts_audio_expected_ = false;
bool tts_response_started_ = false;
bool tts_audio_received_ = false;
@@ -166,6 +178,9 @@
bool tts_idle_waiting_ = false;
bool tts_speaking_state_ready_ = false;
uint32_t tts_activity_generation_ = 0;
+ int tts_playback_empty_ticks_ = 0;
+ int tts_stop_wait_ticks_ = 0;
+ int64_t speaking_started_us_ = 0;
bool standby_requested_ = false;
bool power_off_requested_ = false;
std::atomic_bool power_off_standby_active_{false};
@@ -184,7 +199,9 @@
void HandleActivationDoneEvent();
void HandleWakeWordDetectedEvent();
void ContinueOpenAudioChannel(ListeningMode mode);
+ void ContinueOpenAudioChannelForDetect(const std::string& detect_text);
void ContinueWakeWordInvoke(const std::string& wake_word);
+ bool OpenAudioChannelWithRetry(int attempts);
// Activation task (runs in background)
void ActivationTask();
@@ -197,8 +214,8 @@
void ShowActivationCode(const std::string& code, const std::string& message);
void FinishTtsResponse();
void FinishTtsResponseAfterPlayback();
+ void MaybeFinishTtsAfterPlayback();
void ScheduleTtsAudio(std::shared_ptr<AudioStreamPacket> packet);
- void ScheduleTtsIdleFallback();
void PauseSdCardMp3ForVoice();
void ResumeSdCardMp3AfterVoice();
void SetListeningMode(ListeningMode mode);
--
Gitblit v1.9.1