#ifndef LCD_ZJY350C4001_H #define LCD_ZJY350C4001_H #include "epd-spi/epd_common.h" typedef enum { LCD_ZJY350C4001_DIR_0 = 0x08U, LCD_ZJY350C4001_DIR_90 = 0x68U, LCD_ZJY350C4001_DIR_180 = 0xC8U, LCD_ZJY350C4001_DIR_270 = 0xA8U, } lcd_zjy350c4001_direction_t; typedef enum { LCD_ZJY350C4001_RGB444 = 3, LCD_ZJY350C4001_RGB565 = 5, LCD_ZJY350C4001_RGB666 = 6, LCD_ZJY350C4001_RGB888 = 7, } lcd_zjy350c4001_pixfmt_t; typedef struct { lcd_zjy350c4001_direction_t direction; lcd_zjy350c4001_pixfmt_t pix_fmt; uint8_t inversion; uint8_t bgr_mode; uint8_t mirrored; } lcd_zjy350c4001_config_t; typedef struct { epd_cb_t cb; void *user_data; lcd_zjy350c4001_config_t config; } lcd_zjy350c4001_t; epd_ret_t lcd_zjy350c4001_init(lcd_zjy350c4001_t *lcd); epd_ret_t lcd_zjy350c4001_upload(lcd_zjy350c4001_t *lcd, uint8_t *data, epd_coord_t *coord); epd_ret_t lcd_zjy350c4001_sleep(lcd_zjy350c4001_t *lcd, uint8_t sleep_mode); epd_ret_t lcd_zjy350c4001_display(lcd_zjy350c4001_t *lcd, uint8_t display_on); epd_ret_t lcd_zjy350c4001_config(lcd_zjy350c4001_t *lcd, lcd_zjy350c4001_config_t *config); #endif