/**
 * @file aiagent_defaults.h
 * @brief AI Agent SDK 默认参数
 */

#ifndef AIAGENT_DEFAULTS_H
#define AIAGENT_DEFAULTS_H

/* ========== 音频默认参数 ========== */
#define AIAGENT_DEFAULT_SAMPLE_RATE     16000
#define AIAGENT_DEFAULT_CHANNELS        1
#define AIAGENT_DEFAULT_BITS            16
#define AIAGENT_DEFAULT_FRAME_MS        20
#define AIAGENT_DEFAULT_CODEC           "pcm"

/* 默认帧字节数 */
#define AIAGENT_DEFAULT_FRAME_BYTES     640     /* 16000 * 1 * 2 * 0.02 */

/* WebSocket 默认发送块大小 */
#define AIAGENT_WS_SEND_FRAME_BYTES    1280

/* ========== 缓冲区默认参数 ========== */
#define AIAGENT_DEFAULT_RECORD_BUF      (512 * 1024)    /* 512KB 录音缓冲区 */
#define AIAGENT_DEFAULT_PLAYBACK_BUF    (256 * 1024)    /* 256KB 播放循环缓冲区 */
#define AIAGENT_DEFAULT_MIC_CBUF        (64 * 1024)     /* 64KB 麦克风循环缓冲区 */

/* ========== 时间默认参数 ========== */
#define AIAGENT_DEFAULT_DIALOG_TIMEOUT  60      /* 单位秒，0 表示不超时 */
#define AIAGENT_DEFAULT_CONNECT_TIMEOUT 10000   /* 单位毫秒 */
#define AIAGENT_DEFAULT_VOLUME          30      /* 0-100 */

/* ========== 功能默认参数 ========== */
#define AIAGENT_DEFAULT_MODE            AIAGENT_INTERACT_CONTINUOUS
#define AIAGENT_DEFAULT_SAYHI_ENABLE    1
#define AIAGENT_DEFAULT_SAYHI_TEXT      "你好，我是你的AI助手"
#define AIAGENT_DEFAULT_MULTI_DIALOG    1
#define AIAGENT_DEFAULT_VOICE_INT       1

/* ========== 设备标识 ========== */
/* 设备 SoC 标识，嵌入 [SET]:[DEVICE_INFO] 协议字段 */
#ifndef AIAGENT_DEVICE_SOC
#  define AIAGENT_DEVICE_SOC            "JL791"
#endif

/* 设备 ID 缓冲区长度（含 '\0'） */
#define AIAGENT_DEVICE_ID_LEN           40

/* ========== 云端能力开关 ========== */
/* DEVICE_INFO 发送开关 */
#ifndef AIAGENT_SEND_DEVICE_INFO
#  define AIAGENT_SEND_DEVICE_INFO      1
#endif

/* ASR 扩展开关 */
#ifndef AIAGENT_ASR_TEXT_EXT
#  define AIAGENT_ASR_TEXT_EXT          1
#endif

#if AIAGENT_ASR_TEXT_EXT && !AIAGENT_SEND_DEVICE_INFO
#  warning "AIAGENT_ASR_TEXT_EXT requires AIAGENT_SEND_DEVICE_INFO=1"
#endif

/* ========== WebSocket 实现选择 ========== */
/* 选择 WS 客户端实现 */
#if !defined(WS_IMPL_JIELI) && !defined(WS_IMPL_MONGOOSE)
#  define WS_IMPL_JIELI
#endif
#if defined(WS_IMPL_JIELI) && defined(WS_IMPL_MONGOOSE)
#  error "WS_IMPL_JIELI 与 WS_IMPL_MONGOOSE 不可同时定义"
#endif

/* Mongoose 编译宏 */
#ifdef WS_IMPL_MONGOOSE
#  ifndef MG_ARCH
#    define MG_ARCH 319
#  endif
#  ifndef MG_ENABLE_MBEDTLS
#    define MG_ENABLE_MBEDTLS 1
#  endif
#endif

#endif /* AIAGENT_DEFAULTS_H */
