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

151 lines
4.1 KiB
C
Raw 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.

#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