mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-10 20:54:24 +00:00
esp_lcd: Add function for register on color done callback.
This commit is contained in:
@@ -29,6 +29,7 @@ static esp_err_t panel_io_i2c_del(esp_lcd_panel_io_t *io);
|
||||
static esp_err_t panel_io_i2c_rx_param(esp_lcd_panel_io_t *io, int lcd_cmd, void *param, size_t param_size);
|
||||
static esp_err_t panel_io_i2c_tx_param(esp_lcd_panel_io_t *io, int lcd_cmd, const void *param, size_t param_size);
|
||||
static esp_err_t panel_io_i2c_tx_color(esp_lcd_panel_io_t *io, int lcd_cmd, const void *color, size_t color_size);
|
||||
static esp_err_t panel_io_i2c_register_event_callbacks(esp_lcd_panel_io_handle_t io, const esp_lcd_panel_io_callbacks_t *cbs, void *user_ctx);
|
||||
|
||||
typedef struct {
|
||||
esp_lcd_panel_io_t base; // Base class of generic lcd panel io
|
||||
@@ -69,6 +70,7 @@ esp_err_t esp_lcd_new_panel_io_i2c(esp_lcd_i2c_bus_handle_t bus, const esp_lcd_p
|
||||
i2c_panel_io->base.rx_param = panel_io_i2c_rx_param;
|
||||
i2c_panel_io->base.tx_param = panel_io_i2c_tx_param;
|
||||
i2c_panel_io->base.tx_color = panel_io_i2c_tx_color;
|
||||
i2c_panel_io->base.register_event_callbacks = panel_io_i2c_register_event_callbacks;
|
||||
*ret_io = &(i2c_panel_io->base);
|
||||
ESP_LOGD(TAG, "new i2c lcd panel io @%p", i2c_panel_io);
|
||||
|
||||
@@ -87,6 +89,20 @@ static esp_err_t panel_io_i2c_del(esp_lcd_panel_io_t *io)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static esp_err_t panel_io_i2c_register_event_callbacks(esp_lcd_panel_io_handle_t io, const esp_lcd_panel_io_callbacks_t *cbs, void *user_ctx)
|
||||
{
|
||||
lcd_panel_io_i2c_t *i2c_panel_io = __containerof(io, lcd_panel_io_i2c_t, base);
|
||||
|
||||
if(i2c_panel_io->on_color_trans_done != NULL) {
|
||||
ESP_LOGW(TAG, "Callback on_color_trans_done was already set and now it was owerwritten!");
|
||||
}
|
||||
|
||||
i2c_panel_io->on_color_trans_done = cbs->on_color_trans_done;
|
||||
i2c_panel_io->user_ctx = user_ctx;
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
static esp_err_t panel_io_i2c_rx_buffer(esp_lcd_panel_io_t *io, int lcd_cmd, void *buffer, size_t buffer_size)
|
||||
{
|
||||
esp_err_t ret = ESP_OK;
|
||||
|
Reference in New Issue
Block a user