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 /* 22 * Make sure version number in Kconfig file is correctly set. 23 * Mismatch can happen when user manually copy lvgl/Kconfig file to their project, like what NuttX does. 24 */ 25 # include "../lv_version.h" 26 27 # if CONFIG_LVGL_VERSION_MAJOR != LVGL_VERSION_MAJOR || CONFIG_LVGL_VERSION_MINOR != LVGL_VERSION_MINOR \ 28 || CONFIG_LVGL_VERSION_PATCH != LVGL_VERSION_PATCH 29 # warning "Version mismatch between Kconfig and lvgl/lv_version.h" 30 # endif 31 # elif defined(__RTTHREAD__) 32 # define LV_CONF_INCLUDE_SIMPLE 33 # include <lv_rt_thread_conf.h> 34 # endif 35 36 #endif /*LV_CONF_KCONFIG_EXTERNAL_INCLUDE*/ 37 38 /******************* 39 * LV_USE_STDLIB_MALLOC 40 *******************/ 41 42 #ifdef CONFIG_LV_USE_BUILTIN_MALLOC 43 # define CONFIG_LV_USE_STDLIB_MALLOC LV_STDLIB_BUILTIN 44 #elif defined(CONFIG_LV_USE_CLIB_MALLOC) 45 # define CONFIG_LV_USE_STDLIB_MALLOC LV_STDLIB_CLIB 46 #elif defined(CONFIG_LV_USE_MICROPYTHON_MALLOC) 47 # define CONFIG_LV_USE_STDLIB_MALLOC LV_STDLIB_MICROPYTHON 48 #elif defined(CONFIG_LV_USE_RTTHREAD_MALLOC) 49 # define CONFIG_LV_USE_STDLIB_MALLOC LV_STDLIB_RTTHREAD 50 #elif defined (CONFIG_LV_USE_CUSTOM_MALLOC) 51 # define CONFIG_LV_USE_STDLIB_MALLOC LV_STDLIB_CUSTOM 52 #endif 53 54 /******************* 55 * LV_USE_STDLIB_STRING 56 *******************/ 57 58 #ifdef CONFIG_LV_USE_BUILTIN_STRING 59 # define CONFIG_LV_USE_STDLIB_STRING LV_STDLIB_BUILTIN 60 #elif defined(CONFIG_LV_USE_CLIB_STRING) 61 # define CONFIG_LV_USE_STDLIB_STRING LV_STDLIB_CLIB 62 #elif defined(CONFIG_LV_USE_MICROPYTHON_STRING) 63 # define CONFIG_LV_USE_STDLIB_STRING LV_STDLIB_MICROPYTHON 64 #elif defined(CONFIG_LV_USE_RTTHREAD_STRING) 65 # define CONFIG_LV_USE_STDLIB_STRING LV_STDLIB_RTTHREAD 66 #elif defined (CONFIG_LV_USE_CUSTOM_STRING) 67 # define CONFIG_LV_USE_STDLIB_STRING LV_STDLIB_CUSTOM 68 #endif 69 70 /******************* 71 * LV_USE_STDLIB_SPRINTF 72 *******************/ 73 74 #ifdef CONFIG_LV_USE_BUILTIN_SPRINTF 75 # define CONFIG_LV_USE_STDLIB_SPRINTF LV_STDLIB_BUILTIN 76 #elif defined(CONFIG_LV_USE_CLIB_SPRINTF) 77 # define CONFIG_LV_USE_STDLIB_SPRINTF LV_STDLIB_CLIB 78 #elif defined(CONFIG_LV_USE_MICROPYTHON_SPRINTF) 79 # define CONFIG_LV_USE_STDLIB_SPRINTF LV_STDLIB_MICROPYTHON 80 #elif defined(CONFIG_LV_USE_RTTHREAD_SPRINTF) 81 # define CONFIG_LV_USE_STDLIB_SPRINTF LV_STDLIB_RTTHREAD 82 #elif defined (CONFIG_LV_USE_CUSTOM_SPRINTF) 83 # define CONFIG_LV_USE_STDLIB_SPRINTF LV_STDLIB_CUSTOM 84 #endif 85 86 /******************* 87 * LV_MEM_SIZE 88 *******************/ 89 90 #ifdef CONFIG_LV_MEM_SIZE_KILOBYTES 91 # if(CONFIG_LV_MEM_SIZE_KILOBYTES < 2) 92 # error "LV_MEM_SIZE >= 2kB is required" 93 # endif 94 95 # define CONFIG_LV_MEM_SIZE (CONFIG_LV_MEM_SIZE_KILOBYTES * 1024U) 96 #endif 97 98 #ifdef CONFIG_LV_MEM_POOL_EXPAND_SIZE_KILOBYTES 99 # define CONFIG_LV_MEM_POOL_EXPAND_SIZE (CONFIG_LV_MEM_POOL_EXPAND_SIZE_KILOBYTES * 1024U) 100 #endif 101 102 /*------------------ 103 * MONITOR POSITION 104 *-----------------*/ 105 106 #ifdef CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT 107 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_LEFT 108 #elif defined(CONFIG_LV_USE_PERF_MONITOR_ALIGN_TOP_MID) 109 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_MID 110 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT) 111 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_TOP_RIGHT 112 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT) 113 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_LEFT 114 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID) 115 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_MID 116 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT) 117 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT 118 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID) 119 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_LEFT_MID 120 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID) 121 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_RIGHT_MID 122 #elif defined(CONFIG_LV_PERF_MONITOR_ALIGN_CENTER) 123 # define CONFIG_LV_USE_PERF_MONITOR_POS LV_ALIGN_CENTER 124 #endif 125 126 #ifdef CONFIG_LV_MEM_MONITOR_ALIGN_TOP_LEFT 127 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_LEFT 128 #elif defined(CONFIG_LV_USE_MEM_MONITOR_ALIGN_TOP_MID) 129 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_MID 130 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_TOP_RIGHT) 131 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_TOP_RIGHT 132 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_LEFT) 133 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_LEFT 134 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_MID) 135 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_MID 136 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_BOTTOM_RIGHT) 137 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_BOTTOM_RIGHT 138 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_LEFT_MID) 139 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_LEFT_MID 140 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_RIGHT_MID) 141 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_RIGHT_MID 142 #elif defined(CONFIG_LV_MEM_MONITOR_ALIGN_CENTER) 143 # define CONFIG_LV_USE_MEM_MONITOR_POS LV_ALIGN_CENTER 144 #endif 145 146 /******************** 147 * FONT SELECTION 148 *******************/ 149 150 /** 151 * NOTE: In Kconfig instead of `LV_DEFAULT_FONT` 152 * `CONFIG_LV_FONT_DEFAULT_<font_name>` is defined 153 * hence the large selection with if-s 154 */ 155 156 /*------------------ 157 * DEFAULT FONT 158 *-----------------*/ 159 #ifdef CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 160 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_8 161 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10) 162 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_10 163 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12) 164 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12 165 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14) 166 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_14 167 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16) 168 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_16 169 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18) 170 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_18 171 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20) 172 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_20 173 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22) 174 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_22 175 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24) 176 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_24 177 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26) 178 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_26 179 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28) 180 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28 181 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30) 182 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_30 183 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32) 184 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_32 185 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34) 186 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_34 187 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36) 188 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_36 189 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38) 190 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_38 191 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40) 192 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_40 193 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42) 194 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_42 195 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44) 196 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_44 197 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46) 198 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_46 199 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48) 200 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_48 201 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12_SUBPX) 202 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_12_subpx 203 #elif defined(CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED) 204 # define CONFIG_LV_FONT_DEFAULT &lv_font_montserrat_28_compressed 205 #elif defined(CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW) 206 # define CONFIG_LV_FONT_DEFAULT &lv_font_dejavu_16_persian_hebrew 207 #elif defined(CONFIG_LV_FONT_DEFAULT_SIMSUN_14_CJK) 208 # define CONFIG_LV_FONT_DEFAULT &lv_font_simsun_14_cjk 209 #elif defined(CONFIG_LV_FONT_DEFAULT_SIMSUN_16_CJK) 210 # define CONFIG_LV_FONT_DEFAULT &lv_font_simsun_16_cjk 211 #elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_8) 212 # define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_8 213 #elif defined(CONFIG_LV_FONT_DEFAULT_UNSCII_16) 214 # define CONFIG_LV_FONT_DEFAULT &lv_font_unscii_16 215 #endif 216 217 /*------------------ 218 * TEXT ENCODING 219 *-----------------*/ 220 #ifdef CONFIG_LV_TXT_ENC_UTF8 221 # define CONFIG_LV_TXT_ENC LV_TXT_ENC_UTF8 222 #elif defined(CONFIG_LV_TXT_ENC_ASCII) 223 # define CONFIG_LV_TXT_ENC LV_TXT_ENC_ASCII 224 #endif 225 226 /*------------------ 227 * BIDI DIRECTION 228 *-----------------*/ 229 230 #ifdef CONFIG_LV_BASE_DIR_LTR 231 # define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_LTR 232 #elif defined(CONFIG_LV_BASE_DIR_RTL) 233 # define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_RTL 234 #elif defined(CONFIG_LV_BASE_DIR_AUTO) 235 # define CONFIG_LV_BIDI_BASE_DIR_DEF LV_BASE_DIR_AUTO 236 #endif 237 238 /*------------------ 239 * SDL 240 *-----------------*/ 241 242 #ifdef CONFIG_LV_SDL_RENDER_MODE_PARTIAL 243 # define CONFIG_LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL 244 #elif defined(CONFIG_LV_SDL_RENDER_MODE_DIRECT) 245 # define CONFIG_LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT 246 #elif defined(CONFIG_LV_SDL_RENDER_MODE_FULL) 247 # define CONFIG_LV_SDL_RENDER_MODE LV_DISPLAY_RENDER_MODE_FULL 248 #endif 249 250 /*------------------ 251 * LINUX FBDEV 252 *-----------------*/ 253 254 #ifdef CONFIG_LV_LINUX_FBDEV_RENDER_MODE_PARTIAL 255 # define CONFIG_LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL 256 #elif defined(CONFIG_LV_LINUX_FBDEV_RENDER_MODE_DIRECT) 257 # define CONFIG_LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_DIRECT 258 #elif defined(CONFIG_LV_LINUX_FBDEV_RENDER_MODE_FULL) 259 # define CONFIG_LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_FULL 260 #endif 261 262 #ifdef __cplusplus 263 } /*extern "C"*/ 264 #endif 265 266 #endif /*LV_CONF_KCONFIG_H*/ 267