96 lines
2.3 KiB
C
96 lines
2.3 KiB
C
#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;
|
|
} |