#include "kt.h" #include "app_task.h" #include "music_player.h" 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; static _kt_var kt_var; #define __this (&kt_var) void kt_busy_ctl_init(void) { /* 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); // gpio_set_output_value(KT_PAMUTE_PORT, 1); 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) { #if 0 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); } } else { gpio_set_output_value(KT_BUSY_PORT, 1); } #endif } void start_timer(void) { 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) { memset(__this->play_status.play_name, 0, sizeof(__this->play_status.play_name)); } } 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); } } void kt_init(void) { memset(&__this->play_status, 0, sizeof(__this->play_status)); //kt_busy_ctl_init(); kt_uart_init(); start_timer(); }