Files
lucky-cat/components/platform/internal/multimodal/audio_pipeline.h
T
2026-06-25 00:34:34 +08:00

48 lines
1.5 KiB
C

#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef esp_err_t (*multimodal_audio_uplink_cb_t)(const uint8_t *data, size_t len, void *ctx);
typedef enum {
MULTIMODAL_AUDIO_DOWNSTREAM_PLAYBACK_STARTED = 0,
MULTIMODAL_AUDIO_DOWNSTREAM_PLAYBACK_COMPLETED,
MULTIMODAL_AUDIO_DOWNSTREAM_PLAYBACK_STOPPED,
} multimodal_audio_downstream_playback_event_type_t;
typedef struct {
multimodal_audio_downstream_playback_event_type_t type;
} multimodal_audio_downstream_playback_event_t;
typedef void (*multimodal_audio_downstream_playback_callback_t)(
const multimodal_audio_downstream_playback_event_t *event,
void *ctx);
esp_err_t multimodal_audio_init(void);
void multimodal_audio_deinit(void);
esp_err_t multimodal_audio_start_uplink(multimodal_audio_uplink_cb_t cb, void *cb_ctx);
esp_err_t multimodal_audio_stop_uplink(int timeout_ms);
bool multimodal_audio_is_uplink_running(void);
bool multimodal_audio_is_initialized(void);
esp_err_t multimodal_audio_handle_downstream_opus(const uint8_t *data, size_t len);
esp_err_t multimodal_audio_begin_downstream_response(void);
esp_err_t multimodal_audio_finish_downstream_response(void);
esp_err_t multimodal_audio_stop_downstream_playback(void);
esp_err_t multimodal_audio_register_downstream_playback_callback(
multimodal_audio_downstream_playback_callback_t cb,
void *cb_ctx);
#ifdef __cplusplus
}
#endif