KT26-0607_AC695n-BTE-SDK312/apps/soundbox/ui/led_lyric/lyric_ui_music.c
2026-06-07 19:38:16 +08:00

96 lines
2.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "includes.h"
#include "ui/ui_api.h"
#include "led_lyric.h"
#include "audio_dec.h"
#include "audio_dec_file.h"
#include "music/music_player.h"
#include "ui/lyrics.h"
#if TCFG_APP_MUSIC_EN
#if (TCFG_UI_ENABLE && (CONFIG_UI_STYLE == STYLE_JL_LED_LYRICS))
static void lrc_show_music(void)
{
u8 buf[50] = {"MUSIC TASK"};
lyrics_update_font(buf, strlen(buf), NULL);
}
static void lrc_show_puase(void)
{
u8 buf[50] = {"MUSIC PAUSE"};
lyrics_update_font(buf, strlen(buf), NULL);
}
static void lrc_show_file_name(void)
{
u8 music_file_name[256] = {0};
u8 music_file_name_len = 0;
music_file_name_len = fget_name(music_player_get_file_hdl(), music_file_name, sizeof(music_file_name));
if ((music_file_name[0] == '\\') && (music_file_name[1] == 'U')) {
music_file_name_len -= 2;
lyrics_update_unicbuf(music_file_name + 2, music_file_name_len);
} else {
lyrics_update_gbk_to_utf8(music_file_name, music_file_name_len);
}
}
static void lyric_ui_music_open(void)
{
lyric_ui_set_auto_reflash(500);//设置主页500ms自动刷新
}
static void lyric_ui_close_music(void)
{
//lyrics_hide_update();
}
static void lyric_ui_music_main(void) //主界面显示
{
static LYRIC_INFO info;
if (true == file_dec_is_play()) {
u16 dbtime_gap = lyric_btime_gap_get(file_dec_get_cur_time(), 0);
u16 total = file_dec_get_total_time();
u16 curr = file_dec_get_cur_time();
bool ret = user_lyric_info_get(&info, curr, 0);
if (ret && info.update) {
lyrics_update_font(info.buf, info.len, NULL);
} else if (ret == 0) {
lrc_show_file_name();
}
} else if (file_dec_is_pause()) {
lrc_show_puase();
} else {
printf("!!! %s %d\n", __FUNCTION__, __LINE__);
}
}
static int lyric_ui_music_user(u8 menu, u32 arg)//子界面显示 //返回true不继续传递 返回false由common统一处理
{
int ret = true;
switch (menu) {
case MENU_FILENUM:
break;
case MENU_MUSIC_REPEATMODE:
break;
default:
ret = false;
break;
}
return ret;
}
const struct lyric_ui_dis lyric_music_main = {
.lyric_ui = LED_LYRICS_MUSIC_MENU_MAIN,
.lyric_open = lyric_ui_music_open,
.lyric_ui_main = lyric_ui_music_main,
.lyric_ui_user = lyric_ui_music_user,
.lyric_close = lyric_ui_close_music,
};
#endif
#endif