2025-08-21 08:15:01 +00:00
|
|
|
#include "kt.h"
|
|
|
|
#include "app_task.h"
|
|
|
|
#include "music_player.h"
|
|
|
|
|
2025-08-27 16:29:07 +00:00
|
|
|
typedef struct _kt_var_
|
|
|
|
{
|
|
|
|
int tid;
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
u8 play_mode; //0:none,1:num,2:name,3:fullname
|
|
|
|
u8 play_num;
|
|
|
|
char play_name[32];
|
|
|
|
u8 cycle_mode;
|
|
|
|
}play_status;
|
|
|
|
|
|
|
|
} _kt_var;
|
2025-08-21 08:15:01 +00:00
|
|
|
|
2025-08-27 16:29:07 +00:00
|
|
|
static _kt_var kt_var;
|
|
|
|
#define __this (&kt_var)
|
2025-08-21 08:15:01 +00:00
|
|
|
|
|
|
|
void kt_busy_ctl_init(void)
|
|
|
|
{
|
2025-08-27 16:29:07 +00:00
|
|
|
/* pa ctl-mute*/
|
|
|
|
// gpio_set_direction(KT_PAMUTE_PORT, 0);
|
|
|
|
// gpio_set_pull_up(KT_PAMUTE_PORT, 0);
|
|
|
|
// gpio_set_pull_down(KT_PAMUTE_PORT, 0);
|
|
|
|
// gpio_set_hd(KT_PAMUTE_PORT, 1);
|
2025-08-21 08:15:01 +00:00
|
|
|
|
2025-08-27 16:29:07 +00:00
|
|
|
// gpio_set_output_value(KT_PAMUTE_PORT, 1);
|
2025-08-21 08:15:01 +00:00
|
|
|
|
|
|
|
gpio_set_direction(KT_BUSY_PORT, 0);
|
|
|
|
gpio_set_pull_up(KT_BUSY_PORT, 0);
|
|
|
|
gpio_set_pull_down(KT_BUSY_PORT, 0);
|
|
|
|
gpio_set_hd(KT_BUSY_PORT, 1);
|
|
|
|
|
|
|
|
gpio_set_output_value(KT_BUSY_PORT, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
void timer_cb(void *arg)
|
|
|
|
{
|
2025-08-27 16:29:07 +00:00
|
|
|
#if 0
|
2025-08-21 08:15:01 +00:00
|
|
|
if (app_get_curr_task() == APP_MUSIC_TASK)
|
|
|
|
{
|
|
|
|
if (music_player_get_play_status() == FILE_DEC_STATUS_PLAY)
|
|
|
|
{
|
|
|
|
gpio_set_output_value(KT_BUSY_PORT, 1);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
gpio_set_output_value(KT_BUSY_PORT, 0);
|
2025-08-27 16:29:07 +00:00
|
|
|
}
|
2025-08-21 08:15:01 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
gpio_set_output_value(KT_BUSY_PORT, 1);
|
2025-08-27 16:29:07 +00:00
|
|
|
}
|
|
|
|
#endif
|
2025-08-21 08:15:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void start_timer(void)
|
|
|
|
{
|
2025-08-27 16:29:07 +00:00
|
|
|
if (__this->tid)
|
|
|
|
{
|
|
|
|
sys_timer_del(__this->tid);
|
|
|
|
}
|
|
|
|
__this->tid = sys_timer_add(NULL, timer_cb, 50);
|
|
|
|
}
|
|
|
|
|
|
|
|
u8 kt_get_cycle(void)
|
|
|
|
{
|
|
|
|
return __this->play_status.cycle_mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
void kt_change_cycle(u8 cycle)
|
|
|
|
{
|
|
|
|
__this->play_status.cycle_mode = cycle;
|
|
|
|
if (cycle != FCYCLE_ONE)
|
2025-08-21 08:15:01 +00:00
|
|
|
{
|
2025-08-28 08:08:12 +00:00
|
|
|
memset(__this->play_status.play_name, 0, sizeof(__this->play_status.play_name));
|
2025-08-21 08:15:01 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2025-08-27 16:29:07 +00:00
|
|
|
void kt_set_last_play(u8 mode, u8 num, char *name)
|
|
|
|
{
|
|
|
|
printf("kt_set_last_play mode = %d, num = %d, name = %s\n", mode, num, name);
|
|
|
|
__this->play_status.play_mode = mode;
|
|
|
|
if (mode == 1)
|
|
|
|
{
|
|
|
|
printf("kt_set_last_play num = %d\n", num);
|
|
|
|
__this->play_status.play_num = num;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
printf("kt_set_last_play name = %s\n", name);
|
|
|
|
memset(__this->play_status.play_name, 0, sizeof(__this->play_status.play_name));
|
|
|
|
strcpy(__this->play_status.play_name, name);
|
|
|
|
printf("kt_set_last_play play_name = %s\n", __this->play_status.play_name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void kt_get_last_play(u8 *mode, u8 *num, char *name)
|
|
|
|
{
|
|
|
|
*mode = __this->play_status.play_mode;
|
|
|
|
printf("kt_get_last_play mode = %d\n", *mode);
|
|
|
|
if (__this->play_status.play_mode == 1)
|
|
|
|
{
|
|
|
|
*num = __this->play_status.play_num;
|
|
|
|
printf("kt_get_last_play num = %d\n", *num);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
strcpy(name, __this->play_status.play_name);
|
|
|
|
printf("kt_get_last_play name = %s\n", name);
|
|
|
|
}
|
|
|
|
}
|
2025-08-21 08:15:01 +00:00
|
|
|
|
|
|
|
void kt_init(void)
|
|
|
|
{
|
2025-08-27 16:29:07 +00:00
|
|
|
memset(&__this->play_status, 0, sizeof(__this->play_status));
|
|
|
|
//kt_busy_ctl_init();
|
2025-08-21 08:15:01 +00:00
|
|
|
kt_uart_init();
|
|
|
|
start_timer();
|
|
|
|
}
|