| | |
| | | |
| | | #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]; |
| | |
| | | |
| | | /** |
| | | * @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 "我们聊天吧" |
| | |
| | | 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 表示未暂停。 |
| | |
| | | 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); |