doubao_chat/apps/common/ui/include/lcd_data_driver.h

116 lines
2.9 KiB
C

#ifndef _LCD_DATA_DRIVER_H_
#define _LCD_DATA_DRIVER_H_
#if 0
#define log_info(x, ...) printf("\n[lcd_deta_driver]>>>>>>>>>>>>>>>>>>>###" x " \n", ## __VA_ARGS__)
#else
#define log_info(...)
#endif
#define FILTER_COLOR 0x000000 //图像合成过滤纯黑色
#define FILTER_COLOR_RGB565 0x0000 //图像合成过滤纯黑色
#define FILTER_COLOR_OUTER_FRAME 0xffff //外框颜色
enum lcd_turn {
LCD_TURN_90 = 0,
LCD_TURN_270,
LCD_TURN_0,
LCD_TURN_180,
};
enum lcd_show_mode {
UI,
CAMERA,
UI_CAMERA,
UI_USER,
UI_QR,
UI_RGB,
};
struct lcd_task_info {
OS_SEM yuv_sem;
OS_SEM compose_sem;
OS_SEM wait_yuv_use_ok_sem;
u8 yuv_data_use_flag;
u8 data_ok_flag;
u8 send_data_ok_flag;
u8 wait_te_ready;
u8 *lcd_data;
u8 *in_lcd_buf;
u8 *out_lcd_buf;
u8 *r_lbuf;
};
struct lcd_compose_info {
OS_SEM te_ready_sem;
u8 data_mode;
u8 turn_mode;
u8 piece;
u8 init_value;
u8 compose_mode;
u8 compose_status;
u8 aim_filter_color_l;
u8 aim_filter_color_h;
u8 lcd_bk_on;
u8 lcd_te_io;
u8 camera_data_mode;
u16 user1_y_len;
u16 user2_y;
u16 user2_y_len;
u16 start_x;//起始坐标
u16 start_y;
u16 aim_compose_w;//合成长宽
u16 aim_compose_h;
u16 ui_xstart;
u16 ui_xend;
u16 ui_ystart;
u16 ui_yend;
u16 lcd_w;
u16 lcd_h;
u32 data_size;
u32 lcd_data_size;
u32 lcd_yuv420_data_size;
u8 *ui_save_buf;
u8 *camera_save_buf;
u8 *show_buf;
u8 *out_lcd_buf;
u8 *binarization;
u8 *lbuf;
u8 *w_lbuf;
u8 task_time;
struct lbuff_head *lbuf_handle;
};
void set_lcd_data_driver_lcd_h_w(u16 lcd_w, u16 lcd_h);
void set_lcd_data_size(u32 size);
void set_lcd_yuv420_data_size(u32 size);
void set_lcd_bk_on(u8 on);
void set_lcd_te_pgio(u32 gpio);
//获取全局UI数据内存指针
u8 *get_ui_buf(void);
//获取全局camera数据内存指针
u8 *get_camera_buf(void);
//获取全局推屏数据内存指针
u8 *get_show_buf(void);
void get_data_use_flag(void);
void get_data_use_flag1(void);
void camera_send_data_ready(u8 *buf, u32 size, int width, int height);
void ui_send_data_ready(u8 *data_buf, u32 data_size);
void yuv_picture_compose(u8 *in, u8 *out, u16 w, u16 h);
void set_photo_compose_mode(u8 mode, u8 choice_show_piece);
void set_init_value(u8 set_init_value);//设置mode_7中的ui数据读取
void set_compose_mode(u8 mode, int mode1_y_len, int mode2_y, int mode2_y_len);
void set_compose_mode3(int x, int y, int w, int h);
void set_lcd_show_data_mode(enum lcd_show_mode choice);
u8 get_lcd_show_deta_mode(void);
void set_lcd_ui_x_y(u16 xstart, u16 xend, u16 ystart, u16 yend);
void set_turn_mode(enum lcd_turn mode);
u8 get_lcd_turn_mode(void);
void init_TE(void (*cb)(u8 *buf, u32 buf_size));
void picture_compose_task_init(void);
void lcd_data_free_camera_lbuf(void);
extern int get_jpeg2yuv_yuv_type(void);
#endif