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