eddd98f811
I think people might be reading differences into 'if' and 'depends on' that aren't there, like maybe 'if' being needed to "hide" a symbol, while 'depends on' just adds a dependency. There are no differences between 'if' and 'depends on'. 'if' is just a shorthand for 'depends on'. They work the same when it comes to creating implicit menus too. The way symbols get "hidden" is through their dependencies not being satisfied ('if'/'depends on' get copied up as a dependency on the prompt). Since 'if' and 'depends on' are the same, an 'if' with just a single symbol in it can be replaced with a 'depends on'. IMO, it's best to avoid 'if' there as a style choice too, because it confuses people into thinking there's deep Kconfig magic going on that requires 'if'. Going for 'depends on' can also remove some nested 'if's, which generates nicer symbol information and docs, because nested 'if's really are so simple/dumb that they just add the dependencies from both 'if's to all symbols within. Replace a bunch of single-symbol 'if's with 'depends on' to despam the Kconfig files a bit and make it clearer how things work. Also do some other minor related dependency refactoring. The replacement isn't complete. Will fix up the rest later. Splitting it a bit to make it more manageable. (Everything above is true for choices, menus, and comments as well.) Detected by tweaking the Kconfiglib parsing code. It's impossible to detect after parsing, because 'if' turns into 'depends on'. Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
481 lines
11 KiB
Text
481 lines
11 KiB
Text
# Copyright (c) 2018-2019 Jan Van Winkel <jan.van_winkel@dxplore.eu>
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig LVGL
|
|
bool "LittlevGL GUI library"
|
|
help
|
|
This option enables the LittlevGL GUI library.
|
|
|
|
if LVGL
|
|
|
|
module = LVGL
|
|
module-str = lvgl
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config LVGL_DISPLAY_DEV_NAME
|
|
string "Display device name"
|
|
default "DISPLAY"
|
|
help
|
|
Name of the display device to use for rendering.
|
|
|
|
config LVGL_POINTER_KSCAN
|
|
bool "Keyboard scan pointer input"
|
|
depends on KSCAN
|
|
help
|
|
Enable keyboard scan pointer input
|
|
|
|
if LVGL_POINTER_KSCAN
|
|
|
|
config LVGL_POINTER_KSCAN_DEV_NAME
|
|
string "Keyboard scan device name for pointer input"
|
|
default "KSCAN"
|
|
help
|
|
Name of the keyboard scan device to use for pointer input.
|
|
|
|
config LVGL_POINTER_KSCAN_MSGQ_COUNT
|
|
int "Keyboard scan message queue count maximum"
|
|
default 10
|
|
help
|
|
Maximum number of items in the keyboard scan message queue.
|
|
|
|
endif # LVGL_POINTER_KSCAN
|
|
|
|
config LVGL_HOR_RES
|
|
int "Horizontal Screen Resolution"
|
|
default 320
|
|
help
|
|
Horizontal screen resolution in pixels
|
|
|
|
config LVGL_VER_RES
|
|
int "Vertical Screen Resolution"
|
|
default 240
|
|
help
|
|
Vertical screen resolution in pixels
|
|
|
|
config LVGL_DPI
|
|
int "DPI"
|
|
default 100
|
|
help
|
|
Dots per inch (DPI)
|
|
|
|
choice LVGL_COLOR_DEPTH
|
|
prompt "Color Depth"
|
|
default LVGL_COLOR_DEPTH_32
|
|
help
|
|
Color depth to be used by library
|
|
|
|
config LVGL_COLOR_DEPTH_32
|
|
bool "32-bit"
|
|
|
|
config LVGL_COLOR_DEPTH_16
|
|
bool "16-bit"
|
|
|
|
config LVGL_COLOR_DEPTH_8
|
|
bool "8-bit"
|
|
|
|
config LVGL_COLOR_DEPTH_1
|
|
bool "1-bit"
|
|
|
|
endchoice
|
|
|
|
config LVGL_BITS_PER_PIXEL
|
|
int "Bits per pixel"
|
|
default 32
|
|
range 1 32
|
|
depends on LVGL_BUFFER_ALLOC_STATIC
|
|
help
|
|
Number of bits per pixel.
|
|
|
|
config LVGL_COLOR_16_SWAP
|
|
bool "RGB565 byte swap"
|
|
depends on LVGL_COLOR_DEPTH_16
|
|
help
|
|
Swap the 2 bytes of a RGB565 pixel.
|
|
|
|
config LVGL_COLOR_SCREEN_TRANSP
|
|
bool "Transparency support"
|
|
depends on LVGL_COLOR_DEPTH_32
|
|
help
|
|
Enable screen transparency. Useful for OSD or other overlapping GUISs.
|
|
|
|
choice
|
|
prompt "Chroma key color"
|
|
default LVGL_CHROMA_KEY_GREEN
|
|
help
|
|
Color to to use as chroma key
|
|
|
|
config LVGL_CHROMA_KEY_RED
|
|
bool "Red"
|
|
|
|
config LVGL_CHROMA_KEY_GREEN
|
|
bool "Green"
|
|
|
|
config LVGL_CHROMA_KEY_BLUE
|
|
bool "Blue"
|
|
|
|
config LVGL_CHROMA_KEY_CUSTOM
|
|
bool "Custom"
|
|
|
|
endchoice
|
|
|
|
if LVGL_CHROMA_KEY_CUSTOM
|
|
config LVGL_CUSTOM_CHROMA_KEY_RED
|
|
hex "Chroma Key Red"
|
|
range 0x00 0xFF
|
|
default 0x00
|
|
help
|
|
Value of the color red to be used in the chroma key
|
|
|
|
config LVGL_CUSTOM_CHROMA_KEY_GREEN
|
|
hex "Chroma Key Green"
|
|
range 0x00 0xFF
|
|
default 0xFF
|
|
help
|
|
Value of the color green to be used in the chroma key
|
|
|
|
config LVGL_CUSTOM_CHROMA_KEY_BLUE
|
|
hex "Chroma Key Blue"
|
|
range 0x00 0xFF
|
|
default 0x00
|
|
help
|
|
Value of the color blue to be used in the chroma key
|
|
|
|
endif
|
|
|
|
choice
|
|
prompt "Memory pool"
|
|
default LVGL_MEM_POOL_HEAP_KERNEL
|
|
help
|
|
Memory pool to use for lvgl allocated objects
|
|
|
|
config LVGL_MEM_POOL_HEAP_KERNEL
|
|
bool "Kernel Heap"
|
|
depends on HEAP_MEM_POOL_SIZE != 0
|
|
help
|
|
Use k_malloc and k_free to allocate objects on the kernel heap
|
|
|
|
config LVGL_MEM_POOL_HEAP_LIB_C
|
|
bool "C library Heap"
|
|
depends on !MINIMAL_LIBC || (MINIMAL_LIBC_MALLOC_ARENA_SIZE != 0)
|
|
help
|
|
Use C library malloc and free to allocate objects on the C library heap
|
|
|
|
config LVGL_MEM_POOL_KERNEL
|
|
bool "Kernel space lvgl pool"
|
|
help
|
|
Use a dedicated memory pool in kernel space to allocate lvgl objects
|
|
on
|
|
|
|
config LVGL_MEM_POOL_USER
|
|
bool "User space lvgl pool"
|
|
help
|
|
Use a dedicated memory pool in user space to allocate lvgl objects on
|
|
|
|
endchoice
|
|
|
|
if LVGL_MEM_POOL_KERNEL || LVGL_MEM_POOL_USER
|
|
|
|
config LVGL_MEM_POOL_MIN_SIZE
|
|
int "Minimum memory pool block size"
|
|
default 16
|
|
help
|
|
Size of the smallest block in the memory pool in bytes
|
|
|
|
config LVGL_MEM_POOL_MAX_SIZE
|
|
int "Maximum memory pool block size"
|
|
default 2048
|
|
help
|
|
Size of the largest block in the memory pool in bytes
|
|
|
|
config LVGL_MEM_POOL_NUMBER_BLOCKS
|
|
int "Number of max size blocks in memory pool"
|
|
default 1
|
|
help
|
|
Number of maximum sized blocks in the memory pool.
|
|
|
|
endif
|
|
|
|
config LVGL_VDB_SIZE
|
|
int "Rendering buffer size"
|
|
default 10
|
|
range 1 100
|
|
help
|
|
Size of the buffer used for rendering screen content as a percentage
|
|
of total display size.
|
|
|
|
config LVGL_DOUBLE_VDB
|
|
bool "Use two rendering buffers"
|
|
help
|
|
Use two buffers to render and flush data in parallel
|
|
|
|
choice
|
|
prompt "Rendering Buffer Allocation"
|
|
default LVGL_BUFFER_ALLOC_STATIC
|
|
help
|
|
Type of allocation that should be used for allocating rendering buffers
|
|
|
|
config LVGL_BUFFER_ALLOC_STATIC
|
|
bool "Static"
|
|
help
|
|
Rendering buffers are statically allocated based on the following
|
|
configuration parameters:
|
|
* Horizontal screen resolution
|
|
* Vertical screen resolution
|
|
* Rendering buffer size
|
|
* Bytes per pixel
|
|
|
|
config LVGL_BUFFER_ALLOC_DYNAMIC
|
|
bool "Dynamic"
|
|
help
|
|
Rendering buffers are dynamically allocated based on the actual
|
|
display parameters
|
|
|
|
endchoice
|
|
|
|
config LVGL_SCREEN_REFRESH_PERIOD
|
|
int "Screen refresh period"
|
|
default 50
|
|
help
|
|
Screen refresh period in milliseconds
|
|
|
|
config LVGL_INPUT_REFRESH_PERIOD
|
|
int "Input device refresh period"
|
|
default 50
|
|
help
|
|
Refresh period for input devices in milliseconds
|
|
|
|
config LVGL_INPUT_DRAG_THRESHOLD
|
|
int "Drag Threshold"
|
|
default 10
|
|
help
|
|
Threshold in pixels before entering drag mode
|
|
|
|
config LVGL_INPUT_DRAG_THROW_SLOW_DOWN
|
|
int "Drag throw slow-down"
|
|
default 20
|
|
range 0 100
|
|
help
|
|
Percentage of slow down of a throw following a drag.
|
|
Greater percentage means faster slow-down.
|
|
|
|
config LVGL_INPUT_LONG_PRESS_TIME
|
|
int "Long press time"
|
|
default 400
|
|
help
|
|
Period in milliseconds before a press is seen as a long press
|
|
|
|
config LVGL_INPUT_LONG_RESS_REPEAT_TIME
|
|
int "Long press repeat time"
|
|
default 100
|
|
help
|
|
Period in milliseconds after which a new trigger is generated
|
|
for a long press
|
|
|
|
choice
|
|
prompt "String character encoding"
|
|
default LVGL_TXT_ENC_ASCII
|
|
|
|
config LVGL_TXT_ENC_ASCII
|
|
bool "ASCII string encoding"
|
|
|
|
config LVGL_TXT_ENC_UTF8
|
|
bool "UTF-8 string encoding"
|
|
|
|
endchoice
|
|
|
|
config LVGL_TEXT_BREAK_CHARACTERS
|
|
string "Text break characters"
|
|
default " ,.;:-_"
|
|
help
|
|
Characters on which a text break can take place
|
|
|
|
config LVGL_TEXT_LINE_BREAK_LONG_LEN
|
|
int "Minimal word length for line break"
|
|
default 12
|
|
help
|
|
If a word is at least this long, a line break is allowed in the word.
|
|
|
|
If the length is 0, no line break is allowed in the middle of a word.
|
|
|
|
config LVGL_TEXT_LINE_BREAK_LONG_PRE_MIN_LEN
|
|
int "Minimal number of characters on line before line break"
|
|
default 3
|
|
help
|
|
Minimal number of characters to place on a line before a line break
|
|
in the middle of a word can occur.
|
|
|
|
config LVGL_TEXT_LINE_BREAK_LONG_POST_MIN_LEN
|
|
int "Minimal number of characters on line after line break"
|
|
default 3
|
|
help
|
|
Minimal number of characters to place on a line after a line break
|
|
occurred in the middle of a word.
|
|
|
|
config LVGL_TEXT_COLOR_CMD
|
|
string "Text recoloring control character"
|
|
default "#"
|
|
help
|
|
Control character to use for signalling text recoloring
|
|
|
|
config LVGL_TEXT_USE_BIDI
|
|
bool "Enable bidirectional text support"
|
|
help
|
|
Enable bidirectional text support
|
|
|
|
The direction of the text will be processed according to the
|
|
Unicode Bidirectional Algorithm:
|
|
https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
|
|
|
|
choice LVGL_TEXT_BIDI_MODE
|
|
prompt "Bidirectional text processing direction"
|
|
default LVGL_TEXT_BIDI_DIR_AUTO
|
|
depends on LVGL_TEXT_USE_BIDI
|
|
help
|
|
Direction of bidirectional text processing
|
|
|
|
config LVGL_TEXT_BIDI_DIR_AUTO
|
|
bool "Automatically detect direction"
|
|
|
|
config LVGL_TEXT_BIDI_DIR_LTR
|
|
bool "Left-to-right"
|
|
|
|
config LVGL_TEXT_BIDI_DIR_RTL
|
|
bool "Right-to-left"
|
|
|
|
endchoice
|
|
|
|
config LVGL_ANTIALIAS
|
|
bool "Enable anti-aliasing"
|
|
help
|
|
Enable anti-aliasing
|
|
|
|
config LVGL_ANIMATION
|
|
bool "Enable animations"
|
|
help
|
|
Enable animations
|
|
|
|
config LVGL_SHADOW
|
|
bool "Enable shadows"
|
|
help
|
|
Enable shadows
|
|
|
|
config LVGL_GROUP
|
|
bool "Enable group support"
|
|
help
|
|
Enable group support.
|
|
Used by keyboard and button input
|
|
|
|
config LVGL_GPU
|
|
bool "Enable GPU support"
|
|
help
|
|
Enable GPU support
|
|
|
|
config LVGL_IMG_CF_INDEXED
|
|
bool "Enable indexed image support"
|
|
default y
|
|
help
|
|
Enable support for indexed images
|
|
|
|
config LVGL_IMG_CF_ALPHA
|
|
bool "Enable alpha indexed image support"
|
|
default y
|
|
help
|
|
Enable support for alpha indexed images
|
|
|
|
config LVGL_IMG_INDEXED_CHROMA
|
|
bool "Enable chroma keying for indexed images"
|
|
help
|
|
Enable chroma keying for indexed images
|
|
|
|
config LVGL_FILESYSTEM
|
|
bool "Enable file system"
|
|
depends on FILE_SYSTEM
|
|
default y if FILE_SYSTEM
|
|
help
|
|
Enable LittlevGL file system
|
|
|
|
config LVGL_IMG_CACHE_DEF_SIZE
|
|
int "Default image cache size"
|
|
default 1
|
|
help
|
|
Default image cache size, image caching keeps the images open.
|
|
If only the built-in image formats are used there is no real
|
|
advantage of caching. With complex image decoders (e.g. PNG or JPG)
|
|
caching can save the continuous decoding of images. However the
|
|
opened images might consume additional RAM.
|
|
|
|
config LVGL_USE_DEBUG
|
|
bool "Enable debug support"
|
|
default y if TEST
|
|
help
|
|
Enable debug support.
|
|
|
|
If debug support is enabled LVGL will validate the parameters of
|
|
any function call made and if an invalid parameter is found __ASSERT
|
|
is called.
|
|
|
|
if LVGL_USE_DEBUG
|
|
|
|
config LVGL_USE_ASSERT_NULL
|
|
bool "Enable null pointer assertion"
|
|
default y if TEST
|
|
help
|
|
Enable null pointer assertion
|
|
|
|
Check if a null pointer is passed as a parameter (Quite fast)
|
|
|
|
config LVGL_USE_ASSERT_MEM
|
|
bool "Enable memory allocation assertion"
|
|
default y if TEST
|
|
help
|
|
Enable memory allocation assertion
|
|
|
|
Check if memory allocation is successful (Quite fast)
|
|
|
|
config LVGL_USE_ASSERT_STR
|
|
bool "Enable string assertion"
|
|
default y if TEST
|
|
help
|
|
Enable string assertion
|
|
|
|
Check if the string is not a NULL pointer, unusually long string,
|
|
contains invalid characters or contains unusual repetitions. (Slow)
|
|
|
|
If this option is disabled and NULL pointer checking is enabled, the
|
|
NULL pointer check is executed instead.
|
|
|
|
config LVGL_USE_ASSERT_OBJ
|
|
bool "Enable object assertion"
|
|
default y if TEST
|
|
help
|
|
Enable object assertion
|
|
|
|
Check if an object is not a NULL pointer, has the correct type and
|
|
does exists. (Quite Slow)
|
|
|
|
If this option is disabled and NULL pointer checking is enabled, the
|
|
NULL pointer check is executed instead.
|
|
|
|
config LVGL_USE_ASSERT_STYLE
|
|
bool "Enable style assertion"
|
|
default y if TEST
|
|
help
|
|
Enable style assertion
|
|
|
|
Check if a used style is correctly initialized. (Fast)
|
|
|
|
endif
|
|
|
|
rsource "Kconfig.themes"
|
|
rsource "Kconfig.fonts"
|
|
rsource "Kconfig.objects"
|
|
|
|
config APP_LINK_WITH_LVGL
|
|
bool "Link 'app' with LVGL"
|
|
default y
|
|
help
|
|
Add LVGL header files to the 'app' include path. It may be
|
|
disabled if the include paths for LVGL are causing aliasing
|
|
issues for 'app'.
|
|
|
|
endif # LVGL
|