Commit 3e6eab3c authored by Fabian Blatz's avatar Fabian Blatz Committed by Benjamin Cabé
Browse files

samples: modules: lvgl: demos: Add new demos

Add the new demos of LVGL 9.2:
- flex_layout
- keypad_and_encoder
- render
- scroll
- multilang

Signed-off-by: default avatarFabian Blatz <fabianblatz@gmail.com>
parent e9dc495e
Loading
Loading
Loading
Loading
+69 −1
Changes for samples/modules/lvgl/demos/CMakeLists.txt: 69 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ target_sources_ifdef(CONFIG_LV_USE_DEMO_BENCHMARK app PRIVATE
    ${LVGL_DIR}/demos/benchmark/assets/lv_font_benchmark_montserrat_12_compr_az.c.c
    ${LVGL_DIR}/demos/benchmark/assets/lv_font_benchmark_montserrat_16_compr_az.c.c
    ${LVGL_DIR}/demos/benchmark/assets/lv_font_benchmark_montserrat_28_compr_az.c.c
    ${LVGL_DIR}/demos/transform/assets/img_transform_avatar_15.c
    ${LVGL_DIR}/demos/benchmark/lv_demo_benchmark.c
)

@@ -87,3 +86,72 @@ target_sources_ifdef(CONFIG_LV_USE_DEMO_WIDGETS app PRIVATE
    ${LVGL_DIR}/demos/widgets/assets/img_lvgl_logo.c
    ${LVGL_DIR}/demos/widgets/lv_demo_widgets.c
)

target_sources_ifdef(CONFIG_LV_USE_DEMO_FLEX_LAYOUT app PRIVATE
    ${LVGL_DIR}/demos/flex_layout/lv_demo_flex_layout_main.c
    ${LVGL_DIR}/demos/flex_layout/lv_demo_flex_layout_view.c
    ${LVGL_DIR}/demos/flex_layout/lv_demo_flex_layout_flex_loader.c
    ${LVGL_DIR}/demos/flex_layout/lv_demo_flex_layout_view_child_node.c
    ${LVGL_DIR}/demos/flex_layout/lv_demo_flex_layout_view_ctrl_pad.c
    ${LVGL_DIR}/demos/flex_layout/lv_demo_flex_layout_ctrl_pad.c
)

target_sources_ifdef(CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER app PRIVATE
    ${LVGL_DIR}/demos/keypad_encoder/lv_demo_keypad_encoder.c
)

target_sources_ifdef(CONFIG_LV_USE_DEMO_RENDER app PRIVATE
    ${LVGL_DIR}/demos/render/assets/img_render_arc_bg.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_argb8888.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_i1.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_l8.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_rgb565.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_rgb565a8.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_rgb888.c
    ${LVGL_DIR}/demos/render/assets/img_render_lvgl_logo_xrgb8888.c
    ${LVGL_DIR}/demos/render/lv_demo_render.c
)

target_sources_ifdef(CONFIG_LV_USE_DEMO_SCROLL app PRIVATE
    ${LVGL_DIR}/demos/scroll/lv_demo_scroll.c
)

target_sources_ifdef(CONFIG_LV_USE_DEMO_MULTILANG app PRIVATE
    ${LVGL_DIR}/demos/multilang/assets/img_multilang_like.c
    ${LVGL_DIR}/demos/multilang/assets/fonts/font_multilang_large.c
    ${LVGL_DIR}/demos/multilang/assets/fonts/font_multilang_small.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_movie_camera.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_flexed_biceps.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_rocket.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_artist_palette.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_deciduous_tree.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_cat_face.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_red_heart.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_camera_with_flash.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_dog_face.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_books.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_earth_globe_europe_africa.c
    ${LVGL_DIR}/demos/multilang/assets/emojis/img_emoji_soccer_ball.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_19.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_4.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_8.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_5.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_16.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_22.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_9.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_6.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_18.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_17.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_13.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_2.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_3.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_25.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_14.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_1.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_11.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_7.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_15.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_12.c
    ${LVGL_DIR}/demos/multilang/assets/avatars/img_multilang_avatar_10.c
    ${LVGL_DIR}/demos/multilang/lv_demo_multilang.c
)
+52 −1
Changes for samples/modules/lvgl/demos/Kconfig: 52 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -30,8 +30,59 @@ config LV_Z_DEMO_WIDGETS
	bool "LVGL widgets demo"
	select LV_USE_DEMO_WIDGETS
	help
	  Build stress testing demo application.
	  Build widgets demo application.

config LV_Z_DEMO_FLEX_LAYOUT
	bool "LVGL flex layout demo"
	select LV_USE_DEMO_FLEX_LAYOUT
	help
	  Build flex layout demo application.

config LV_Z_DEMO_KEYPAD_AND_ENCODER
	bool "LVGL keypad and encoder demo"
	select LV_USE_DEMO_KEYPAD_AND_ENCODER
	help
	  Build keypad and encoder demo application.

config LV_Z_DEMO_RENDER
	bool "LVGL render demo"
	select LV_USE_DEMO_RENDER
	help
	  Build render demo application.

config LV_Z_DEMO_SCROLL
	bool "LVGL scroll demo"
	select LV_USE_DEMO_SCROLL
	help
	  Build scroll demo application.

config LV_Z_DEMO_MULTILANG
	bool "LVGL multilang demo"
	select LV_USE_DEMO_MULTILANG
	select LV_USE_IMGFONT
	help
	  Build multilang demo application.

endchoice

config LV_Z_DEMO_RENDER_SCENE_DYNAMIC
	bool "Switch scenes dynamically"
	help
	  Switch between scenes to render dynamically.

config LV_Z_DEMO_RENDER_SCENE_INDEX
	int "Index of the rendered scene"
	depends on !LV_Z_DEMO_RENDER_SCENE_DYNAMIC
	default 0
	range 0 11
	help
	  Render scene by its index (refer to lv_demo_render.h)

config LV_Z_DEMO_RENDER_DYNAMIC_SCENE_TIMEOUT
	int "Seconds each rendered scene is shown"
	depends on LV_Z_DEMO_RENDER_SCENE_DYNAMIC
	default 3
	help
	  Seconds each rendered scenar is shown

source "Kconfig.zephyr"
+50 −0
Changes for samples/modules/lvgl/demos/README.rst: 50 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -17,6 +17,16 @@ A sample showcasing upstream LVGL demos.
      A stress test for LVGL. It contains a lot of object creation, deletion, animations, styles usage, and so on. It can be used if there is any memory corruption during heavy usage or any memory leaks.
* Widgets
      Shows how the widgets look like out of the box using the built-in material theme.
* Flex Layout
      Showcases the use of the flex layout.
* Keypad and Encoder
      Shows how to control widget with a keypad and hardware encoder.
* Render
      Collection of multiple rendering tests.
* Scroll
      Shows the scroll behaviour of a panel with a large list.
* Multilang
      Shows a UI with multilanguage options, supporting unicode characters.

More details can be found in `LVGL demos Readme`_.

@@ -72,6 +82,46 @@ These demos can be built for simulated display environment as follows:
   :goals: run
   :compact:

.. zephyr-app-commands::
   :zephyr-app: samples/modules/lvgl/demos
   :host-os: unix
   :board: native_sim
   :gen-args: -DCONFIG_LV_Z_DEMO_FLEX_LAYOUT=y
   :goals: run
   :compact:

.. zephyr-app-commands::
   :zephyr-app: samples/modules/lvgl/demos
   :host-os: unix
   :board: native_sim
   :gen-args: -DCONFIG_LV_Z_DEMO_KEYPAD_AND_ENCODER=y
   :goals: run
   :compact:

.. zephyr-app-commands::
   :zephyr-app: samples/modules/lvgl/demos
   :host-os: unix
   :board: native_sim
   :gen-args: -DCONFIG_LV_Z_DEMO_RENDER=y
   :goals: run
   :compact:

.. zephyr-app-commands::
   :zephyr-app: samples/modules/lvgl/demos
   :host-os: unix
   :board: native_sim
   :gen-args: -DCONFIG_LV_Z_DEMO_SCROLL=y
   :goals: run
   :compact:

.. zephyr-app-commands::
   :zephyr-app: samples/modules/lvgl/demos
   :host-os: unix
   :board: native_sim
   :gen-args: -DCONFIG_LV_Z_DEMO_MULTILANG=y
   :goals: run
   :compact:

Alternatively, if building from a 64-bit host machine, the previous target
board argument may also be replaced by ``native_sim/native/64``.

+1 −0
Changes for samples/modules/lvgl/demos/prj.conf: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ CONFIG_INPUT=y
CONFIG_LV_FONT_MONTSERRAT_12=y
CONFIG_LV_FONT_MONTSERRAT_14=y
CONFIG_LV_FONT_MONTSERRAT_16=y
CONFIG_LV_FONT_MONTSERRAT_18=y
CONFIG_LV_FONT_MONTSERRAT_24=y

# Benchmark Demo
+15 −1
Changes for samples/modules/lvgl/demos/sample.yaml: 15 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -34,7 +34,21 @@ tests:
  sample.modules.lvgl.demo_widgets:
    extra_configs:
      - CONFIG_LV_Z_DEMO_WIDGETS=y

  sample.modules.lvgl.demo_flex_layout:
    extra_configs:
      - CONFIG_LV_Z_DEMO_FLEX_LAYOUT=y
  sample.modules.lvgl.demo_keypad_encoder:
    extra_configs:
      - CONFIG_LV_Z_DEMO_KEYPAD_AND_ENCODER=y
  sample.modules.lvgl.demo_render:
    extra_configs:
      - CONFIG_LV_Z_DEMO_RENDER=y
  sample.modules.lvgl.demo_scroll:
    extra_configs:
      - CONFIG_LV_Z_DEMO_SCROLL=y
  sample.modules.lvgl.demo_multilang:
    extra_configs:
      - CONFIG_LV_Z_DEMO_MULTILANG=y
  sample.modules.lvgl.demos.st_b_lcd40_dsi1_mb1166:
    filter: dt_compat_enabled("orisetech,otm8009a")
    platform_allow: stm32h747i_disco/stm32h747xx/m7
Loading