KT25-1015_AC695x_SDK310/apps/kaotings/kt.c
2025-10-15 17:21:13 +08:00

128 lines
2.4 KiB
C

#include "kt.h"
#include "avctp_user.h"
#include "key_event_deal.h"
typedef struct _kts_
{
int timer;
u32 t_cnt; // 上电标志
u8 led_flag;
// u8 conn_flag;
} _kts;
static _kts kts_var;
#define __this (&kts_var)
void kt_boot_init(void)
{
gpio_set_pull_up(KTCFG_PA_MUTE_PIN, 0);
gpio_set_pull_down(KTCFG_PA_MUTE_PIN, 0);
gpio_set_direction(KTCFG_PA_MUTE_PIN, 0);
PA_MUTE();
gpio_set_pull_up(KTCFG_PWR_LED_PIN, 0);
gpio_set_pull_down(KTCFG_PWR_LED_PIN, 0);
gpio_set_direction(KTCFG_PWR_LED_PIN, 0);
gpio_set_output_value(KTCFG_PWR_LED_PIN, 1);
gpio_set_pull_up(KTCFG_BAK_LED_PIN, 0);
gpio_set_pull_down(KTCFG_BAK_LED_PIN, 0);
gpio_set_direction(KTCFG_BAK_LED_PIN, 0);
gpio_set_output_value(KTCFG_BAK_LED_PIN, 0);
gpio_set_pull_up(KTCFG_BT_LED_PIN, 0);
gpio_set_pull_down(KTCFG_BT_LED_PIN, 0);
gpio_set_direction(KTCFG_BT_LED_PIN, 0);
gpio_set_output_value(KTCFG_BT_LED_PIN, 0);
}
static void led_tim_callback(void)
{
/* if (get_call_status() == BT_CALL_ACTIVE)
{
user_send_cmd_prepare(USER_CTRL_DISCONN_SCO, 0, NULL);
} */
if (get_bt_connect_status() < BT_STATUS_CONNECTING)
{
if (__this->led_flag == 0)
{
__this->led_flag = 1;
BT_LED_ON();
}
else
{
__this->led_flag = 0;
BT_LED_OFF();
}
}
else
{
BT_LED_ON();
}
if (__this->t_cnt > 0)
{
__this->t_cnt--;
if (__this->t_cnt == 0)
{
BAK_LED_OFF();
PWR_LED_OFF();
}
}
else
{
BAK_LED_OFF();
PWR_LED_OFF();
}
}
static void start_timer(void)
{
if (__this->timer)
{
sys_timer_del(__this->timer);
}
__this->t_cnt = 0;
__this->timer = sys_timer_add(NULL, led_tim_callback, 500);
}
void kt_init(void)
{
start_timer();
}
void bled_set(void)
{
__this->t_cnt = 10;
BAK_LED_ON();
PWR_LED_ON();
}
u8 kt_key_event_filter_after(int key_event)
{
switch (key_event)
{
case KEY_MUSIC_PP:
bled_set();
break;
case KEY_MUSIC_PREV:
bled_set();
break;
case KEY_MUSIC_NEXT:
bled_set();
break;
case KEY_VOL_UP:
bled_set();
break;
case KEY_VOL_DOWN:
bled_set();
break;
default:
break;
}
return false;
}