#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