Call on_error if no api client connected that handles voice (#4709)

This commit is contained in:
Jesse Hills 2023-04-20 08:56:37 +12:00
parent 3be3267d06
commit 7207b9734f
No known key found for this signature in database
GPG key ID: BEAAE804EFD8E83A
3 changed files with 9 additions and 4 deletions

View file

@ -428,10 +428,12 @@ void APIServer::on_shutdown() {
}
#ifdef USE_VOICE_ASSISTANT
void APIServer::start_voice_assistant() {
bool APIServer::start_voice_assistant() {
bool result = false;
for (auto &c : this->clients_) {
c->request_voice_assistant(true);
result |= c->request_voice_assistant(true);
}
return result;
}
void APIServer::stop_voice_assistant() {
for (auto &c : this->clients_) {

View file

@ -96,7 +96,7 @@ class APIServer : public Component, public Controller {
#endif
#ifdef USE_VOICE_ASSISTANT
void start_voice_assistant();
bool start_voice_assistant();
void stop_voice_assistant();
#endif

View file

@ -63,7 +63,10 @@ void VoiceAssistant::start(struct sockaddr_storage *addr, uint16_t port) {
void VoiceAssistant::request_start() {
ESP_LOGD(TAG, "Requesting start...");
api::global_api_server->start_voice_assistant();
if (!api::global_api_server->start_voice_assistant()) {
ESP_LOGW(TAG, "Could not request start.");
this->error_trigger_->trigger("not-connected", "Could not request start.");
}
}
void VoiceAssistant::signal_stop() {