You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2020/04/15 14:38:33 UTC
[incubator-nuttx-apps] 01/15: graphics/littlevgl: Migrate part of
Kconfig/lv_conf.h to LittleVGL V6.1.2, such as basic setting and font, etc.
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git
commit abdc745412130d6e2f16470718571ce6919662e3
Author: Qi Huang <hu...@xiaomi.com>
AuthorDate: Fri Apr 3 11:21:31 2020 +0000
graphics/littlevgl: Migrate part of Kconfig/lv_conf.h to LittleVGL V6.1.2, such as basic setting and font, etc.
Signed-off-by: Qi Huang <hu...@xiaomi.com>
Change-Id: Ib3dc31d95acf646dd26d41be873082ea107c6616
---
graphics/littlevgl/Kconfig | 251 ++--------
graphics/littlevgl/lv_conf.h | 1068 ++++++++++++++++++++++--------------------
2 files changed, 599 insertions(+), 720 deletions(-)
diff --git a/graphics/littlevgl/Kconfig b/graphics/littlevgl/Kconfig
index 58efef8..d8387d6 100644
--- a/graphics/littlevgl/Kconfig
+++ b/graphics/littlevgl/Kconfig
@@ -82,8 +82,8 @@ config LV_ANTIALIAS
endif # LV_VDB_SIZE != 0
-config LV_REFR_PERIOD
- int "Refresh period in milliseconds"
+config LV_DISP_DEF_REFR_PERIOD
+ int "Default refresh period in milliseconds"
default 50
---help---
The graphics library will check for invalid areas an refresh
@@ -100,28 +100,28 @@ endmenu
menu "Input device settings"
-config LV_INDEV_READ_PERIOD
- int "Input device read period in milliseconds"
+config LV_INDEV_DEF_READ_PERIOD
+ int "Input device default read period in milliseconds"
default 50
config LV_INDEV_POINT_MARKER
int "Mark the pressed points on the screen"
default 0
-config LV_INDEV_DRAG_LIMIT
- int "Drag limit in pixels"
+config LV_INDEV_DEF_DRAG_LIMIT
+ int "Default drag limit in pixels"
default 10
-config LV_INDEV_DRAG_THROW
- int "Slow down ration when throwing on object by drag [%]"
+config LV_INDEV_DEF_DRAG_THROW
+ int "Default slow down ration when throwing on object by drag [%]"
default 20
-config LV_INDEV_LONG_PRESS_TIME
- int "Long press time [ms]"
+config LV_INDEV_DEF_LONG_PRESS_TIME
+ int "Default long press time [ms]"
default 400
-config LV_INDEV_LONG_PRESS_REP_TIME
- int "Repeated trigger period in long press [ms]"
+config LV_INDEV_DEF_LONG_PRESS_REP_TIME
+ int "Default repeated trigger period in long press [ms]"
default 100
endmenu
@@ -264,207 +264,49 @@ endmenu
menu "Font usage"
-# 10 PX FONTS
-
-config USE_LV_FONT_DEJAVU_10
- int "Dejavu 10 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_10_LATIN_SUP
- int "Dejavu 10 px - latin supplement"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_10_CYRILLIC
- int "Dejavu 10 px - cyrillic"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_SYMBOL_10
- int "Symbol 10 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-#20 PX FONTS
-
-config USE_LV_FONT_DEJAVU_20
- int "Dejavu 20 px"
- default 4
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_20_LATIN_SUP
- int "Dejavu 20 px - latin supplement"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_20_CYRILLIC
- int "Dejavu 20 px - cyrillic"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_SYMBOL_20
- int "Symbol 20 px"
- default 4
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
+config USE_LV_FONT_ROBOTO_12
+ bool "Roboto 12 px"
+ default n
-#30 PX FONTS
+config USE_LV_FONT_ROBOTO_16
+ bool "Roboto 16 px"
+ default y
-config USE_LV_FONT_DEJAVU_30
- int "Dejavu 30 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_30_LATIN_SUP
- int "Dejavu 30 px - latin supplement"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_30_CYRILLIC
- int "Dejavu 30 px - cyrillic"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_SYMBOL_30
- int "Symbol 30 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
+config USE_LV_FONT_ROBOTO_22
+ bool "Roboto 22 px"
+ default n
-#40 PX FONTS
+config USE_LV_FONT_ROBOTO_28
+ bool "Roboto 28 px"
+ default n
-config USE_LV_FONT_DEJAVU_40
- int "Dejavu 40 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_40_LATIN_SUP
- int "Dejavu 40 px - latin supplement"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_DEJAVU_40_CYRILLIC
- int "Dejavu 40 px - cyrillic"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_SYMBOL_40
- int "Symbol 40 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
-
-config USE_LV_FONT_MONOSPACE_8
- int "Monospace 8 px"
- default 0
- ---help---
- 0: disable
- 1: 1 bit-per-pixel
- 2: 2 bit-per-pixel
- 4: 4 bit-per-pixel
- 8: 8 bit-per-pixel
+config USE_LV_FONT_UNSCII_8
+ bool "Monospace 8 px"
+ default n
choice
prompt "Default Font"
- default LV_FONT_DEFAULT_DEJAVU_20
+ default LV_FONT_DEFAULT_ROBOTO_16
-config LV_FONT_DEFAULT_DEJAVU_10
- bool "Dejavu 10 px"
- depends on USE_LV_FONT_DEJAVU_10 != 0
+config LV_FONT_DEFAULT_ROBOTO_12
+ bool "Roboto 12 px"
+ depends on USE_LV_FONT_ROBOTO_12 != 0
-config LV_FONT_DEFAULT_DEJAVU_20
- bool "Dejavu 20 px"
- depends on USE_LV_FONT_DEJAVU_20 != 0
+config LV_FONT_DEFAULT_ROBOTO_16
+ bool "Roboto 16 px"
+ depends on USE_LV_FONT_ROBOTO_16 != 0
-config LV_FONT_DEFAULT_DEJAVU_30
- bool "Dejavu 30 px"
- depends on USE_LV_FONT_DEJAVU_30 != 0
+config LV_FONT_DEFAULT_ROBOTO_22
+ bool "Roboto 22 px"
+ depends on USE_LV_FONT_ROBOTO_22 != 0
-config LV_FONT_DEFAULT_DEJAVU_40
- bool "Dejavu 40 px"
- depends on USE_LV_FONT_DEJAVU_40 != 0
+config LV_FONT_DEFAULT_ROBOTO_28
+ bool "Roboto 28 px"
+ depends on USE_LV_FONT_ROBOTO_28 != 0
-config LV_FONT_DEFAULT_MONOSPACE_8
+config LV_FONT_DEFAULT_UNSCII_8
bool "Monospace 8 px"
- depends on USE_LV_FONT_MONOSPACE_8 != 0
+ depends on USE_LV_FONT_UNSCII_8 != 0
endchoice
@@ -472,10 +314,6 @@ endmenu
menu "Base object settings"
-config LV_OBJ_FREE_PTR
- bool "Free pointer enable/disable"
- default y
-
config LV_OBJ_REALIGN
bool "Enable `lv_obj_realaign()` based on `lv_obj_align()` parameters"
default y
@@ -567,6 +405,11 @@ config USE_LV_CHART
bool "Chart usage"
default y
+config LV_CHART_AXIS_TICK_LABEL_MAX_LEN
+ depends on USE_LV_CHART
+ int "Chart axis tick label max length"
+ default 20
+
config USE_LV_TABLE
bool "Table usage"
depends on USE_LV_LABEL
diff --git a/graphics/littlevgl/lv_conf.h b/graphics/littlevgl/lv_conf.h
index a929e7f..911b456 100644
--- a/graphics/littlevgl/lv_conf.h
+++ b/graphics/littlevgl/lv_conf.h
@@ -33,749 +33,785 @@
*
****************************************************************************/
-#ifndef __APPS_GRAPHICS_LITTLEVGL_LV_CONF_H
-#define __APPS_GRAPHICS_LITTLEVGL_LV_CONF_H
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/* Compiler settings */
-
-#define LV_COMPILER_VLA_SUPPORTED 1
-
-/* Dynamic memory */
-
-#define LV_MEM_CUSTOM 0
-#define LV_MEM_SIZE CONFIG_LV_MEM_SIZE
-#define LV_MEM_ADR 0
-#define LV_MEM_AUTO_DEFRAG 1 /* Automatically defrag on free */
-#define LV_MEM_ATTR
-
-#define LV_ENABLE_GC 0
+/*
+ * COPY THIS FILE AS `lv_conf.h` NEXT TO the `lvgl` FOLDER
+ */
-/* Graphical settings */
+#ifndef LV_CONF_H
+#define LV_CONF_H
+/* clang-format off */
-#define LV_DEMO_SLIDE_SHOW 0
+#include <nuttx/config.h>
-/* Horizontal and vertical resolution of the library.*/
+#include <stdint.h>
-#define LV_HOR_RES CONFIG_LV_HOR_RES
-#define LV_VER_RES CONFIG_LV_VER_RES
-#define LV_DPI CONFIG_LV_DPI
+/* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */
+typedef int16_t lv_coord_t;
-/* Buffered rendering:
- *
- * No antialasing >= LV_HOR_RES
- * Anti aliasing >= 4 * LV_HOR_RES
- *
- * Place VDB to a specific address (e.g. in external RAM) (0: allocate into
- * RAM)
- */
+/*====================
+ Graphical settings
+ *====================*/
-#define LV_VDB_SIZE CONFIG_LV_VDB_SIZE
-#define LV_VDB_ADR CONFIG_LV_VDB_ADR
+/* Maximal horizontal and vertical resolution to support by the library.*/
+#define LV_HOR_RES_MAX CONFIG_LV_HOR_RES
+#define LV_VER_RES_MAX CONFIG_LV_VER_RES
-/* Use two Virtual Display buffers (VDB) parallelize rendering and flushing
- * The flushing should use DMA to write the frame buffer in the background,
+/* Color depth:
+ * - 1: 1 byte per pixel
+ * - 8: RGB233
+ * - 16: RGB565
+ * - 32: ARGB8888
*/
+#define LV_COLOR_DEPTH CONFIG_LV_COLOR_DEPTH
-#ifdef CONFIG_LV_VDB_DOUBLE
-# define LV_VDB_DOUBLE CONFIG_LV_VDB_DOUBLE
+/* Swap the 2 bytes of RGB565 color.
+ * Useful if the display has a 8 bit interface (e.g. SPI)*/
+#ifdef CONFIG_LV_COLOR_16_SWAP
+#define LV_COLOR_16_SWAP CONFIG_LV_COLOR_16_SWAP
#else
-# define LV_VDB_DOUBLE 0
+#define LV_COLOR_16_SWAP 0
#endif
-/* LV_VDB2_ADR - Place VDB2 to a specific address (e.g. in external RAM)
- * (0: allocate into RAM)
- */
-
-#define LV_VDB2_ADR CONFIG_LV_VDB2_ADR
-
-#ifdef CONFIG_LV_VDB_TRUE_DOUBLE_BUFFERED
-# define LV_VDB_TRUE_DOUBLE_BUFFERED CONFIG_LV_VDB_TRUE_DOUBLE_BUFFERED
+/* 1: Enable screen transparency.
+ * Useful for OSD or other overlapping GUIs.
+ * Requires `LV_COLOR_DEPTH = 32` colors and the screen's style should be modified: `style.body.opa = ...`*/
+#ifdef CONFIG_LV_COLOR_SCREEN_TRANSP
+#define LV_COLOR_SCREEN_TRANSP CONFIG_LV_COLOR_SCREEN_TRANSP
#else
-# define LV_VDB_TRUE_DOUBLE_BUFFERED 0
+#define LV_COLOR_SCREEN_TRANSP 0
#endif
+/*Images pixels with this color will not be drawn (with chroma keying)*/
+#define LV_COLOR_TRANSP ((lv_color_t){.full = (CONFIG_LV_COLOR_TRANSP)}) /*LV_COLOR_LIME: pure green*/
-/* Enable anti aliasing
- */
+/* Enable chroma keying for indexed images. */
+#define LV_INDEXED_CHROMA 1
+/* Enable anti-aliasing (lines, and radiuses will be smoothed) */
#ifdef CONFIG_LV_ANTIALIAS
-# define LV_ANTIALIAS CONFIG_LV_ANTIALIAS
+#define LV_ANTIALIAS CONFIG_LV_ANTIALIAS
#else
-# define LV_ANTIALIAS 0
+#define LV_ANTIALIAS 0
#endif
-/* Screen refresh settings
- *
- * LV_REFR_PERIOD - Screen refresh period in milliseconds
- * LV_INV_FIFO_SIZE - The average count of objects on a screen
- */
+/* Default display refresh period.
+ * Can be changed in the display driver (`lv_disp_drv_t`).*/
+#define LV_DISP_DEF_REFR_PERIOD CONFIG_LV_DISP_DEF_REFR_PERIOD /*[ms]*/
-#define LV_REFR_PERIOD CONFIG_LV_REFR_PERIOD
-#define LV_INV_FIFO_SIZE CONFIG_LV_INV_FIFO_SIZE
+/* Dot Per Inch: used to initialize default sizes.
+ * E.g. a button with width = LV_DPI / 2 -> half inch wide
+ * (Not so important, you can adjust it to modify default sizes and spaces)*/
+#define LV_DPI CONFIG_LV_DPI /*[px]*/
-/* Misc. settings */
-/* Input device settings
- *
- * LV_INDEV_READ_PERIOD - Input device read period in milliseconds
- * LV_INDEV_POINT_MARKER - Mark the pressed points
- * LV_INDEV_DRAG_LIMIT - Drag threshold in pixels
- * LV_INDEV_DRAG_THROW - Drag throw slow-down in [%]. Greater value
- * means faster slow-down
- * LV_INDEV_LONG_PRESS_TIME - Long press time in milliseconds
- * LV_INDEV_LONG_PRESS_REP_TIME - Repeated trigger period in long press [ms]
- */
+/*=========================
+ Memory manager settings
+ *=========================*/
-#define LV_INDEV_READ_PERIOD CONFIG_LV_INDEV_READ_PERIOD
+/* LittelvGL's internal memory manager's settings.
+ * The graphical objects and other related data are stored here. */
-#ifdef CONFIG_LV_INDEV_POINT_MARKER
-# define LV_INDEV_POINT_MARKER CONFIG_LV_INDEV_POINT_MARKER
-#else
-# define LV_INDEV_POINT_MARKER 0
-#endif
+/* 1: use custom malloc/free, 0: use the built-in `lv_mem_alloc` and `lv_mem_free` */
+#define LV_MEM_CUSTOM 0
+#if LV_MEM_CUSTOM == 0
+/* Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
+# define LV_MEM_SIZE (32U * 1024U)
-#define LV_INDEV_DRAG_LIMIT CONFIG_LV_INDEV_DRAG_LIMIT
-#define LV_INDEV_DRAG_THROW CONFIG_LV_INDEV_DRAG_THROW
-#define LV_INDEV_LONG_PRESS_TIME CONFIG_LV_INDEV_LONG_PRESS_TIME
-#define LV_INDEV_LONG_PRESS_REP_TIME CONFIG_LV_INDEV_LONG_PRESS_REP_TIME
+/* Complier prefix for a big array declaration */
+# define LV_MEM_ATTR
-/* Color settings
- *
- * LV_COLOR_TRANSP - Images pixels with this color will not be drawn (chroma
- * keying)
- */
+/* Set an address for the memory pool instead of allocating it as an array.
+ * Can be in external SRAM too. */
+# define LV_MEM_ADR 0
-#define LV_COLOR_DEPTH CONFIG_LV_COLOR_DEPTH
+/* Automatically defrag. on free. Defrag. means joining the adjacent free cells. */
+# define LV_MEM_AUTO_DEFRAG 1
+#else /*LV_MEM_CUSTOM*/
+# define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
+# define LV_MEM_CUSTOM_ALLOC malloc /*Wrapper to malloc*/
+# define LV_MEM_CUSTOM_FREE free /*Wrapper to free*/
+#endif /*LV_MEM_CUSTOM*/
-#ifdef CONFIG_LV_COLOR_16_SWAP
-# define LV_COLOR_16_SWAP CONFIG_LV_COLOR_16_SWAP
-#else
-# define LV_COLOR_16_SWAP 0
-#endif
+/* Garbage Collector settings
+ * Used if lvgl is binded to higher level language and the memory is managed by that language */
+#define LV_ENABLE_GC 0
+#if LV_ENABLE_GC != 0
+# define LV_GC_INCLUDE "gc.h" /*Include Garbage Collector related things*/
+# define LV_MEM_CUSTOM_REALLOC your_realloc /*Wrapper to realloc*/
+# define LV_MEM_CUSTOM_GET_SIZE your_mem_get_size /*Wrapper to lv_mem_get_size*/
+#endif /* LV_ENABLE_GC */
-#ifdef CONFIG_LV_COLOR_SCREEN_TRANSP
-# define LV_COLOR_SCREEN_TRANSP CONFIG_LV_COLOR_SCREEN_TRANSP
-#else
-# define LV_COLOR_SCREEN_TRANSP 0
-#endif
+/*=======================
+ Input device settings
+ *=======================*/
-#define LV_COLOR_TRANSP LV_COLOR_HEX(CONFIG_LV_COLOR_TRANSP)
+/* Input device default settings.
+ * Can be changed in the Input device driver (`lv_indev_drv_t`)*/
-/* Text settings
- *
- * LV_TXT_BREAK_CHARS - Can break texts on these chars
- */
+/* Input device read period in milliseconds */
+#define LV_INDEV_DEF_READ_PERIOD CONFIG_LV_INDEV_DEF_READ_PERIOD
-#ifdef CONFIG_LV_TXT_UTF8
-# define LV_TXT_UTF8 CONFIG_LV_TXT_UTF8
-#else
-# define LV_TXT_UTF8 0
-#endif
+/* Drag threshold in pixels */
+#define LV_INDEV_DEF_DRAG_LIMIT CONFIG_LV_INDEV_DEF_DRAG_LIMIT
+
+/* Drag throw slow-down in [%]. Greater value -> faster slow-down */
+#define LV_INDEV_DEF_DRAG_THROW CONFIG_LV_INDEV_DEF_DRAG_THROW
+
+/* Long press time in milliseconds.
+ * Time to send `LV_EVENT_LONG_PRESSSED`) */
+#define LV_INDEV_DEF_LONG_PRESS_TIME CONFIG_LV_INDEV_DEF_LONG_PRESS_TIME
-#define LV_TXT_BREAK_CHARS CONFIG_LV_TXT_BREAK_CHARS
+/* Repeated trigger period in long press [ms]
+ * Time between `LV_EVENT_LONG_PRESSED_REPEAT */
+#define LV_INDEV_DEF_LONG_PRESS_REP_TIME CONFIG_LV_INDEV_DEF_LONG_PRESS_REP_TIME
-/* Graphics feature usage */
+/*==================
+ * Feature usage
+ *==================*/
+/*1: Enable the Animations */
#ifdef CONFIG_USE_LV_ANIMATION
-# define USE_LV_ANIMATION CONFIG_USE_LV_ANIMATION
+#define LV_USE_ANIMATION CONFIG_USE_LV_ANIMATION
#else
-# define USE_LV_ANIMATION 0
+#define LV_USE_ANIMATION 0
#endif
+#if LV_USE_ANIMATION
+
+/*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/
+typedef void * lv_anim_user_data_t;
+
+#endif
+
+/* 1: Enable shadow drawing*/
#ifdef CONFIG_USE_LV_SHADOW
-# define USE_LV_SHADOW CONFIG_USE_LV_SHADOW
+#define LV_USE_SHADOW CONFIG_USE_LV_SHADOW
#else
-# define USE_LV_SHADOW 0
+#define LV_USE_SHADOW 0
#endif
+/* 1: Enable object groups (for keyboard/encoder navigation) */
#ifdef CONFIG_USE_LV_GROUP
- #define USE_LV_GROUP CONFIG_USE_LV_GROUP
+#define LV_USE_GROUP CONFIG_USE_LV_GROUP
#else
-# define USE_LV_GROUP 0
+#define LV_USE_GROUP 0
#endif
+#if LV_USE_GROUP
+typedef void * lv_group_user_data_t;
+#endif /*LV_USE_GROUP*/
+/* 1: Enable GPU interface*/
#ifdef CONFIG_USE_LV_GPU
-# define USE_LV_GPU CONFIG_USE_LV_GPU
+#define LV_USE_GPU CONFIG_USE_LV_GPU
#else
-# define USE_LV_GPU 0
-#endif
-
-#ifdef CONFIG_USE_LV_REAL_DRAW
-# define USE_LV_REAL_DRAW CONFIG_USE_LV_REAL_DRAW
-#else
-# define USE_LV_REAL_DRAW 0
+#define LV_USE_GPU 0
#endif
+/* 1: Enable file system (might be required for images */
#ifdef CONFIG_USE_LV_FILESYSTEM
-# define USE_LV_FILESYSTEM CONFIG_USE_LV_FILESYSTEM
+#define LV_USE_FILESYSTEM CONFIG_USE_LV_FILESYSTEM
#else
-# define USE_LV_FILESYSTEM 0
+#define LV_USE_FILESYSTEM 0
#endif
-/* Number of languages for labels to store (0: to disable this feature) */
-
-#ifdef CONFIG_USE_LV_MULTI_LANG
-# define USE_LV_MULTI_LANG CONFIG_USE_LV_MULTI_LANG
-#else
-# define USE_LV_MULTI_LANG 0
+#if LV_USE_FILESYSTEM
+/*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/
+typedef void * lv_fs_drv_user_data_t;
#endif
-/* 1: use a custom tick source (removing the need to manually update the
- * tick with `lv_tick_inc`)
- */
-
-#define LV_TICK_CUSTOM 0
+/*1: Add a `user_data` to drivers and objects*/
+#define LV_USE_USER_DATA 0
-/* LOG USAGE*/
+/*========================
+ * Image decoder and cache
+ *========================*/
-#ifdef CONFIG_USE_LV_LOG
-# define USE_LV_LOG CONFIG_USE_LV_LOG
-# if defined(CONFIG_LV_LOG_LEVEL_TRACE)
-# define LV_LOG_LEVEL LV_LOG_LEVEL_TRACE
-# elif defined(CONFIG_LV_LOG_LEVEL_INFO)
-# define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
-# elif defined(CONFIG_LV_LOG_LEVEL_WARN)
-# define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
-# elif defined(CONFIG_LV_LOG_LEVEL_ERROR)
-# define LV_LOG_LEVEL LV_LOG_LEVEL_ERROR
-# else
-# error "Unknown log level selected"
-# endif
-# define LV_LOG_PRINTF 1 /* TODO: find a NuttX way to do logging */
-#else
-# define USE_LV_LOG 0
-# define LV_LOG_LEVEL 0
-# define LV_LOG_PRINTF 0
-#endif
-
-/* THEME USAGE */
-/* Just for test */
-#ifdef CONFIG_LV_THEME_LIVE_UPDATE
-# define LV_THEME_LIVE_UPDATE CONFIG_LV_THEME_LIVE_UPDATE
+/* 1: Enable indexed (palette) images */
+#ifdef CONFIG_LV_IMG_CF_INDEXED
+#define LV_IMG_CF_INDEXED CONFIG_LV_IMG_CF_INDEXED
#else
-# define LV_THEME_LIVE_UPDATE 0
+#define LV_IMG_CF_INDEXED 0
#endif
-#ifdef CONFIG_USE_LV_THEME_TEMPL
-# define USE_LV_THEME_TEMPL CONFIG_USE_LV_THEME_TEMPL
+/* 1: Enable alpha indexed images */
+#ifdef CONFIG_LV_IMG_CF_ALPHA
+#define LV_IMG_CF_ALPHA CONFIG_LV_IMG_CF_ALPHA
#else
-# define USE_LV_THEME_TEMPL 0
+#define LV_IMG_CF_ALPHA 0
#endif
-/* Built mainly from the built-in styles. Consumes very few RAM */
+/* Default image cache size. Image caching keeps the images opened.
+ * If only the built-in image formats are used there is no real advantage of caching.
+ * (I.e. no new image decoder is added)
+ * With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
+ * However the opened images might consume additional RAM.
+ * LV_IMG_CACHE_DEF_SIZE must be >= 1 */
+#define LV_IMG_CACHE_DEF_SIZE 1
-#ifdef CONFIG_USE_LV_THEME_DEFAULT
-# define USE_LV_THEME_DEFAULT CONFIG_USE_LV_THEME_DEFAULT
-#else
-# define USE_LV_THEME_DEFAULT 0
-#endif
+/*Declare the type of the user data of image decoder (can be e.g. `void *`, `int`, `struct`)*/
+typedef void * lv_img_decoder_user_data_t;
-/* Dark futuristic theme */
+/*=====================
+ * Compiler settings
+ *====================*/
+/* Define a custom attribute to `lv_tick_inc` function */
+#define LV_ATTRIBUTE_TICK_INC
-#ifdef CONFIG_USE_LV_THEME_ALIEN
-# define USE_LV_THEME_ALIEN CONFIG_USE_LV_THEME_ALIEN
-#else
-# define USE_LV_THEME_ALIEN 0
-#endif
+/* Define a custom attribute to `lv_task_handler` function */
+#define LV_ATTRIBUTE_TASK_HANDLER
-/* Dark elegant theme */
+/* With size optimization (-Os) the compiler might not align data to
+ * 4 or 8 byte boundary. This alignment will be explicitly applied where needed.
+ * E.g. __attribute__((aligned(4))) */
+#define LV_ATTRIBUTE_MEM_ALIGN
-#ifdef CONFIG_USE_LV_THEME_NIGHT
-# define USE_LV_THEME_NIGHT CONFIG_USE_LV_THEME_NIGHT
-#else
-# define USE_LV_THEME_NIGHT 0
-#endif
+/* Attribute to mark large constant arrays for example
+ * font's bitmaps */
+#define LV_ATTRIBUTE_LARGE_CONST
-/* Mono color theme for monochrome displays */
+/* Export integer constant to binding.
+ * This macro is used with constants in the form of LV_<CONST> that
+ * should also appear on lvgl binding API such as Micropython
+ *
+ * The default value just prevents a GCC warning.
+ */
+#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning
-#ifdef CONFIG_USE_LV_THEME_MONO
-# define USE_LV_THEME_MONO CONFIG_USE_LV_THEME_MONO
-#else
-# define USE_LV_THEME_MONO 0
-#endif
+/*===================
+ * HAL settings
+ *==================*/
-/* Flat theme with bold colors and light shadows (Planned) */
+/* 1: use a custom tick source.
+ * It removes the need to manually update the tick with `lv_tick_inc`) */
+#define LV_TICK_CUSTOM 0
+#if LV_TICK_CUSTOM == 1
+#define LV_TICK_CUSTOM_INCLUDE "something.h" /*Header for the sys time function*/
+#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current systime in ms*/
+#endif /*LV_TICK_CUSTOM*/
-#ifdef CONFIG_USE_LV_THEME_MATERIAL
-# define USE_LV_THEME_MATERIAL CONFIG_USE_LV_THEME_MATERIAL
-#else
-# define USE_LV_THEME_MATERIAL 0
-#endif
+typedef void * lv_disp_drv_user_data_t; /*Type of user data in the display driver*/
+typedef void * lv_indev_drv_user_data_t; /*Type of user data in the input device driver*/
-/* Peaceful, mainly black and white theme (Planned) */
+/*================
+ * Log settings
+ *===============*/
-#ifdef CONFIG_USE_LV_THEME_ZEN
-# define USE_LV_THEME_ZEN CONFIG_USE_LV_THEME_ZEN
+/*1: Enable the log module*/
+#ifdef CONFIG_USE_LV_LOG
+#define LV_USE_LOG CONFIG_USE_LV_LOG
#else
-# define USE_LV_THEME_ZEN 0
+#define LV_USE_LOG 0
#endif
-/* Water-like theme based on the movie "Finding Nemo" */
-
-#ifdef CONFIG_USE_LV_THEME_NEMO
-# define USE_LV_THEME_NEMO CONFIG_USE_LV_THEME_NEMO
-#else
-# define USE_LV_THEME_NEMO 0
+#if LV_USE_LOG
+/* How important log should be added:
+ * LV_LOG_LEVEL_TRACE A lot of logs to give detailed information
+ * LV_LOG_LEVEL_INFO Log important events
+ * LV_LOG_LEVEL_WARN Log if something unwanted happened but didn't cause a problem
+ * LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail
+ * LV_LOG_LEVEL_NONE Do not log anything
+ */
+#ifdef CONFIG_LV_LOG_LEVEL_TRACE
+# define LV_LOG_LEVEL LV_LOG_LEVEL_TRACE
#endif
-/* FONT USAGE */
+#ifdef CONFIG_LV_LOG_LEVEL_INFO
+# define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
+#endif
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_10
-# define USE_LV_FONT_DEJAVU_10 CONFIG_USE_LV_FONT_DEJAVU_10
-#else
-# define USE_LV_FONT_DEJAVU_10 0
+#ifdef CONFIG_LV_LOG_LEVEL_WARN
+# define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
#endif
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_10_LATIN_SUP
-# define USE_LV_FONT_DEJAVU_10_LATIN_SUP CONFIG_USE_LV_FONT_DEJAVU_10_LATIN_SUP
-#else
-# define USE_LV_FONT_DEJAVU_10_LATIN_SUP 0
+#ifdef CONFIG_LV_LOG_LEVEL_ERROR
+# define LV_LOG_LEVEL LV_LOG_LEVEL_ERROR
#endif
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_10_CYRILLIC
-# define USE_LV_FONT_DEJAVU_10_CYRILLIC CONFIG_USE_LV_FONT_DEJAVU_10_CYRILLIC
-#else
-# define USE_LV_FONT_DEJAVU_10_CYRILLIC 0
+#ifdef CONFIG_LV_LOG_LEVEL_NONE
+# define LV_LOG_LEVEL LV_LOG_LEVEL_NONE
#endif
-#ifdef CONFIG_USE_LV_FONT_SYMBOL_10
-# define USE_LV_FONT_SYMBOL_10 CONFIG_USE_LV_FONT_SYMBOL_10
+/* 1: Print the log with 'printf';
+ * 0: user need to register a callback with `lv_log_register_print_cb`*/
+#ifdef CONFIG_LV_LOG_PRINTF
+# define LV_LOG_PRINTF CONFIG_LV_LOG_PRINTF
#else
-# define USE_LV_FONT_SYMBOL_10 0
+# define LV_LOG_PRINTF 0
#endif
+#endif /*LV_USE_LOG*/
-/* Size 20 */
+/*=================
+ * Debug settings
+ *================*/
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_20
-# define USE_LV_FONT_DEJAVU_20 CONFIG_USE_LV_FONT_DEJAVU_20
-#else
-# define USE_LV_FONT_DEJAVU_20 0
-#endif
+/* If Debug is enabled LittelvGL validates the parameters of the functions.
+ * If an invalid parameter is found an error log message is printed and
+ * the MCU halts at the error. (`LV_USE_LOG` should be enabled)
+ * If you are debugging the MCU you can pause
+ * the debugger to see exactly where the issue is.
+ *
+ * The behavior of asserts can be overwritten by redefining them here.
+ * E.g. #define LV_ASSERT_MEM(p) <my_assert_code>
+ */
+#define LV_USE_DEBUG 0
+#if LV_USE_DEBUG
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_20_LATIN_SUP
-# define USE_LV_FONT_DEJAVU_20_LATIN_SUP CONFIG_USE_LV_FONT_DEJAVU_20_LATIN_SUP
-#else
-# define USE_LV_FONT_DEJAVU_20_LATIN_SUP 0
-#endif
+/*Check if the parameter is NULL. (Quite fast) */
+#define LV_USE_ASSERT_NULL 1
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_20_CYRILLIC
-# define USE_LV_FONT_DEJAVU_20_CYRILLIC CONFIG_USE_LV_FONT_DEJAVU_20_CYRILLIC
-#else
-# define USE_LV_FONT_DEJAVU_20_CYRILLIC 0
-#endif
+/*Checks is the memory is successfully allocated or no. (Quite fast)*/
+#define LV_USE_ASSERT_MEM 1
-#ifdef CONFIG_USE_LV_FONT_SYMBOL_20
-# define USE_LV_FONT_SYMBOL_20 CONFIG_USE_LV_FONT_SYMBOL_20
-#else
-# define USE_LV_FONT_SYMBOL_20 0
-#endif
+/* Check the strings.
+ * Search for NULL, very long strings, invalid characters, and unnatural repetitions. (Slow)
+ * If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled) */
+#define LV_USE_ASSERT_STR 0
-/* Size 30 */
+/* Check NULL, the object's type and existence (e.g. not deleted). (Quite slow)
+ * If disabled `LV_USE_ASSERT_NULL` will be performed instead (if it's enabled) */
+#define LV_USE_ASSERT_OBJ 0
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_30
-# define USE_LV_FONT_DEJAVU_30 CONFIG_USE_LV_FONT_DEJAVU_30
-#else
-# define USE_LV_FONT_DEJAVU_30 0
-#endif
+/*Check if the styles are properly initialized. (Fast)*/
+#define LV_USE_ASSERT_STYLE 1
+
+#endif /*LV_USE_DEBUG*/
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_30_LATIN_SUP
-# define USE_LV_FONT_DEJAVU_30_LATIN_SUP CONFIG_USE_LV_FONT_DEJAVU_30_LATIN_SUP
+/*================
+ * THEME USAGE
+ *================*/
+#ifdef CONFIG_LV_THEME_LIVE_UPDATE
+#define LV_THEME_LIVE_UPDATE CONFIG_LV_THEME_LIVE_UPDATE
#else
-# define USE_LV_FONT_DEJAVU_30_LATIN_SUP 0
+#define LV_THEME_LIVE_UPDATE 0 /*1: Allow theme switching at run time. Uses 8..10 kB of RAM*/
#endif
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_30_CYRILLIC
-# define USE_LV_FONT_DEJAVU_30_CYRILLIC CONFIG_USE_LV_FONT_DEJAVU_30_CYRILLIC
+#ifdef CONFIG_LV_THEME_LIVE_TEMPL
+#define LV_USE_THEME_TEMPL CONFIG_LV_USE_THEME_TEMPL
#else
-# define USE_LV_FONT_DEJAVU_30_CYRILLIC 0
+#define LV_USE_THEME_TEMPL 0 /*Just for test*/
#endif
-#ifdef CONFIG_USE_LV_FONT_SYMBOL_30
-# define USE_LV_FONT_SYMBOL_30 CONFIG_USE_LV_FONT_SYMBOL_30
+#ifdef CONFIG_LV_USE_THEME_DEFAULT
+#define LV_USE_THEME_DEFAULT CONFIG_LV_USE_THEME_DEFAULT
#else
-# define USE_LV_FONT_SYMBOL_30 0
+#define LV_USE_THEME_DEFAULT 0 /*Built mainly from the built-in styles. Consumes very few RAM*/
#endif
-/*Size 40*/
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_40
-# define USE_LV_FONT_DEJAVU_40 CONFIG_USE_LV_FONT_DEJAVU_40
+#ifdef CONFIG_LV_USE_THEME_ALIEN
+#define LV_USE_THEME_ALIEN CONFIG_LV_USE_THEME_ALIEN
#else
-# define USE_LV_FONT_DEJAVU_40 0
+#define LV_USE_THEME_ALIEN 0 /*Dark futuristic theme*/
#endif
-#ifdef CONFIG_USE_LV_FONT_SYMBOL_40
-# define USE_LV_FONT_SYMBOL_40 CONFIG_USE_LV_FONT_SYMBOL_40
+#ifdef CONFIG_LV_USE_THEME_NIGHT
+#define LV_USE_THEME_NIGHT CONFIG_LV_USE_THEME_NIGHT
#else
-# define USE_LV_FONT_SYMBOL_40 0
+#define LV_USE_THEME_NIGHT 0 /*Dark elegant theme*/
#endif
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_40_LATIN_SUP
-# define USE_LV_FONT_DEJAVU_40_LATIN_SUP CONFIG_USE_LV_FONT_DEJAVU_40_LATIN_SUP
+#ifdef CONFIG_LV_USE_THEME_MONO
+#define LV_USE_THEME_MONO CONFIG_LV_USE_THEME_MONO
#else
-# define USE_LV_FONT_DEJAVU_40_LATIN_SUP 0
+#define LV_USE_THEME_MONO 0 /*Mono color theme for monochrome displays*/
#endif
-#ifdef CONFIG_USE_LV_FONT_DEJAVU_40_CYRILLIC
-# define USE_LV_FONT_DEJAVU_40_CYRILLIC CONFIG_USE_LV_FONT_DEJAVU_40_CYRILLIC
+#ifdef CONFIG_LV_USE_THEME_MATERIAL
+#define LV_USE_THEME_MATERIAL CONFIG_LV_USE_THEME_MATERIAL
#else
-# define USE_LV_FONT_DEJAVU_40_CYRILLIC 0
+#define LV_USE_THEME_MATERIAL 0 /*Flat theme with bold colors and light shadows*/
#endif
-#ifdef CONFIG_USE_LV_FONT_MONOSPACE_8
-# define USE_LV_FONT_MONOSPACE_8 CONFIG_USE_LV_FONT_MONOSPACE_8
+#ifdef CONFIG_LV_USE_THEME_ZEN
+#define LV_USE_THEME_ZEN CONFIG_LV_USE_THEME_ZEN
#else
-# define USE_LV_FONT_MONOSPACE_8 0
+#define LV_USE_THEME_ZEN 0 /*Peaceful, mainly light theme */
#endif
-#if defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_10)
-# define LV_FONT_DEFAULT &lv_font_dejavu_10
-#elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_20)
-# define LV_FONT_DEFAULT &lv_font_dejavu_20
-#elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_30)
-# define LV_FONT_DEFAULT &lv_font_dejavu_30
-#elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_40)
-# define LV_FONT_DEFAULT &lv_font_dejavu_40
-#elif defined(CONFIG_LV_FONT_DEFAULT_MONOSPACE_8)
-# define LV_FONT_DEFAULT &lv_font_monospace_8
+#ifdef CONFIG_LV_USE_THEME_NEMO
+#define LV_USE_THEME_NEMO CONFIG_LV_USE_THEME_NEMO
#else
-# error "At least one font must be defined and selected as the default font"
+#define LV_USE_THEME_NEMO 0 /*Water-like theme based on the movie "Finding Nemo"*/
#endif
-/* LV_OBJ SETTINGS
- *
- * LV_OBJ_FREE_NUM_TYPE - Type of free number attribute (comment out disable free number)
- * LV_OBJ_FREE_PTR - Enable the free pointer attribute
- */
+/*==================
+ * FONT USAGE
+ *===================*/
-#define LV_OBJ_FREE_NUM_TYPE uint32_t
+/* The built-in fonts contains the ASCII range and some Symbols with 4 bit-per-pixel.
+ * The symbols are available via `LV_SYMBOL_...` defines
+ * More info about fonts: https://docs.littlevgl.com/#Fonts
+ * To create a new font go to: https://littlevgl.com/ttf-font-to-c-array
+ */
-#ifdef CONFIG_LV_OBJ_FREE_PTR
-# define LV_OBJ_FREE_PTR CONFIG_LV_OBJ_FREE_PTR
+/* Robot fonts with bpp = 4
+ * https://fonts.google.com/specimen/Roboto */
+#ifdef CONFIG_USE_LV_FONT_ROBOTO_12
+#define LV_FONT_ROBOTO_12 CONFIG_USE_LV_FONT_ROBOTO_12
#else
-# define LV_OBJ_FREE_PTR 0
+#define LV_FONT_ROBOTO_12 0
#endif
-#ifdef CONFIG_LV_OBJ_REALIGN
-# define LV_OBJ_REALIGN CONFIG_LV_OBJ_REALIGN
+#ifdef CONFIG_USE_LV_FONT_ROBOTO_16
+#define LV_FONT_ROBOTO_16 CONFIG_USE_LV_FONT_ROBOTO_16
#else
-# define LV_OBJ_REALIGN 0
+#define LV_FONT_ROBOTO_16 0
#endif
-/* LV OBJ X USAGE */
-/* Simple object */
-
-/* Label (dependencies: - */
-
-#ifdef CONFIG_USE_LV_LABEL
-# define USE_LV_LABEL CONFIG_USE_LV_LABEL
-# ifdef CONFIG_LV_LABEL_SCROLL_SPEED
-# define LV_LABEL_SCROLL_SPEED CONFIG_LV_LABEL_SCROLL_SPEED
-# else
-# define LV_LABEL_SCROLL_SPEED 25
-# endif
+#ifdef CONFIG_USE_LV_FONT_ROBOTO_22
+#define LV_FONT_ROBOTO_22 CONFIG_USE_LV_FONT_ROBOTO_22
#else
-# define USE_LV_LABEL 0
+#define LV_FONT_ROBOTO_22 0
#endif
-/* Image (dependencies: lv_label (if symbols are enabled) from misc: FSINT,
- * UFS)
- */
-
-#ifdef CONFIG_USE_LV_IMG
-# define USE_LV_IMG CONFIG_USE_LV_IMG
+#ifdef CONFIG_USE_LV_FONT_ROBOTO_28
+#define LV_FONT_ROBOTO_28 CONFIG_USE_LV_FONT_ROBOTO_28
#else
-# define USE_LV_IMG 0
+#define LV_FONT_ROBOTO_28 0
#endif
-#ifdef CONFIG_LV_IMG_CF_INDEXED
-# define LV_IMG_CF_INDEXED CONFIG_LV_IMG_CF_INDEXED
-#else
-# define LV_IMG_CF_INDEXED 0
-#endif
+/* Demonstrate special features */
+#define LV_FONT_ROBOTO_12_SUBPX 1
+#define LV_FONT_ROBOTO_28_COMPRESSED 1 /*bpp = 3*/
-#ifdef CONFIG_LV_IMG_CF_ALPHA
-# define LV_IMG_CF_ALPHA CONFIG_LV_IMG_CF_ALPHA
+/*Pixel perfect monospace font
+ * http://pelulamu.net/unscii/ */
+#ifdef CONFIG_USE_LV_FONT_UNSCII_8
+#define LV_FONT_UNSCII_8 CONFIG_USE_LV_FONT_UNSCII_8
#else
-# define LV_IMG_CF_ALPHA 0
+#define LV_FONT_UNSCII_8 0
#endif
-/* Line (dependencies: - */
+/* Optionally declare your custom fonts here.
+ * You can use these fonts as default font too
+ * and they will be available globally. E.g.
+ * #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
+ * LV_FONT_DECLARE(my_font_2)
+ */
+#define LV_FONT_CUSTOM_DECLARE
-#ifdef CONFIG_USE_LV_LINE
-# define USE_LV_LINE CONFIG_USE_LV_LINE
-#else
-# define USE_LV_LINE 0
+/*Always set a default font from the built-in fonts*/
+#ifdef CONFIG_LV_FONT_DEFAULT_ROBOTO_12
+#define LV_FONT_DEFAULT &lv_font_roboto_12
#endif
-#ifdef CONFIG_USE_LV_ARC
-# define USE_LV_ARC CONFIG_USE_LV_ARC
-#else
-# define USE_LV_ARC 0
+#ifdef CONFIG_LV_FONT_DEFAULT_ROBOTO_16
+#define LV_FONT_DEFAULT &lv_font_roboto_16
#endif
-/* Container objects */
-/* Container (dependencies: - */
-
-#ifdef CONFIG_USE_LV_CONT
-# define USE_LV_CONT CONFIG_USE_LV_CONT
-#else
-# define USE_LV_CONT 0
+#ifdef CONFIG_LV_FONT_DEFAULT_ROBOTO_22
+#define LV_FONT_DEFAULT &lv_font_roboto_22
#endif
-/* Page (dependencies: lv_cont) */
-
-#ifdef CONFIG_USE_LV_PAGE
-# define USE_LV_PAGE CONFIG_USE_LV_PAGE
-#else
-# define USE_LV_PAGE 0
+#ifdef CONFIG_LV_FONT_DEFAULT_ROBOTO_28
+#define LV_FONT_DEFAULT &lv_font_roboto_28
#endif
-/* Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page) */
-
-#ifdef CONFIG_USE_LV_WIN
-# define USE_LV_WIN CONFIG_USE_LV_WIN
-#else
-# define USE_LV_WIN 0
+#ifdef CONFIG_LV_FONT_DEFAULT_UNSCII_8
+#define LV_FONT_DEFAULT &lv_font_unscii_8
#endif
-/* Tab (dependencies: lv_page, lv_btnm) */
+/* Enable it if you have fonts with a lot of characters.
+ * The limit depends on the font size, font face and bpp
+ * but with > 10,000 characters if you see issues probably you need to enable it.*/
+#define LV_FONT_FMT_TXT_LARGE 0
-#ifdef CONFIG_USE_LV_TABVIEW
-# define USE_LV_TABVIEW CONFIG_USE_LV_TABVIEW
-# ifdef CONFIG_LV_TABVIEW_ANIM_TIME
-# define LV_TABVIEW_ANIM_TIME CONFIG_LV_TABVIEW_ANIM_TIME
-# else
-# define LV_TABVIEW_ANIM_TIME 0
-# endif
+/* Set the pixel order of the display.
+ * Important only if "subpx fonts" are used.
+ * With "normal" font it doesn't matter.
+ */
+#define LV_FONT_SUBPX_BGR 0
+
+/*Declare the type of the user data of fonts (can be e.g. `void *`, `int`, `struct`)*/
+typedef void * lv_font_user_data_t;
+
+/*=================
+ * Text settings
+ *=================*/
+
+/* Select a character encoding for strings.
+ * Your IDE or editor should have the same character encoding
+ * - LV_TXT_ENC_UTF8
+ * - LV_TXT_ENC_ASCII
+ * */
+#define LV_TXT_ENC LV_TXT_ENC_UTF8
+
+ /*Can break (wrap) texts on these chars*/
+#define LV_TXT_BREAK_CHARS " ,.;:-_"
+
+/* If a word is at least this long, will break wherever "prettiest"
+ * To disable, set to a value <= 0 */
+#define LV_TXT_LINE_BREAK_LONG_LEN 12
+
+/* Minimum number of characters in a long word to put on a line before a break.
+ * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */
+#define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3
+
+/* Minimum number of characters in a long word to put on a line after a break.
+ * Depends on LV_TXT_LINE_BREAK_LONG_LEN. */
+#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
+
+/* The control character to use for signalling text recoloring. */
+#define LV_TXT_COLOR_CMD "#"
+
+/* Support bidirectional texts.
+ * Allows mixing Left-to-Right and Right-to-Left texts.
+ * The direction will be processed according to the Unicode Bidirectioanl Algorithm:
+ * https://www.w3.org/International/articles/inline-bidi-markup/uba-basics*/
+#define LV_USE_BIDI 0
+#if LV_USE_BIDI
+/* Set the default direction. Supported values:
+ * `LV_BIDI_DIR_LTR` Left-to-Right
+ * `LV_BIDI_DIR_RTL` Right-to-Left
+ * `LV_BIDI_DIR_AUTO` detect texts base direction */
+#define LV_BIDI_BASE_DIR_DEF LV_BIDI_DIR_AUTO
+#endif
+
+/*Change the built in (v)snprintf functions*/
+#define LV_SPRINTF_CUSTOM 0
+#if LV_SPRINTF_CUSTOM
+# define LV_SPRINTF_INCLUDE <stdio.h>
+# define lv_snprintf snprintf
+# define lv_vsnprintf vsnprintf
+#endif /*LV_SPRINTF_CUSTOM*/
+
+/*===================
+ * LV_OBJ SETTINGS
+ *==================*/
+
+/*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
+typedef void * lv_obj_user_data_t;
+
+/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
+#ifdef CONFIG_LV_OBJ_REALIGN
+#define LV_USE_OBJ_REALIGN CONFIG_LV_OBJ_REALIGN
#else
-# define USE_LV_TABVIEW 0
-#
+#define LV_USE_OBJ_REALIGN 0
#endif
-/* Titleview (dependencies: lv_page) */
+/* Enable to make the object clickable on a larger area.
+ * LV_EXT_CLICK_AREA_OFF or 0: Disable this feature
+ * LV_EXT_CLICK_AREA_TINY: The extra area can be adjusted horizontally and vertically (0..255 px)
+ * LV_EXT_CLICK_AREA_FULL: The extra area can be adjusted in all 4 directions (-32k..+32k px)
+ */
+#define LV_USE_EXT_CLICK_AREA LV_EXT_CLICK_AREA_OFF
+
+/*==================
+ * LV OBJ X USAGE
+ *================*/
+/*
+ * Documentation of the object types: https://docs.littlevgl.com/#Object-types
+ */
-#ifdef CONFIG_USE_LV_TILEVIEW
-# define USE_LV_TILEVIEW CONFIG_USE_LV_TILEVIEW
-# ifdef CONFIG_LV_TILEVIEW_ANIM_TIME
-# define LV_TILEVIEW_ANIM_TIME CONFIG_LV_TILEVIEW_ANIM_TIME
-# else
-# define LV_TILEVIEW_ANIM_TIME 0
-# endif
+/*Arc (dependencies: -)*/
+#ifdef CONFIG_USE_LV_ARC
+#define LV_USE_ARC CONFIG_USE_LV_ARC
#else
-# define USE_LV_TILEVIEW 0
+#define LV_USE_ARC 0
#endif
-/* Data visualizer objects */
-/* Bar (dependencies: -) */
-
+/*Bar (dependencies: -)*/
#ifdef CONFIG_USE_LV_BAR
-# define USE_LV_BAR CONFIG_USE_LV_BAR
+#define LV_USE_BAR CONFIG_USE_LV_BAR
#else
-# define USE_LV_BAR 0
+#define LV_USE_BAR 0
#endif
-/* Line meter (dependencies: bar; misc: trigo) */
-
-#ifdef CONFIG_USE_LV_LMETER
-# define USE_LV_LMETER CONFIG_USE_LV_LMETER
+/*Button (dependencies: lv_cont*/
+#ifdef CONFIG_USE_LV_BTN
+#define LV_USE_BTN CONFIG_USE_LV_BTN
#else
-# define USE_LV_LMETER 0
+#define LV_USE_BTN 0
#endif
-/* Gauge (dependencies:bar, lmeter; misc: trigo) */
-
-#ifdef CONFIG_USE_LV_GAUGE
-# define USE_LV_GAUGE CONFIG_USE_LV_GAUGE
+#if LV_USE_BTN != 0
+/*Enable button-state animations - draw a circle on click (dependencies: LV_USE_ANIMATION)*/
+#ifdef CONFIG_LV_BTN_INK_EFFECT
+#define LV_BTN_INK_EFFECT CONFIG_LV_BTN_INK_EFFECT
#else
-# define USE_LV_GAUGE 0
+#define LV_BTN_INK_EFFECT 0
#endif
-/* Chart (dependencies: -) */
+#endif
-#ifdef CONFIG_USE_LV_CHART
-# define USE_LV_CHART CONFIG_USE_LV_CHART
+/*Button matrix (dependencies: -)*/
+#ifdef CONFIG_USE_LV_BTNM
+#define LV_USE_BTNM CONFIG_USE_LV_BTNM
#else
-# define USE_LV_CHART 0
+#define LV_USE_BTNM 0
#endif
-/* Table (dependencies: lv_label) */
-
-#ifdef CONFIG_USE_LV_TABLE
-# define USE_LV_TABLE CONFIG_USE_LV_TABLE
-# if defined(CONFIG_LV_TABLE_COL_MAX) && CONFIG_LV_TABLE_COL_MAX > 0
-# define LV_TABLE_COL_MAX CONFIG_LV_TABLE_COL_MAX
-# else
-# error "LV_TABLE_COL_MAX must be greater than 0"
-# endif
+/*Calendar (dependencies: -)*/
+#ifdef CONFIG_USE_LV_CALENDAR
+#define LV_USE_CALENDAR CONFIG_USE_LV_CALENDAR
#else
-# define USE_LV_TABLE 0
+#define LV_USE_CALENDAR 0
#endif
-/* LED (dependencies: -) */
-
-#ifdef CONFIG_USE_LV_LED
-# define USE_LV_LED CONFIG_USE_LV_LED
+/*Canvas (dependencies: lv_img)*/
+#ifdef CONFIG_USE_LV_CANVAS
+#define LV_USE_CANVAS CONFIG_USE_LV_CANVAS
#else
-# define USE_LV_LED 0
+#define LV_USE_CANVAS 0
#endif
-/* Message box (dependencies: lv_rect, lv_btnm, lv_label) */
-#ifdef CONFIG_USE_LV_MBOX
-# define USE_LV_MBOX CONFIG_USE_LV_MBOX
+
+/*Check box (dependencies: lv_btn, lv_label)*/
+#ifdef CONFIG_USE_LV_CB
+#define LV_USE_CB CONFIG_USE_LV_CB
#else
-# define USE_LV_MBOX 0
+#define LV_USE_CB 0
#endif
-/* Text area (dependencies: lv_label, lv_page) */
-
-#ifdef CONFIG_USE_LV_TA
-# define USE_LV_TA CONFIG_USE_LV_TA
+/*Chart (dependencies: -)*/
+#ifdef CONFIG_USE_LV_CHART
+#define LV_USE_CHART CONFIG_USE_LV_CHART
#else
-# define USE_LV_TA 0
+#define LV_USE_CHART 0
#endif
-/* Spinbox (dependencies: lv_ta) */
-
-#ifdef CONFIG_USE_LV_SPINBOX
-# define USE_LV_SPINBOX CONFIG_USE_LV_SPINBOX
-#else
-# define USE_LV_SPINBOX 0
+#if LV_USE_CHART
+# define LV_CHART_AXIS_TICK_LABEL_MAX_LEN CONFIG_LV_CHART_AXIS_TICK_LABEL_MAX_LEN
#endif
-/* Calendar (dependencies: -) */
+/*Container (dependencies: -*/
+#define LV_USE_CONT 1
-#ifdef CONFIG_USE_LV_CALENDAR
-# define USE_LV_CALENDAR CONFIG_USE_LV_CALENDAR
-#else
-# define USE_LV_CALENDAR 0
+/*Color picker (dependencies: -*/
+#define LV_USE_CPICKER 1
+
+/*Drop down list (dependencies: lv_page, lv_label, lv_symbol_def.h)*/
+#define LV_USE_DDLIST 1
+#if LV_USE_DDLIST != 0
+/*Open and close default animation time [ms] (0: no animation)*/
+# define LV_DDLIST_DEF_ANIM_TIME 200
#endif
-/* Preload (dependencies: lv_arc) */
+/*Gauge (dependencies:lv_bar, lv_lmeter)*/
+#define LV_USE_GAUGE 1
-#ifdef CONFIG_USE_LV_PRELOAD
-# define USE_LV_PRELOAD CONFIG_USE_LV_PRELOAD
-# define LV_PRELOAD_DEF_ARC_LENGTH CONFIG_LV_PRELOAD_DEF_ARC_LENGTH
-# define LV_PRELOAD_DEF_SPIN_TIME CONFIG_LV_PRELOAD_DEF_SPIN_TIME
-# ifdef CONFIG_LV_PRELOAD_DEF_ANIM_SPINNING_ARC
-# define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_SPINNING_ARC
-# elif CONFIG_LV_PRELOAD-DEF_ANIM_FILLSPIN_ARC
-# define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_FILLSPIN_ARC
-# endif
-#else
-# define USE_LV_PRELOAD 0
+/*Image (dependencies: lv_label*/
+#define LV_USE_IMG 1
+
+/*Image Button (dependencies: lv_btn*/
+#define LV_USE_IMGBTN 1
+#if LV_USE_IMGBTN
+/*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
+# define LV_IMGBTN_TILED 0
#endif
-/*Canvas (dependencies: lv_img)*/
+/*Keyboard (dependencies: lv_btnm)*/
+#define LV_USE_KB 1
-#ifdef CONFIG_USE_LV_CANVAS
-# define USE_LV_CANVAS CONFIG_USE_LV_CANVAS
-#else
-# define USE_LV_CANVAS 0
-#endif
+/*Label (dependencies: -*/
+#define LV_USE_LABEL 1
+#if LV_USE_LABEL != 0
+/*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_ROLL/ROLL_CIRC' mode*/
+# define LV_LABEL_DEF_SCROLL_SPEED 25
-/* User input objects */
+/* Waiting period at beginning/end of animation cycle */
+# define LV_LABEL_WAIT_CHAR_COUNT 3
-/* Button (dependencies: lv_cont */
+/*Enable selecting text of the label */
+# define LV_LABEL_TEXT_SEL 0
-#ifdef CONFIG_USE_LV_BTN
-# define USE_LV_BTN CONFIG_USE_LV_BTN
-#else
-# define USE_LV_BTN 0
+/*Store extra some info in labels (12 bytes) to speed up drawing of very long texts*/
+# define LV_LABEL_LONG_TXT_HINT 0
#endif
-/* Enable button-state animations - draw a circle on click (dependencies: USE_LV_ANIMATION) */
+/*LED (dependencies: -)*/
+#define LV_USE_LED 1
-#ifdef CONFIG_LV_BTN_INK_EFFECT
-# define LV_BTN_INK_EFFECT CONFIG_LV_BTN_INK_EFFECT
-#else
-# define LV_BTN_INK_EFFECT 0
+/*Line (dependencies: -*/
+#define LV_USE_LINE 1
+
+/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
+#define LV_USE_LIST 1
+#if LV_USE_LIST != 0
+/*Default animation time of focusing to a list element [ms] (0: no animation) */
+# define LV_LIST_DEF_ANIM_TIME 100
#endif
-/* Image Button (dependencies: lv_btn */
+/*Line meter (dependencies: *;)*/
+#define LV_USE_LMETER 1
-#ifdef CONFIG_USE_LV_IMGBTN
-# define USE_LV_IMGBTN CONFIG_USE_LV_IMGBTN
-# ifdef CONFIG_LV_IMGBTN_TILED
-# define LV_IMGBTN_TILED CONFIG_LV_IMGBTN_TILED
-# else
-# define LV_IMGBTN_TILED 0
-# endif
-#else
-# define CONFIG)USE_LV_IMGBTN 0
+/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
+#define LV_USE_MBOX 1
+
+/*Page (dependencies: lv_cont)*/
+#define LV_USE_PAGE 1
+#if LV_USE_PAGE != 0
+/*Focus default animation time [ms] (0: no animation)*/
+# define LV_PAGE_DEF_ANIM_TIME 400
#endif
-/* Button matrix (dependencies: -) */
-#ifdef CONFIG_USE_LV_BTNM
-# define USE_LV_BTNM CONFIG_USE_LV_BTNM
-#else
-# define USE_LV_BTNM 0
+/*Preload (dependencies: lv_arc, lv_anim)*/
+#define LV_USE_PRELOAD 1
+#if LV_USE_PRELOAD != 0
+# define LV_PRELOAD_DEF_ARC_LENGTH 60 /*[deg]*/
+# define LV_PRELOAD_DEF_SPIN_TIME 1000 /*[ms]*/
+# define LV_PRELOAD_DEF_ANIM LV_PRELOAD_TYPE_SPINNING_ARC
#endif
-/* Keyboard (dependencies: lv_btnm) */
+/*Roller (dependencies: lv_ddlist)*/
+#define LV_USE_ROLLER 1
+#if LV_USE_ROLLER != 0
+/*Focus animation time [ms] (0: no animation)*/
+# define LV_ROLLER_DEF_ANIM_TIME 200
-#ifdef CONFIG_USE_LV_KB
-# define USE_LV_KB CONFIG_USE_LV_KB
-#else
-# define USE_LV_KB 0
+/*Number of extra "pages" when the roller is infinite*/
+# define LV_ROLLER_INF_PAGES 7
#endif
-/* Check box (dependencies: lv_btn, lv_label) */
+/*Slider (dependencies: lv_bar)*/
+#define LV_USE_SLIDER 1
-#ifdef CONFIG_USE_LV_CB
-# define USE_LV_CB CONFIG_USE_LV_CB
-#else
-# define USE_LV_CB 0
-#endif
+/*Spinbox (dependencies: lv_ta)*/
+#define LV_USE_SPINBOX 1
-/* Switch (dependencies: lv_slider) */
+/*Switch (dependencies: lv_slider)*/
+#define LV_USE_SW 1
-#ifdef CONFIG_USE_LV_SW
-# define USE_LV_SW CONFIG_USE_LV_SW
-#else
-# define USE_LV_SW 0
+/*Text area (dependencies: lv_label, lv_page)*/
+#define LV_USE_TA 1
+#if LV_USE_TA != 0
+# define LV_TA_DEF_CURSOR_BLINK_TIME 400 /*ms*/
+# define LV_TA_DEF_PWD_SHOW_TIME 1500 /*ms*/
#endif
-/* List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for
- * icons))
- */
-
-#ifdef CONFIG_USE_LV_LIST
-# define USE_LV_LIST CONFIG_USE_LV_LIST
-#else
-# define USE_LV_LIST 0
+/*Table (dependencies: lv_label)*/
+#define LV_USE_TABLE 1
+#if LV_USE_TABLE
+# define LV_TABLE_COL_MAX 12
#endif
-/* Drop down list (dependencies: lv_page, lv_label) */
+/*Tab (dependencies: lv_page, lv_btnm)*/
+#define LV_USE_TABVIEW 1
+# if LV_USE_TABVIEW != 0
+/*Time of slide animation [ms] (0: no animation)*/
+# define LV_TABVIEW_DEF_ANIM_TIME 300
+#endif
-#ifdef CONFIG_USE_LV_DDLIST
-# define USE_LV_DDLIST CONFIG_USE_LV_DDLIST
-#else
-# define USE_LV_DDLIST 0
+/*Tileview (dependencies: lv_page) */
+#define LV_USE_TILEVIEW 1
+#if LV_USE_TILEVIEW
+/*Time of slide animation [ms] (0: no animation)*/
+# define LV_TILEVIEW_DEF_ANIM_TIME 300
#endif
-/* Roller (dependencies: lv_ddlist) */
+/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
+#define LV_USE_WIN 1
-#ifdef CONFIG_USE_LV_ROLLER
-# define USE_LV_ROLLER CONFIG_USE_LV_ROLLER
-#else
-# define USE_LV_ROLLER 0
+/*==================
+ * Non-user section
+ *==================*/
+
+#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) /* Disable warnings for Visual Studio*/
+# define _CRT_SECURE_NO_WARNINGS
#endif
-/* Slider (dependencies: lv_bar) */
+/*--END OF LV_CONF_H--*/
-#ifdef CONFIG_USE_LV_SLIDER
-# define USE_LV_SLIDER CONFIG_USE_LV_SLIDER
-#else
-# define USE_LV_SLIDER 0
-#endif
+/*Be sure every define has a default value*/
+#include "lvgl/src/lv_conf_checker.h"
-#endif /*__APPS_GRAPHICS_LITTLEVGL_LV_CONF_H*/
+#endif /*LV_CONF_H*/