Loading...
Searching...
No Matches
lv_conf.h
1/*
2 * SPDX-FileCopyrightText: 2019 Inria
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20#include <stdint.h>
21#include "kernel_defines.h"
22#include "lvgl_riot_conf.h"
23
25#define LV_CONF_H 1
26
27/*====================
28 COLOR SETTINGS
29 *====================*/
30
38#ifndef LV_COLOR_DEPTH
39# if IS_USED(MODULE_U8G2_DISP_DEV)
40# define LV_COLOR_DEPTH 1
41# else
42# define LV_COLOR_DEPTH 16
43# endif
44#endif
45
50#ifndef LV_COLOR_16_SWAP
51# if IS_USED(MODULE_LCD)
52# define LV_COLOR_16_SWAP 1
53# else
54# define LV_COLOR_16_SWAP 0
55# if IS_USED(MODULE_LCD)
56# define LV_COLOR_16_SWAP 1
57# else
58# define LV_COLOR_16_SWAP 0
59# endif
60# endif
61#endif
62
69#define LV_COLOR_SCREEN_TRANSP 0
70
75#define LV_COLOR_CHROMA_KEY lv_color_hex(0x00ff00)
76
77/*=========================
78 MEMORY SETTINGS
79 *=========================*/
80
86#define LV_MEM_CUSTOM 0
87#if LV_MEM_CUSTOM == 0
89# ifndef LV_MEM_SIZE
90# if (__SIZEOF_POINTER__ > 4)
91/* 64-bit platforms require additional space because a lot of pointers are stored on the lvgl heap. */
92# if IS_USED(MODULE_LVGL_EXTRA_THEME_DEFAULT_GROW)
93# define LV_MEM_SIZE (9U * 1024U)
94# else
95# define LV_MEM_SIZE (8U * 1024U)
96# endif
97# else
98# if IS_USED(MODULE_LVGL_EXTRA_THEME_DEFAULT_GROW)
99# define LV_MEM_SIZE (6U * 1024U)
100# else
101# define LV_MEM_SIZE (5U * 1024U)
102# endif
103# endif
104# endif
109# define LV_MEM_ADR 0 /* 0: unused */
110#else /* LV_MEM_CUSTOM */
111# define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /* Header for the dynamic memory function */
112# define LV_MEM_CUSTOM_ALLOC malloc
113# define LV_MEM_CUSTOM_FREE free
114#endif /* LV_MEM_CUSTOM */
115
121#define LV_MEM_BUF_MAX_NUM 16
122
126#define LV_MEMCPY_MEMSET_STD 1
127
128/*====================
129 HAL SETTINGS
130 *====================*/
131
133#define LV_DISP_DEF_REFR_PERIOD 30 /* [ms] */
134
136#define LV_INDEV_DEF_READ_PERIOD 30 /* [ms] */
137
141#define LV_DPI_DEF 130 /* [px/inch] */
142
143/*=======================
144 * FEATURE CONFIGURATION
145 *=======================*/
146
147/*-------------
148 * Drawing
149 *-----------*/
150
156#define LV_DRAW_COMPLEX 1
157#if LV_DRAW_COMPLEX != 0
158
164# define LV_SHADOW_CACHE_SIZE 0
165#endif /* LV_DRAW_COMPLEX */
166
177#define LV_IMG_CACHE_DEF_SIZE 0
178
184#define LV_GRADIENT_MAX_STOPS 2
185
192#define LV_GRAD_CACHE_DEF_SIZE 0
193
198#define LV_DISP_ROT_MAX_BUF (10*1024)
199/*-------------
200 * GPU
201 *-----------*/
202
204#define LV_USE_GPU_STM32_DMA2D 0
205#if LV_USE_GPU_STM32_DMA2D
209# define LV_GPU_DMA2D_CMSIS_INCLUDE
210#endif
211
213#define LV_USE_GPU_NXP_PXP 0
214#if LV_USE_GPU_NXP_PXP
215
223# define LV_USE_GPU_NXP_PXP_AUTO_INIT 0
224#endif
225
227#define LV_USE_GPU_NXP_VG_LITE 0
228
229/*-------------
230 * Logging
231 *-----------*/
232
234#define LV_USE_LOG 0
235#if LV_USE_LOG
236
246# define LV_LOG_LEVEL LV_LOG_LEVEL_WARN
247
253# define LV_LOG_PRINTF 0
254
256# define LV_LOG_TRACE_MEM 1
257# define LV_LOG_TRACE_TIMER 1
258# define LV_LOG_TRACE_INDEV 1
259# define LV_LOG_TRACE_DISP_REFR 1
260# define LV_LOG_TRACE_EVENT 1
261# define LV_LOG_TRACE_OBJ_CREATE 1
262# define LV_LOG_TRACE_LAYOUT 1
263# define LV_LOG_TRACE_ANIM 1
264
265#endif /* LV_USE_LOG */
266
267/*-------------
268 * Asserts
269 *-----------*/
270
276#define LV_USE_ASSERT_NULL 0
277
279#define LV_USE_ASSERT_MALLOC 0
280
282#define LV_USE_ASSERT_STYLE 0
283
285#define LV_USE_ASSERT_MEM_INTEGRITY 0
286
288#define LV_USE_ASSERT_OBJ 0
289
291#define LV_ASSERT_HANDLER_INCLUDE <stdint.h>
292#define LV_ASSERT_HANDLER while (1) {};
293
294/*-------------
295 * Others
296 *-----------*/
297
299#define LV_USE_PERF_MONITOR 0
300
304#define LV_USE_MEM_MONITOR 0
305
307#define LV_USE_REFR_DEBUG 0
308
310#define LV_SPRINTF_CUSTOM 0
311#if LV_SPRINTF_CUSTOM
312# define LV_SPRINTF_INCLUDE <stdio.h>
313# define lv_snprintf snprintf
314# define lv_vsnprintf vsnprintf
315#else
316# define LV_SPRINTF_USE_FLOAT 0
317#endif /* LV_SPRINTF_CUSTOM */
318
319#define LV_USE_USER_DATA 1
320
325#define LV_ENABLE_GC 0
326#if LV_ENABLE_GC != 0
327# define LV_GC_INCLUDE "gc.h" /* Include Garbage Collector related things */
328#endif /* LV_ENABLE_GC */
329
330/*=====================
331 * COMPILER SETTINGS
332 *====================*/
333
335#define LV_BIG_ENDIAN_SYSTEM 0
336
338#define LV_ATTRIBUTE_TICK_INC
339
341#define LV_ATTRIBUTE_TIMER_HANDLER
342
344#define LV_ATTRIBUTE_FLUSH_READY
345
347#define LV_ATTRIBUTE_MEM_ALIGN_SIZE 1
348
350#define LV_ATTRIBUTE_LARGE_CONST
351
353#define LV_ATTRIBUTE_LARGE_RAM_ARRAY
354
356#define LV_ATTRIBUTE_FAST_MEM
357
362#define LV_ATTRIBUTE_DMA
363
370#define LV_EXPORT_CONST_INT(int_value) struct _silence_gcc_warning
371
375#define LV_USE_LARGE_COORD 0
376
377/*==================
378 * FONT USAGE
379 *===================*/
380
385#define LV_FONT_MONTSERRAT_8 0
386#define LV_FONT_MONTSERRAT_10 0
387#define LV_FONT_MONTSERRAT_12 1
388#define LV_FONT_MONTSERRAT_14 0
389#define LV_FONT_MONTSERRAT_16 0
390#define LV_FONT_MONTSERRAT_18 0
391#define LV_FONT_MONTSERRAT_20 0
392#define LV_FONT_MONTSERRAT_22 0
393#define LV_FONT_MONTSERRAT_24 0
394#define LV_FONT_MONTSERRAT_26 0
395#define LV_FONT_MONTSERRAT_28 0
396#define LV_FONT_MONTSERRAT_30 0
397#define LV_FONT_MONTSERRAT_32 0
398#define LV_FONT_MONTSERRAT_34 0
399#define LV_FONT_MONTSERRAT_36 0
400#define LV_FONT_MONTSERRAT_38 0
401#define LV_FONT_MONTSERRAT_40 0
402#define LV_FONT_MONTSERRAT_42 0
403#define LV_FONT_MONTSERRAT_44 0
404#define LV_FONT_MONTSERRAT_46 0
405#define LV_FONT_MONTSERRAT_48 0
407
409#define LV_FONT_MONTSERRAT_12_SUBPX 0
410#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /* bpp = 3 */
411#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /* Hebrew, Arabic, Perisan letters and all their forms */
412#define LV_FONT_SIMSUN_16_CJK 0 /* 1000 most common CJK radicals */
413
417#define LV_FONT_UNSCII_8 0
418#define LV_FONT_UNSCII_16 0
420
428#define LV_FONT_CUSTOM_DECLARE
429
431#define LV_FONT_DEFAULT &lv_font_montserrat_12
432
438#define LV_FONT_FMT_TXT_LARGE 0
439
441#define LV_USE_FONT_COMPRESSED 0
442
444#define LV_USE_FONT_SUBPX 0
445#if LV_USE_FONT_SUBPX
452# define LV_FONT_SUBPX_BGR 0
453#endif
454
455/*=================
456 * TEXT SETTINGS
457 *=================*/
458
465#define LV_TXT_ENC LV_TXT_ENC_ASCII
466
468#define LV_TXT_BREAK_CHARS " ,.;:-_"
469
475#define LV_TXT_LINE_BREAK_LONG_LEN 0
476
481#define LV_TXT_LINE_BREAK_LONG_PRE_MIN_LEN 3
482
487#define LV_TXT_LINE_BREAK_LONG_POST_MIN_LEN 3
488
490#define LV_TXT_COLOR_CMD "#"
491
498#define LV_USE_BIDI 0
499#if LV_USE_BIDI
506# define LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
507#endif
508
514#define LV_USE_ARABIC_PERSIAN_CHARS 0
515
516/*==================
517 * WIDGET USAGE
518 *================*/
519
520/* Documentation of the widgets: https://docs.lvgl.io/latest/en/html/widgets/index.html */
521#define LV_USE_ARC IS_USED(MODULE_LVGL_WIDGET_ARC)
522
523#define LV_USE_ANIMIMG IS_USED(MODULE_LVGL_EXTRA_WIDGET_ANIMIMG)
524
525#define LV_USE_BAR IS_USED(MODULE_LVGL_WIDGET_BAR)
526
527#define LV_USE_BTN IS_USED(MODULE_LVGL_WIDGET_BTN)
528
529#define LV_USE_BTNMATRIX IS_USED(MODULE_LVGL_WIDGET_BTNMATRIX)
530
531#define LV_USE_CANVAS IS_USED(MODULE_LVGL_WIDGET_CANVAS)
532
533#define LV_USE_CHECKBOX IS_USED(MODULE_LVGL_WIDGET_CHECKBOX)
534
535#define LV_USE_DROPDOWN IS_USED(MODULE_LVGL_WIDGET_DROPDOWN) /* Requires: lv_label */
536
537#define LV_USE_IMG IS_USED(MODULE_LVGL_WIDGET_IMG) /* Requires: lv_label */
538
539#define LV_USE_LABEL IS_USED(MODULE_LVGL_WIDGET_LABEL)
540#if LV_USE_LABEL
541#ifndef LV_LABEL_TEXT_SELECTION
542#define LV_LABEL_TEXT_SELECTION 1
543#endif
544#ifndef LV_LABEL_LONG_TXT_HINT
545
547#define LV_LABEL_LONG_TXT_HINT 1
548#endif
549#endif
550
551#define LV_USE_LINE IS_USED(MODULE_LVGL_WIDGET_LINE)
552
553#define LV_USE_ROLLER IS_USED(MODULE_LVGL_WIDGET_ROLLER) /* Requires: lv_label */
554#if LV_USE_ROLLER
555# define LV_ROLLER_INF_PAGES 7 /* Number of extra "pages" when the roller is infinite */
556#endif
557
558#define LV_USE_SLIDER IS_USED(MODULE_LVGL_WIDGET_SLIDER) /* Requires: lv_bar */
559
560#define LV_USE_SWITCH IS_USED(MODULE_LVGL_WIDGET_SWITCH)
561
562#define LV_USE_TEXTAREA IS_USED(MODULE_LVGL_WIDGET_TEXTAREA) /* Requires: lv_label */
563#if LV_USE_TEXTAREA != 0
564# define LV_TEXTAREA_DEF_PWD_SHOW_TIME 1500 /* ms */
565#endif
566
567#define LV_USE_TABLE IS_USED(MODULE_LVGL_WIDGET_TABLE)
568
569/*==================
570 * EXTRA COMPONENTS
571 *==================*/
572
573/*-----------
574 * Widgets
575 *----------*/
576
577#define LV_USE_CALENDAR IS_USED(MODULE_LVGL_EXTRA_WIDGET_CALENDAR)
578#if LV_USE_CALENDAR
579# define LV_CALENDAR_WEEK_STARTS_MONDAY 0
580# if LV_CALENDAR_WEEK_STARTS_MONDAY
581# define LV_CALENDAR_DEFAULT_DAY_NAMES {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"}
582# else
583# define LV_CALENDAR_DEFAULT_DAY_NAMES {"Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"}
584# endif
585
586# define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", \
587 "June", "July", "August", "September", "October", \
588 "November", "December"}
589# define LV_USE_CALENDAR_HEADER_ARROW 1
590# define LV_USE_CALENDAR_HEADER_DROPDOWN 1
591#endif /*LV_USE_CALENDAR*/
592
593#define LV_USE_CHART IS_USED(MODULE_LVGL_EXTRA_WIDGET_CHART)
594
595#define LV_USE_COLORWHEEL IS_USED(MODULE_LVGL_EXTRA_WIDGET_COLORWHEEL)
596
597#define LV_USE_IMGBTN IS_USED(MODULE_LVGL_EXTRA_WIDGET_IMGBTN)
598
599#define LV_USE_KEYBOARD IS_USED(MODULE_LVGL_EXTRA_WIDGET_KEYBOARD)
600
601#define LV_USE_LED IS_USED(MODULE_LVGL_EXTRA_WIDGET_LED)
602
603#define LV_USE_LIST IS_USED(MODULE_LVGL_EXTRA_WIDGET_LIST)
604
605#define LV_USE_MENU IS_USED(MODULE_LVGL_EXTRA_WIDGET_MENU)
606
607#define LV_USE_METER IS_USED(MODULE_LVGL_EXTRA_WIDGET_METER)
608
609#define LV_USE_MSGBOX IS_USED(MODULE_LVGL_EXTRA_WIDGET_MSGBOX)
610
611#define LV_USE_SPINBOX IS_USED(MODULE_LVGL_EXTRA_WIDGET_SPINBOX)
612
613#define LV_USE_SPINNER IS_USED(MODULE_LVGL_EXTRA_WIDGET_SPINNER)
614
615#define LV_USE_TABVIEW IS_USED(MODULE_LVGL_EXTRA_WIDGET_TABVIEW)
616
617#define LV_USE_TILEVIEW IS_USED(MODULE_LVGL_EXTRA_WIDGET_TILEVIEW)
618
619#define LV_USE_WIN IS_USED(MODULE_LVGL_EXTRA_WIDGET_WIN)
620
621#define LV_USE_SPAN IS_USED(MODULE_LVGL_EXTRA_WIDGET_SPAN)
622#if LV_USE_SPAN
623/*A line text can contain maximum num of span descriptor */
624# define LV_SPAN_SNIPPET_STACK_SIZE 64
625#endif
626
627/*-----------
628 * Themes
629 *----------*/
631#define LV_USE_THEME_DEFAULT IS_USED(MODULE_LVGL_EXTRA_THEME_DEFAULT)
632
637#define LV_THEME_DEFAULT_DARK IS_USED(MODULE_LVGL_EXTRA_THEME_DEFAULT_DARK)
638
643#define LV_THEME_DEFAULT_GROW IS_USED(MODULE_LVGL_EXTRA_THEME_DEFAULT_GROW)
644
646# define LV_THEME_DEFAULT_TRANSITON_TIME 80
647
649#define LV_USE_THEME_BASIC IS_USED(MODULE_LVGL_EXTRA_THEME_BASIC)
650
652#define LV_USE_THEME_MONO IS_USED(MODULE_LVGL_EXTRA_THEME_MONO)
653
654/*-----------
655 * Layouts
656 *----------*/
657
659#define LV_USE_FLEX IS_USED(MODULE_LVGL_EXTRA_LAYOUT_FLEX)
660
662#define LV_USE_GRID IS_USED(MODULE_LVGL_EXTRA_LAYOUT_GRID)
663
664#ifdef __cplusplus
665}
666#endif
667
Common macros and compiler attributes/pragmas configuration.
Definitions specific to RIOT for the LVGL engine.