1 /** * @file lv_conf_kconfig.h * Configs that need special handling when LVGL is used with Kconfig */
2 
3 #ifndef LV_CONF_KCONFIG_H
4 #define LV_CONF_KCONFIG_H
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #ifdef LV_CONF_KCONFIG_EXTERNAL_INCLUDE
11 #  include LV_CONF_KCONFIG_EXTERNAL_INCLUDE
12 #else
13 
14 #  ifdef ESP_PLATFORM
15 #    include "sdkconfig.h"
16 #    include "esp_attr.h"
17 #  endif
18 
19 #  ifdef __NuttX__
20 #    include <nuttx/config.h>
21 #  elif defined(__RTTHREAD__)
22 #    define LV_CONF_INCLUDE_SIMPLE
23 #    include <lv_rt_thread_conf.h>
24 #  endif
25 
26 #endif /*LV_CONF_KCONFIG_EXTERNAL_INCLUDE*/
27 
28 /*******************
29  * LV COLOR CHROMA KEY
30  *******************/
31 
32 #ifdef CONFIG_LV_COLOR_CHROMA_KEY_HEX
33 #  define CONFIG_LV_COLOR_CHROMA_KEY lv_color_hex(CONFIG_LV_COLOR_CHROMA_KEY_HEX)
34 #endif
35 
36 /*******************
37  * LV_MEM_SIZE
38  *******************/
39 
40 #ifdef CONFIG_LV_MEM_SIZE_KILOBYTES
41 #  define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_KILOBYTES * 1024U)
42 #endif
43 
44 /********************
45  * FONT SELECTION
46  *******************/
47 
48 /**
49  * NOTE: In Kconfig instead of `LV_DEFAULT_FONT`
50  *       `CONFIG_LV_FONT_DEFAULT_<font_name>` is defined
51  *       hence the large selection with if-s
52  */
53 
54 /*------------------
55  * DEFAULT FONT
56  *-----------------*/
57 #ifdef CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8
58 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_8
59 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10)
60 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_10
61 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12)
62 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12
63 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14)
64 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_14
65 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16)
66 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_16
67 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18)
68 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_18
69 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20)
70 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_20
71 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22)
72 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_22
73 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24)
74 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_24
75 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26)
76 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_26
77 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28)
78 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28
79 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30)
80 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_30
81 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32)
82 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_32
83 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34)
84 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_34
85 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36)
86 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_36
87 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38)
88 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_38
89 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40)
90 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_40
91 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42)
92 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_42
93 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44)
94 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_44
95 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46)
96 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_46
97 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48)
98 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_48
99 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX)
100 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12_subpx
101 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED)
102 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28_compressed
103 #elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW)
104 #  define CONFIG_LV_FONT_DEFAULT &lv_font_dejavu_16_persian_hebrew
105 #elif defined(CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK)
106 #  define CONFIG_LV_FONT_DEFAULT &lv_font_simsun_16_cjk
107 #elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_8)
108 #  define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_8
109 #elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_16)
110 #  define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_16
111 #endif
112 
113 /*------------------
114  * TEXT ENCODING
115  *-----------------*/
116 #ifdef CONFIG_LV_TXT_ENC_UTF8
117 #  define CONFIG_LV_TXT_ENC LV_TXT_ENC_UTF8
118 #elif defined(CONFIG_LV_TXT_ENC_ASCII)
119 #  define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII
120 #endif
121 
122 /*------------------
123  * BIDI DIRECTION
124  *-----------------*/
125 
126 #ifdef CONFIG_LV_BASE_DIR_LTR
127 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_LTR
128 #elif defined(CONFIG_LV_BASE_DIR_RTL)
129 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_RTL
130 #elif defined(CONFIG_LV_BASE_DIR_AUTO)
131 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
132 #endif
133 
134 /*------------------
135  * MONITOR POSITION
136  *-----------------*/
137 
138 #ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT
139 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT
140 #elif defined(CONFIG_LV_USE_PERF_MONITOR_ALIGN_TOP_MID)
141 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID
142 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT)
143 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT
144 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT)
145 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
146 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID)
147 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_MID
148 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT)
149 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
150 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID)
151 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_LEFT_MID
152 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID)
153 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_RIGHT_MID
154 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_CENTER)
155 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_CENTER
156 #endif
157 
158 #ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT
159 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT
160 #elif defined(CONFIG_LV_USE_MEM_MONITOR_ALIGN_TOP_MID)
161 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID
162 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT)
163 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT
164 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT)
165 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
166 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_MID)
167 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_MID
168 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT)
169 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
170 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_LEFT_MID)
171 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_LEFT_MID
172 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_RIGHT_MID)
173 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_RIGHT_MID
174 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_CENTER)
175 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_CENTER
176 #endif
177 
178 #ifdef __cplusplus
179 } /*extern "C"*/
180 #endif
181 
182 #endif /*LV_CONF_KCONFIG_H*/
183