Fixes and improvements (#620)
- Standardized keyboard input using Unicode-based key codes across supported devices and the simulator. Keyboards don't emit `LV_KEY_*` anymore. - Refactored lilygo encoder driver into a reusable GPIO rotary encoder driver (see `Drivers/gpio-encoder-module/`). Added more features to the config file. - Improved LVGL keyboard device management, including duplicate prevention and reliable reconnects. - LVGL file mutex now registers with lvgl start/stop - Improved LVGL startup/shutdown stability and memory allocation reliability. - Increased simulator LVGL memory capacity and improved USB device-class handling.
This commit is contained in:
committed by
GitHub
parent
4fea48f433
commit
db48dfe812
@@ -11,18 +11,33 @@ macro(tactility_get_module_name NAME OUT_NAME)
|
||||
endmacro()
|
||||
|
||||
macro(tactility_add_module NAME)
|
||||
set(options)
|
||||
# WHOLE_ARCHIVE: force every object file in this module into the final link unconditionally,
|
||||
# instead of only the ones some other already-scanned archive currently has a pending
|
||||
# undefined reference to. Needed when this module provides symbols a component it depends on
|
||||
# (e.g. lvgl__lvgl's custom-allocator hooks) calls back into - a reverse reference a normal
|
||||
# single-pass static-archive link can't resolve, since that component is scanned after this
|
||||
# one's archive has already been passed once. POSIX builds link everything as plain OBJECT
|
||||
# libraries (no archive-pruning to begin with), so this is a no-op there.
|
||||
set(options WHOLE_ARCHIVE)
|
||||
set(oneValueArgs)
|
||||
set(multiValueArgs SRCS INCLUDE_DIRS PRIV_INCLUDE_DIRS REQUIRES PRIV_REQUIRES)
|
||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
if (DEFINED ENV{ESP_IDF_VERSION})
|
||||
# idf_component_register's WHOLE_ARCHIVE is a presence-based flag (no value) - only pass
|
||||
# the token at all when requested, rather than passing ARG_WHOLE_ARCHIVE's TRUE/FALSE as
|
||||
# a value, which idf_component_register doesn't expect.
|
||||
set(whole_archive_arg)
|
||||
if (ARG_WHOLE_ARCHIVE)
|
||||
set(whole_archive_arg WHOLE_ARCHIVE)
|
||||
endif()
|
||||
idf_component_register(
|
||||
SRCS ${ARG_SRCS}
|
||||
INCLUDE_DIRS ${ARG_INCLUDE_DIRS}
|
||||
PRIV_INCLUDE_DIRS ${ARG_PRIV_INCLUDE_DIRS}
|
||||
REQUIRES ${ARG_REQUIRES}
|
||||
PRIV_REQUIRES ${ARG_PRIV_REQUIRES}
|
||||
${whole_archive_arg}
|
||||
)
|
||||
else()
|
||||
add_library(${NAME} OBJECT)
|
||||
|
||||
@@ -19,7 +19,9 @@ CONFIG_LV_FS_STDIO_PATH=""
|
||||
CONFIG_LV_FS_STDIO_CACHE_SIZE=4096
|
||||
CONFIG_LV_USE_LODEPNG=y
|
||||
CONFIG_LV_USE_BUILTIN_MALLOC=n
|
||||
CONFIG_LV_USE_CLIB_MALLOC=y
|
||||
# Routes lv_malloc/realloc/free through Modules/lvgl-module/source/lv_mem_custom.c, which prefers
|
||||
# PSRAM (falls back to internal RAM automatically) instead of a fixed-size pool or plain malloc.
|
||||
CONFIG_LV_USE_CUSTOM_MALLOC=y
|
||||
CONFIG_LV_USE_MSGBOX=n
|
||||
CONFIG_LV_USE_SPINNER=n
|
||||
CONFIG_LV_USE_WIN=n
|
||||
|
||||
Reference in New Issue
Block a user