Revert to LVGL 9.0.0 (#64)

* Revert "Update ESP LCD Touch dependencies (#63)"

This reverts commit cbd0355cec.

* Revert "Updated board configs for LVGL changes (#62)"

This reverts commit 52d769854f.

* Revert "Various updates (#60)"

This reverts commit a8a664703b.
This commit is contained in:
Ken Van Hoeylandt
2024-10-28 23:08:24 +01:00
committed by GitHub
parent cbd0355cec
commit 62d30e8b7b
55 changed files with 706 additions and 2335 deletions
+6 -38
View File
@@ -12,11 +12,11 @@
#pragma once
#include "esp_err.h"
#include "lvgl.h"
#include "esp_lvgl_port_disp.h"
#include "esp_lvgl_port_touch.h"
#include "esp_lvgl_port_knob.h"
#include "esp_lvgl_port_button.h"
#include "esp_lvgl_port_compatibility.h"
#include "esp_lvgl_port_disp.h"
#include "esp_lvgl_port_knob.h"
#include "esp_lvgl_port_touch.h"
#include "esp_lvgl_port_usbhid.h"
#if LVGL_VERSION_MAJOR == 8
@@ -27,23 +27,6 @@
extern "C" {
#endif
/**
* @brief LVGL Port task event type
*/
typedef enum {
LVGL_PORT_EVENT_DISPLAY = 1,
LVGL_PORT_EVENT_TOUCH = 2,
LVGL_PORT_EVENT_USER = 99,
} lvgl_port_event_type_t;
/**
* @brief LVGL Port task events
*/
typedef struct {
lvgl_port_event_type_t type;
void *param;
} lvgl_port_event_t;
/**
* @brief Init configuration structure
*/
@@ -89,7 +72,6 @@ esp_err_t lvgl_port_init(const lvgl_port_cfg_t *cfg);
*
* @return
* - ESP_OK on success
* - ESP_ERR_TIMEOUT when stopping the LVGL task times out
*/
esp_err_t lvgl_port_deinit(void);
@@ -119,7 +101,7 @@ void lvgl_port_unlock(void);
void lvgl_port_flush_ready(lv_display_t *disp);
/**
* @brief Stop lvgl timer
* @brief Stop lvgl task
*
*
* @return
@@ -129,7 +111,7 @@ void lvgl_port_flush_ready(lv_display_t *disp);
esp_err_t lvgl_port_stop(void);
/**
* @brief Resume lvgl timer
* @brief Resume lvgl task
*
*
* @return
@@ -138,20 +120,6 @@ esp_err_t lvgl_port_stop(void);
*/
esp_err_t lvgl_port_resume(void);
/**
* @brief Notify LVGL task, that display need reload
*
* @note It is called from LVGL events and touch interrupts
*
* @param event event type
* @param param user param
* @return
* - ESP_OK on success
* - ESP_ERR_NOT_SUPPORTED if it is not implemented
* - ESP_ERR_INVALID_STATE if queue is not initialized (can be returned after LVGL deinit)
*/
esp_err_t lvgl_port_task_wake(lvgl_port_event_type_t event, void *param);
#ifdef __cplusplus
}
#endif
@@ -19,13 +19,6 @@ extern "C" {
* @brief Backward compatibility with LVGL 8
*/
typedef lv_disp_t lv_display_t;
typedef enum {
LV_DISPLAY_ROTATION_0 = LV_DISP_ROT_NONE,
LV_DISPLAY_ROTATION_90 = LV_DISP_ROT_90,
LV_DISPLAY_ROTATION_180 = LV_DISP_ROT_180,
LV_DISPLAY_ROTATION_270 = LV_DISP_ROT_270
} lv_disp_rotation_t;
typedef lv_disp_rotation_t lv_display_rotation_t;
#ifdef __cplusplus
}
@@ -39,52 +39,24 @@ typedef struct {
typedef struct {
esp_lcd_panel_io_handle_t io_handle; /*!< LCD panel IO handle */
esp_lcd_panel_handle_t panel_handle; /*!< LCD panel handle */
esp_lcd_panel_handle_t control_handle; /*!< LCD panel control handle */
uint32_t buffer_size; /*!< Size of the buffer for the screen in pixels */
bool double_buffer; /*!< True, if should be allocated two buffers */
uint32_t trans_size; /*!< Allocated buffer will be in SRAM to move framebuf (optional) */
uint32_t buffer_size; /*!< Size of the buffer for the screen in pixels */
bool double_buffer; /*!< True, if should be allocated two buffers */
uint32_t trans_size; /*!< Allocated buffer will be in SRAM to move framebuf */
uint32_t hres; /*!< LCD display horizontal resolution */
uint32_t vres; /*!< LCD display vertical resolution */
bool monochrome; /*!< True, if display is monochrome and using 1bit for 1px */
lvgl_port_rotation_cfg_t rotation; /*!< Default values of the screen rotation */
lvgl_port_rotation_cfg_t rotation; /*!< Default values of the screen rotation */
#if LVGL_VERSION_MAJOR >= 9
lv_color_format_t color_format; /*!< The color format of the display */
#endif
struct {
unsigned int buff_dma: 1; /*!< Allocated LVGL buffer will be DMA capable */
unsigned int buff_spiram: 1; /*!< Allocated LVGL buffer will be in PSRAM */
unsigned int sw_rotate: 1; /*!< Use software rotation (slower) or PPA if available */
#if LVGL_VERSION_MAJOR >= 9
unsigned int swap_bytes: 1; /*!< Swap bytes in RGB656 (16-bit) color format before send to LCD driver */
#endif
unsigned int full_refresh: 1;/*!< 1: Always make the whole screen redrawn */
unsigned int direct_mode: 1; /*!< 1: Use screen-sized buffers and draw to absolute coordinates */
unsigned int sw_rotate: 1; /*!< Use software rotation (slower) */
unsigned int swap_bytes: 1; /*!< Swap bytes in RGB656 (16-bit) before send to LCD driver */
} flags;
} lvgl_port_display_cfg_t;
/**
* @brief Configuration RGB display structure
*/
typedef struct {
struct {
unsigned int bb_mode: 1; /*!< 1: Use bounce buffer mode */
unsigned int avoid_tearing: 1; /*!< 1: Use internal RGB buffers as a LVGL draw buffers to avoid tearing effect */
} flags;
} lvgl_port_display_rgb_cfg_t;
/**
* @brief Configuration MIPI-DSI display structure
*/
typedef struct {
int dummy;
} lvgl_port_display_dsi_cfg_t;
/**
* @brief Add I2C/SPI/I8080 display handling to LVGL
* @brief Add display handling to LVGL
*
* @note Allocated memory in this function is not free in deinit. You must call lvgl_port_remove_disp for free all memory!
*
@@ -93,28 +65,6 @@ typedef struct {
*/
lv_display_t *lvgl_port_add_disp(const lvgl_port_display_cfg_t *disp_cfg);
/**
* @brief Add MIPI-DSI display handling to LVGL
*
* @note Allocated memory in this function is not free in deinit. You must call lvgl_port_remove_disp for free all memory!
*
* @param disp_cfg Display configuration structure
* @param dsi_cfg MIPI-DSI display specific configuration structure
* @return Pointer to LVGL display or NULL when error occurred
*/
lv_display_t *lvgl_port_add_disp_dsi(const lvgl_port_display_cfg_t *disp_cfg, const lvgl_port_display_dsi_cfg_t *dsi_cfg);
/**
* @brief Add RGB display handling to LVGL
*
* @note Allocated memory in this function is not free in deinit. You must call lvgl_port_remove_disp for free all memory!
*
* @param disp_cfg Display configuration structure
* @param rgb_cfg RGB display specific configuration structure
* @return Pointer to LVGL display or NULL when error occurred
*/
lv_display_t *lvgl_port_add_disp_rgb(const lvgl_port_display_cfg_t *disp_cfg, const lvgl_port_display_rgb_cfg_t *rgb_cfg);
/**
* @brief Remove display handling from LVGL
*
@@ -15,9 +15,6 @@
#include "lvgl.h"
#if __has_include ("iot_knob.h")
#if !__has_include("iot_button.h")
#error LVLG Knob requires button component. Please add it with idf.py add-dependency espressif/button
#endif
#include "iot_knob.h"
#include "iot_button.h"
#define ESP_LVGL_PORT_KNOB_COMPONENT 1
@@ -1,90 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#if !CONFIG_LV_DRAW_SW_ASM_CUSTOM
#warning "esp_lvgl_port_lv_blend.h included, but CONFIG_LV_DRAW_SW_ASM_CUSTOM not set. Assembly rendering not used"
#else
/*********************
* DEFINES
*********************/
#ifndef LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888
#define LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888(dsc) \
_lv_color_blend_to_argb8888_esp(dsc)
#endif
#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565
#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565(dsc) \
_lv_color_blend_to_rgb565_esp(dsc)
#endif
/**********************
* TYPEDEFS
**********************/
typedef struct {
uint32_t opa;
void *dst_buf;
uint32_t dst_w;
uint32_t dst_h;
uint32_t dst_stride;
const void *src_buf;
uint32_t src_stride;
const lv_opa_t *mask_buf;
uint32_t mask_stride;
} asm_dsc_t;
/**********************
* GLOBAL PROTOTYPES
**********************/
extern int lv_color_blend_to_argb8888_esp(asm_dsc_t *asm_dsc);
static inline lv_result_t _lv_color_blend_to_argb8888_esp(_lv_draw_sw_blend_fill_dsc_t *dsc)
{
asm_dsc_t asm_dsc = {
.dst_buf = dsc->dest_buf,
.dst_w = dsc->dest_w,
.dst_h = dsc->dest_h,
.dst_stride = dsc->dest_stride,
.src_buf = &dsc->color,
};
return lv_color_blend_to_argb8888_esp(&asm_dsc);
}
extern int lv_color_blend_to_rgb565_esp(asm_dsc_t *asm_dsc);
static inline lv_result_t _lv_color_blend_to_rgb565_esp(_lv_draw_sw_blend_fill_dsc_t *dsc)
{
asm_dsc_t asm_dsc = {
.dst_buf = dsc->dest_buf,
.dst_w = dsc->dest_w,
.dst_h = dsc->dest_h,
.dst_stride = dsc->dest_stride,
.src_buf = &dsc->color,
};
return lv_color_blend_to_rgb565_esp(&asm_dsc);
}
#endif // CONFIG_LV_DRAW_SW_ASM_CUSTOM
#ifdef __cplusplus
} /*extern "C"*/
#endif