#include "kt.h" #include "drv_st7789.h" #include "kt_ui.h" #include "key_event_deal.h" #include "app_task.h" #include "avctp_user.h" u16 tid = 0; void kt_boot_init(void) { // mute PA1 PA2 双绑 gpio_set_pull_up(IO_PORTA_01, 0); gpio_set_pull_down(IO_PORTA_01, 0); gpio_set_die(IO_PORTA_01, 1); gpio_set_direction(IO_PORTA_01, 1); gpio_set_pull_up(CFG_MUTE_PIN, 0); gpio_set_pull_down(CFG_MUTE_PIN, 0); gpio_set_direction(CFG_MUTE_PIN, 0); PA_MUTE(); // flash led PA0 PC7 双绑 gpio_set_pull_up(IO_PORTA_00, 0); gpio_set_pull_down(IO_PORTA_00, 0); gpio_set_die(IO_PORTA_00, 1); gpio_set_direction(IO_PORTA_00, 1); gpio_set_pull_up(CFG_FLASH_LED_PIN, 0); gpio_set_pull_down(CFG_FLASH_LED_PIN, 0); gpio_set_direction(CFG_FLASH_LED_PIN, 0); FLASH_LED_OFF(); // bt led PA3 gpio_set_pull_up(CFG_BT_LED_PIN, 0); gpio_set_pull_down(CFG_BT_LED_PIN, 0); gpio_set_direction(CFG_BT_LED_PIN, 0); BT_LED_OFF(); // exp pwr PB3 gpio_set_pull_up(CFG_EXP_PWR_PIN, 0); gpio_set_pull_down(CFG_EXP_PWR_PIN, 0); gpio_set_direction(CFG_EXP_PWR_PIN, 0); EXP_PWR_OFF(); } static void tid_timer_callback(void *priv) { // kt_ui_post_key_event(KEY_USER_PLAY_TIME_UPDATE, 0); //printf("tid_timer_callback\n"); if (app_get_curr_task() == APP_BT_TASK) { if (get_bt_connect_status() == BT_STATUS_PLAYING_MUSIC) { //printf("tid_timer_callback: get_bt_connect_status() == BT_STATUS_PLAYING_MUSIC\n"); user_send_cmd_prepare(USER_CTRL_AVCTP_OPID_GET_PLAY_TIME, 0, NULL); } } } static void start_timer(void) { if (tid != 0) { sys_timer_del(tid); tid = 0; } tid = sys_timer_add(NULL, tid_timer_callback, 200); } void kt_init(void) { lcd_st7789_init(); kt_ui_init(); start_timer(); } u8 kt_key_event_filter_after(int key_event, int key_value) { u8 ret = false; switch (key_event) { case KEY_MUSIC_PREV: case KEY_MUSIC_NEXT: case KEY_USER_PLAY_TIME_UPDATE: /* 投递到 UI 任务,由当前页面处理 (如 Home 页用于切换 BT/Music) */ kt_ui_post_key_event(key_event, key_value); ret = true; break; default: ret = false; break; } return ret; }