KT24-1110_65E-HA-651B/apps/soundbox/app_main.c
2024-11-10 18:44:17 +08:00

162 lines
3.6 KiB
C

#include "system/includes.h"
#include "app_config.h"
#include "asm/pwm_led.h"
#include "tone_player.h"
#include "ui_manage.h"
#include "app_main.h"
#include "app_task.h"
#include "asm/charge.h"
#include "app_power_manage.h"
#include "app_charge.h"
#include "user_cfg.h"
#include "power_on.h"
#include "bt.h"
#include "soundcard/peripheral.h"
#include "audio.h"
#include "vm.h"
#define LOG_TAG_CONST APP
#define LOG_TAG "[APP]"
#define LOG_ERROR_ENABLE
#define LOG_DEBUG_ENABLE
#define LOG_INFO_ENABLE
/* #define LOG_DUMP_ENABLE */
#define LOG_CLI_ENABLE
#include "debug.h"
APP_VAR app_var;
void app_entry_idle()
{
app_task_switch_to(APP_IDLE_TASK);
}
void vddiom_set_dynamic(u8 level)
{
#if ((defined TCFG_VDDIO_SET_DYNAMIC_EN) && TCFG_VDDIO_SET_DYNAMIC_EN)
local_irq_disable();
if (GET_VDDIOM_VOL() != level) {
printf(">>>>>VDDIOM_VOL_LEVEL_SEL %d\n", level);
VDDIOM_VOL_SEL(level);
}
local_irq_enable();
#endif
}
void app_task_loop()
{
while (1) {
switch (app_curr_task) {
case APP_POWERON_TASK:
log_info("APP_POWERON_TASK \n");
app_poweron_task();
break;
case APP_POWEROFF_TASK:
log_info("APP_POWEROFF_TASK \n");
app_poweroff_task();
break;
case APP_BT_TASK:
log_info("APP_BT_TASK \n");
app_bt_task();
break;
case APP_MUSIC_TASK:
log_info("APP_MUSIC_TASK \n");
app_music_task();
break;
case APP_FM_TASK:
log_info("APP_FM_TASK \n");
app_fm_task();
break;
case APP_RECORD_TASK:
log_info("APP_RECORD_TASK \n");
app_record_task();
break;
case APP_LINEIN_TASK:
log_info("APP_LINEIN_TASK \n");
app_linein_task();
break;
case APP_RTC_TASK:
log_info("APP_RTC_TASK \n");
app_rtc_task();
break;
case APP_PC_TASK:
log_info("APP_PC_TASK \n");
app_pc_task();
break;
case APP_SPDIF_TASK:
log_info("APP_SPDIF_TASK \n");
app_spdif_task();
break;
case APP_IDLE_TASK:
log_info("APP_IDLE_TASK \n");
app_idle_task();
break;
case APP_SLEEP_TASK:
log_info("APP_SLEEP_TASK \n");
app_sleep_task();
break;
case APP_SMARTBOX_ACTION_TASK:
log_info("APP_SMARTBOX_ACTION_TASK \n");
app_smartbox_task();
break;
}
app_task_clear_key_msg();//清理按键消息
//检查整理VM
vm_check_all(0);
}
}
void app_main()
{
log_info("app_main\n");
app_var.start_time = timer_get_ms();
if (get_charge_online_flag()) {
app_var.poweron_charge = 1;
#if (TCFG_SYS_LVD_EN == 1)
vbat_check_init();
#endif
#ifndef PC_POWER_ON_CHARGE
app_curr_task = APP_IDLE_TASK;
#else
app_curr_task = APP_POWERON_TASK;
#endif
} else {
#if SOUNDCARD_ENABLE
soundcard_peripheral_init();
#endif
#if TCFG_HOST_AUDIO_ENABLE
void usb_host_audio_init(int (*put_buf)(void *ptr, u32 len), int *(*get_buf)(void *ptr, u32 len));
usb_host_audio_init(usb_audio_play_put_buf, usb_audio_record_get_buf);
#endif
/* endless_loop_debug_int(); */
ui_update_status(STATUS_POWERON);
app_curr_task = APP_POWERON_TASK;
}
#if TCFG_CHARGE_BOX_ENABLE
app_curr_task = APP_IDLE_TASK;
#endif
#if (TCFG_USB_CDC_BACKGROUND_RUN && (!TCFG_PC_ENABLE))
usb_cdc_background_run();
#endif
app_task_loop();
}