wangzhibo
10 天以前 220e4fab27b7f419b3e89e2f2d28ae789aac09d7
xiaozhi-esp32-2.2.6/main/boards/sening-xiaozhi-s3/system.h
@@ -36,7 +36,8 @@
#define MOUNT_POINT "/sdcard"
#define SDCARD_PATH_MAX_LEN 256
#define SDCARD_MP3_PLAYLIST_MAX 16
/* 跟读/泛听没有「课文只能 N 句」的业务上限。256 只是一次 MCP 下发的安全顶。 */
#define SDCARD_MP3_PLAYLIST_MAX 256
typedef struct {
    char path[SDCARD_PATH_MAX_LEN];
@@ -84,19 +85,19 @@
/**
 * @brief 板级 MultiNet 离线命令词。只留没网也必须能用的入口:
 * 「切换模式」「模式切换」「复读机」「开始复读」「退出复读」「退出跟读」「我们聊天吧」「我们来聊天吧」。
 * 复读/跟读播音频时不上行 ASR,退出口令必须能离线识别。其它 App 的进入词仍只在 Server apps.json。
 * 「切换模式」「模式切换」「泛听」「开始泛听」「退出泛听」「退出跟读」「我们聊天吧」「我们来聊天吧」。
 * 泛听/跟读播音频时不上行 ASR,退出口令必须能离线识别。其它 App 的进入词仍只在 Server apps.json。
 */
#define OFFLINE_COMMAND_WORD "切换模式"
#define OFFLINE_COMMAND_WORD_PINYIN "qie huan mo shi"
#define OFFLINE_COMMAND_WORD_ALT "模式切换"
#define OFFLINE_COMMAND_WORD_ALT_PINYIN "mo shi qie huan"
#define OFFLINE_REPEATER_WORD "复读机"
#define OFFLINE_REPEATER_WORD_PINYIN "fu du ji"
#define OFFLINE_START_REPEATER_WORD "开始复读"
#define OFFLINE_START_REPEATER_WORD_PINYIN "kai shi fu du"
#define OFFLINE_EXIT_REPEATER_WORD "退出复读"
#define OFFLINE_EXIT_REPEATER_WORD_PINYIN "tui chu fu du"
#define OFFLINE_REPEATER_WORD "泛听"
#define OFFLINE_REPEATER_WORD_PINYIN "fan ting"
#define OFFLINE_START_REPEATER_WORD "开始泛听"
#define OFFLINE_START_REPEATER_WORD_PINYIN "kai shi fan ting"
#define OFFLINE_EXIT_REPEATER_WORD "退出泛听"
#define OFFLINE_EXIT_REPEATER_WORD_PINYIN "tui chu fan ting"
#define OFFLINE_EXIT_SHADOWING_WORD "退出跟读"
#define OFFLINE_EXIT_SHADOWING_WORD_PINYIN "tui chu gen du"
#define OFFLINE_CHAT_WORD "我们聊天吧"
@@ -274,6 +275,19 @@
bool SDCard_Is_Playing(void);
/**
 * @brief 课文开播前释放 AFE、退出聆听并等到内部 SRAM 够 SD DMA。
 *
 * 必须在创建 MP3 播放任务之前调用。AFE/MultiNet 和 SDMMC DMA 争用连续内部 SRAM
 * 时,fopen/sdmmc_read_blocks 会失败,严重时 newlib 锁初始化 abort 重启。
 */
void SDCard_PreparePlaybackAndWait(void);
/**
 * @brief 课文 MP3 已进入 PSRAM 后才允许离线口令 AFE。
 */
bool SDCard_Mp3OfflineWakeAllowed(void);
/**
 * @brief 查询 SD 卡 MP3 播放是否处于暂停状态。
 *
 * @return true 表示播放被暂停或后续新播放应从暂停状态开始;false 表示未暂停。
@@ -431,10 +445,17 @@
esp_err_t Board_Enter_Power_Off(void);
esp_err_t Board_Restore_From_Power_Off(int timeout_ms);
bool Board_Is_Power_Off(void);
bool Board_Get_Wall_Clock(struct tm *out);
esp_err_t DS2312_Set_Schedule_Wake(int hour, int min, int sec, uint8_t weekday_bit);
void DS2312_Clear_Schedule_Wake(void);
esp_err_t Board_Reboot_Delayed(int delay_seconds);
void Board_Acquire_Sleep_Inhibit(void);
void Board_Release_Sleep_Inhibit(void);
bool Board_Is_Voice_Session_Active(void);
void Board_HoldIdleForServerPrompt(void);
void Board_ReleaseHoldIdle(void);
void Board_AnnounceLessonSyncAndWait(void);
void Board_SetLessonDownloadBoost(bool enable);
bool Board_Is_Audio_Busy(void);
void Board_Show_JPG(const char *jpg_name);
void Board_Show_Black_Screen(void);