fix(multimodal): recover stalled downstream sessions

This commit is contained in:
chenjintao
2026-08-12 16:32:25 +08:00
parent 4e7fadde56
commit a94df9545d
9 changed files with 272 additions and 12 deletions
@@ -56,7 +56,8 @@ typedef enum {
CONTROL_PLANE_MULTIMODAL_EVENT_SPEECH_CONTENT,
CONTROL_PLANE_MULTIMODAL_EVENT_SPEECH_ENDED,
CONTROL_PLANE_MULTIMODAL_EVENT_OUTPUT_ERROR,
CONTROL_PLANE_MULTIMODAL_EVENT_DOWNSTREAM_AUDIO
CONTROL_PLANE_MULTIMODAL_EVENT_DOWNSTREAM_AUDIO,
CONTROL_PLANE_MULTIMODAL_EVENT_DOWNSTREAM_STALLED,
} control_plane_multimodal_event_t;
typedef void (*control_plane_multimodal_event_callback_t)(control_plane_multimodal_event_t event,
@@ -90,6 +91,7 @@ typedef enum {
CONTROL_PLANE_TRANSPORT_LOSS_SEND_BINARY_FAILURE,
CONTROL_PLANE_TRANSPORT_LOSS_LISTENING_TIMEOUT,
CONTROL_PLANE_TRANSPORT_LOSS_NO_RESPONSE_TIMEOUT,
CONTROL_PLANE_TRANSPORT_LOSS_DOWNSTREAM_STALL,
CONTROL_PLANE_TRANSPORT_LOSS_PROTOCOL_ERROR,
} control_plane_transport_loss_reason_t;
@@ -98,6 +100,7 @@ void control_plane_multimodal_stop(void);
bool control_plane_multimodal_is_connected(void);
esp_err_t control_plane_multimodal_send_start(void);
esp_err_t control_plane_multimodal_send_stop(const char *reason);
esp_err_t control_plane_multimodal_request_downstream_stall_stop(void);
esp_err_t control_plane_multimodal_send_request_to_speak(void);
esp_err_t control_plane_multimodal_send_speech_start(void);
esp_err_t control_plane_multimodal_send_speech_stop(void);