#ifndef APP_TASK_H #define APP_TASK_H #include "esp_err.h" #include #include #ifdef __cplusplus extern "C" { #endif int Board_AppTask_SourcePriority(const char *source); esp_err_t Board_StartAppTask(const char *app_id, const char *task_id, const char *params_json, const char *source); bool Board_LessonFilesReady(const char *task_id, const char *params_json); bool Board_IsLessonPlaybackActive(void); esp_err_t Board_SavePendingTask(const char *app_id, const char *task_id, const char *params_json, const char *source, const char *alarm_id); void Board_ResolveBootOrRestore(bool from_alarm_wake); void Board_EnterVoiceEntry(void); bool Board_Handle_Voice_Command(const char *command); void Board_OnSkillPlaybackFinished(bool stopped, bool power_off_requested, unsigned duration_ms); void Board_OnShadowingClipFinished(unsigned duration_ms); void Board_OnShadowingPlaylistFinished(void); void Board_SetShadowingListenRatio(float ratio); unsigned Board_ShadowingListenWindowMs(unsigned duration_ms); bool Board_IsShadowingTask(void); bool Board_IsRepeaterTask(void); bool Board_IsWaitingStartPhrase(void); void Board_BindTaskFromMediaPath(const char *path); void Board_SetActiveTask(const char *app_id, const char *task_id); int Board_AppTask_CurrentPriority(void); bool Board_ResolveRepeaterPlayback(char *name, size_t name_size, float *speed, int *repeat, bool *power_off_after); void Board_RememberRepeaterPlayback(const char *name, float speed, int repeat, bool power_off_after); void Board_RememberLastLessonTask(const char *task_id, const char *params_json); bool Board_LoadLastLessonTask(const char *task_id, char *buf, size_t buf_size); void Board_SetFinishTaskAfterMp3(bool finish); void Board_FlushPendingLessonPlayback(void); void Board_PollPendingLessonPlayback(void); void Board_NoteLessonStartDetectSent(void); bool Board_OnStartPhraseSentence(const char *text); esp_err_t Board_EnsureAppLayout(const char *app_id, const char *task_id); #ifdef __cplusplus } #endif #endif