128 lines
2.4 KiB
C
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;
|
|
} |