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  * MONITOR POSITION
46  *-----------------*/
47 
48 #ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT
49 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT
50 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_MID)
51 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID
52 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT)
53 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT
54 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT)
55 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
56 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID)
57 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_MID
58 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT)
59 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
60 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID)
61 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_LEFT_MID
62 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID)
63 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_RIGHT_MID
64 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_CENTER)
65 #  define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_CENTER
66 #endif
67 
68 #ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT
69 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT
70 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_MID)
71 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID
72 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT)
73 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT
74 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT)
75 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT
76 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_MID)
77 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_MID
78 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT)
79 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT
80 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_LEFT_MID)
81 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_LEFT_MID
82 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_RIGHT_MID)
83 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_RIGHT_MID
84 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_CENTER)
85 #  define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_CENTER
86 #endif
87 
88 /********************
89  * FONT SELECTION
90  *******************/
91 
92 /**
93  * NOTE: In Kconfig instead of `LV_DEFAULT_FONT`
94  *       `CONFIG_LV_FONT_DEFAULT_<font_name>` is defined
95  *       hence the large selection with if-s
96  */
97 
98 /*------------------
99  * DEFAULT FONT
100  *-----------------*/
101 #ifdef CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8
102 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_8
103 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10)
104 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_10
105 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12)
106 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12
107 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14)
108 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_14
109 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16)
110 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_16
111 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18)
112 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_18
113 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20)
114 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_20
115 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22)
116 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_22
117 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24)
118 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_24
119 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26)
120 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_26
121 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28)
122 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28
123 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30)
124 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_30
125 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32)
126 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_32
127 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34)
128 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_34
129 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36)
130 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_36
131 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38)
132 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_38
133 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40)
134 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_40
135 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42)
136 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_42
137 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44)
138 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_44
139 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46)
140 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_46
141 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48)
142 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_48
143 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX)
144 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12_subpx
145 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED)
146 #  define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28_compressed
147 #elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW)
148 #  define CONFIG_LV_FONT_DEFAULT &lv_font_dejavu_16_persian_hebrew
149 #elif defined(CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK)
150 #  define CONFIG_LV_FONT_DEFAULT &lv_font_simsun_16_cjk
151 #elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_8)
152 #  define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_8
153 #elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_16)
154 #  define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_16
155 #endif
156 
157 /*------------------
158  * TEXT ENCODING
159  *-----------------*/
160 #ifdef CONFIG_LV_TXT_ENC_UTF8
161 #  define CONFIG_LV_TXT_ENC LV_TXT_ENC_UTF8
162 #elif defined(CONFIG_LV_TXT_ENC_ASCII)
163 #  define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII
164 #endif
165 
166 /*------------------
167  * BIDI DIRECTION
168  *-----------------*/
169 
170 #ifdef CONFIG_LV_BASE_DIR_LTR
171 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_LTR
172 #elif defined(CONFIG_LV_BASE_DIR_RTL)
173 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_RTL
174 #elif defined(CONFIG_LV_BASE_DIR_AUTO)
175 #  define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO
176 #endif
177 
178 #ifdef __cplusplus
179 } /*extern "C"*/
180 #endif
181 
182 #endif /*LV_CONF_KCONFIG_H*/
183