KT25-1015_AC695x_SDK310/apps/kaotings/kt.c

96 lines
2.3 KiB
C
Raw Normal View History

#include "kt.h"
2026-02-12 13:11:00 +00:00
#include "drv_st7789.h"
2026-02-13 13:49:31 +00:00
#include "kt_ui.h"
#include "key_event_deal.h"
#include "app_task.h"
#include "avctp_user.h"
2026-02-13 13:49:31 +00:00
u16 tid = 0;
void kt_boot_init(void)
{
2026-02-12 13:11:00 +00:00
// 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();
2026-02-13 13:49:31 +00:00
// bt led PA3
2026-02-12 13:11:00 +00:00
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();
2026-02-13 13:49:31 +00:00
// exp pwr PB3
2026-02-12 13:11:00 +00:00
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();
2026-02-13 13:49:31 +00:00
}
2026-02-12 13:11:00 +00:00
2026-02-13 13:49:31 +00:00
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)
{
2026-02-12 13:11:00 +00:00
lcd_st7789_init();
2026-02-13 13:49:31 +00:00
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;
}