KT26-0607_AC695n-BTE-SDK312/apps/soundbox/ui/led_lyric/led_lyric.h

151 lines
4.1 KiB
C
Raw Permalink Normal View History

2026-06-07 11:38:16 +00:00
#ifndef __LED_LYRIC_H__
#define __LED_LYRIC_H__
#include "generic/typedef.h"
#include "board_config.h"
#include "os/os_type.h"
#define LED_WIDTH 120 //led width
#define LED_HEIGHT 12 //led height
enum led_menu_main {
LED_LYRICS_MENU_MAIN_NULL = 0,
LED_LYRICS_RTC_MENU_MAIN,
LED_LYRICS_MUSIC_MENU_MAIN,
LED_LYRICS_AUX_MENU_MAIN,
LED_LYRICS_BT_MENU_MAIN,
LED_LYRICS_RECORD_MENU_MAIN,
LED_LYRICS_FM_MENU_MAIN,
LED_LYRICS_PC_MENU_MAIN,
LED_LYRICS_POWER_ON_MENU_MAIN,
LED_LYRICS_POWER_OFF_MENU_MAIN,
LED_LYRICS_SPDIF_MENU_MAIN,
LED_LYRICS_IDLE_MENU_MAIN,
};
struct lyric_ui_dis {
int lyric_ui;
void (*lyric_open)(void);
void (*lyric_ui_main)(void);
int (*lyric_ui_user)(int menu, int arg);
void (*lyric_close)(void);
};
extern const struct lyric_ui_dis lyric_bt_main;
extern const struct lyric_ui_dis lyric_fm_main;
extern const struct lyric_ui_dis lyric_idle_main;
extern const struct lyric_ui_dis lyric_linein_main;
extern const struct lyric_ui_dis lyric_music_main;
extern const struct lyric_ui_dis lyric_pc_main;
extern const struct lyric_ui_dis lyric_power_on_main;
extern const struct lyric_ui_dis lyric_power_off_main;
extern const struct lyric_ui_dis lyric_record_main;
extern const struct lyric_ui_dis lyric_rtc_main;
typedef enum {
LRC_FONT_ROTATE_0,
LRC_FONT_ROTATE_90,
LRC_FONT_ROTATE_180,
LRC_FONT_ROTATE_270
} LRC_FONT_ROTATE; //顺时针旋转角度
typedef enum {
LRC_FONT_NO_FLIP, //不翻转
LRC_FONT_HORIZONTAL_FLIP, //水平翻转
LRC_FONT_VERTICAL_FLIP //竖直翻转
} LRC_FONT_FLIP;
typedef struct lrc_font_show_info {
u16 scroll_speed; //滚动速度
LRC_FONT_FLIP flip; //翻转
LRC_FONT_ROTATE rotate; //旋转
u8 brightness; //0-15逐级变暗
} LRC_SHOW_INFO;
struct lrc_show_status {
u8 lrc_rotate;
u8 lrc_flip;
u16 lrc_scroll_speed;
u8 lrc_show_status_update_flag;
u16 lrc_record_len;
u8 *lrc_record_str;
};
struct lrc_show_bt_music {
u8 lyric_info[150];
u8 lyric_len;
OS_MUTEX mutex; // 互斥
};
extern struct lrc_show_bt_music bt_music_info;
/*----------------------------------------------------------------------------*/
/**@brief 歌词字库初始化
@param file_name:
@return true-false失败
@note
*/
/*----------------------------------------------------------------------------*/
bool lyrics_font_init(char *file_name);
/*----------------------------------------------------------------------------*/
/**@brief 歌词字库资源释放,和lyrics_font_init成对使用
@note
*/
/*----------------------------------------------------------------------------*/
void lyrics_font_release();
/*----------------------------------------------------------------------------*/
/**@brief 更新歌词字库显示内容
@param str: ,utf8
@param len:
@param show_info: , NULL为默认值
@note
*/
/*----------------------------------------------------------------------------*/
void lyrics_update_font(u8 *str, u16 len, LRC_SHOW_INFO *show_info);
/*----------------------------------------------------------------------------*/
/**@brief 歌词字库滚动控制
@param flag: (: 1); (: 0);
@note
*/
/*----------------------------------------------------------------------------*/
void lyrics_scroll_control(u8 flag);
void lyrics_task_name_update(u8 id);
int UnicodeToUtf8(u8 *pInput, u16 in_len, u8 *pOutput);
void lyrics_update_unicbuf(u8 *unic, u16 len);
void lyrics_hide_update();
void lrc_show_slepp_push(void);
void lrc_wake_up_push(void);
void lyrics_menu_info_update(u8 app_menu, u16 ret_time, s32 arg, void (*func_cb)(u8 param));
int lyrics_get_task_name_id();
void lyrics_rtc_info_update(u16 year, u8 month, u8 day, u8 hour, u8 min, u8 sec);
void lyrics_window_update(u8 on);
void lrc_check_online_timer_init();
void lyrics_update_gbk_to_utf8(u8 *unic, u16 len);
void lrc_show_mode_push(LRC_SHOW_INFO *show_info);
void lyrics_show_status_set(u16 scroll_speed, u8 rotate, u8 flip);
#endif