/** * @file lv_init.c * *//* ... *//********************* * INCLUDES *********************//* ... */#include"others/sysmon/lv_sysmon_private.h"#include"misc/lv_timer_private.h"#include"misc/lv_profiler_builtin_private.h"#include"misc/lv_anim_private.h"#include"draw/lv_image_decoder_private.h"#include"draw/lv_draw_buf_private.h"#include"core/lv_refr_private.h"#include"core/lv_obj_style_private.h"#include"core/lv_group_private.h"#include"lv_init.h"#include"core/lv_global.h"#include"core/lv_obj.h"#include"display/lv_display_private.h"#include"indev/lv_indev_private.h"#include"layouts/lv_layout_private.h"#include"libs/bin_decoder/lv_bin_decoder.h"#include"libs/bmp/lv_bmp.h"#include"libs/ffmpeg/lv_ffmpeg.h"#include"libs/freetype/lv_freetype.h"#include"libs/fsdrv/lv_fsdrv.h"#include"libs/gif/lv_gif.h"#include"libs/tjpgd/lv_tjpgd.h"#include"libs/libjpeg_turbo/lv_libjpeg_turbo.h"#include"libs/lodepng/lv_lodepng.h"#include"libs/libpng/lv_libpng.h"#include"libs/tiny_ttf/lv_tiny_ttf.h"#include"draw/lv_draw.h"#include"misc/lv_async.h"#include"misc/lv_fs_private.h"#include"widgets/span/lv_span.h"#include"themes/simple/lv_theme_simple.h"#include"misc/lv_fs.h"#include"osal/lv_os_private.h"33 includes#ifLV_USE_DRAW_VGLITE#include"draw/nxp/vglite/lv_draw_vglite.h"#endif#ifLV_USE_PXP#ifLV_USE_DRAW_PXP||LV_USE_ROTATE_PXP#include"draw/nxp/pxp/lv_draw_pxp.h"#endif/* ... */#endif#ifLV_USE_DRAW_DAVE2D#include"draw/renesas/dave2d/lv_draw_dave2d.h"#endif#ifLV_USE_DRAW_SDL#include"draw/sdl/lv_draw_sdl.h"#endif#ifLV_USE_DRAW_VG_LITE#include"draw/vg_lite/lv_draw_vg_lite.h"#endif#ifLV_USE_WINDOWS#include"drivers/windows/lv_windows_context.h"#endif/********************* * DEFINES *********************//* ... */#definelv_initializedLV_GLOBAL_DEFAULT()->inited#definelv_deinit_in_progressLV_GLOBAL_DEFAULT()->deinit_in_progress/********************** * TYPEDEFS **********************//* ... *//********************** * STATIC PROTOTYPES **********************//* ... *//********************** * STATIC VARIABLES **********************//* ... */#ifLV_ENABLE_GLOBAL_CUSTOM==0lv_global_tlv_global;#endif/********************** * MACROS **********************//* ... */#ifndefLV_GLOBAL_INIT#defineLV_GLOBAL_INIT(__GLOBAL_PTR)lv_global_init((lv_global_t*)(__GLOBAL_PTR))#endif/********************** * GLOBAL FUNCTIONS **********************//* ... */staticinlinevoidlv_global_init(lv_global_t*global){LV_ASSERT_NULL(global);if(global==NULL){LV_LOG_ERROR("lv_global cannot be null");return;}{...}lv_memzero(global,sizeof(lv_global_t));lv_ll_init(&(global->disp_ll),sizeof(lv_display_t));lv_ll_init(&(global->indev_ll),sizeof(lv_indev_t));global->memory_zero=ZERO_MEM_SENTINEL;global->style_refresh=true;global->layout_count=LV_LAYOUT_LAST;global->style_last_custom_prop_id=(uint32_t)LV_STYLE_LAST_BUILT_IN_PROP;global->event_last_register_id=LV_EVENT_LAST;lv_rand_set_seed(0x1234ABCD);#ifdefLV_LOG_PRINT_CBvoidLV_LOG_PRINT_CB(lv_log_level_t,constchar*txt);global->custom_log_print_cb=LV_LOG_PRINT_CB;/* ... */#endif#ifdefined(LV_DRAW_SW_SHADOW_CACHE_SIZE)&&LV_DRAW_SW_SHADOW_CACHE_SIZE>0global->sw_shadow_cache.cache_size=-1;global->sw_shadow_cache.cache_r=-1;/* ... */#endif}{ ... }staticinlinevoidlv_cleanup_devices(lv_global_t*global){LV_ASSERT_NULL(global);if(global){/* cleanup indev and display */lv_ll_clear_custom(&(global->indev_ll),(void(*)(void*))lv_indev_delete);lv_ll_clear_custom(&(global->disp_ll),(void(*)(void*))lv_display_delete);}{...}}{ ... }boollv_is_initialized(void){#ifLV_ENABLE_GLOBAL_CUSTOMif(LV_GLOBAL_DEFAULT())returnlv_initialized;elsereturnfalse;/* ... */#elsereturnlv_initialized;#endif}{ ... }voidlv_init(void){/*First initialize Garbage Collection if needed*/#ifdefLV_GC_INITLV_GC_INIT();#endif/*Do nothing if already initialized*/if(lv_initialized){LV_LOG_WARN("lv_init: already initialized");return;}{...}LV_LOG_INFO("begin");/*Initialize members of static variable lv_global */LV_GLOBAL_INIT(LV_GLOBAL_DEFAULT());lv_mem_init();lv_draw_buf_init_handlers();#ifLV_USE_SPAN!=0lv_span_stack_init();#endif#ifLV_USE_PROFILER&&LV_USE_PROFILER_BUILTINlv_profiler_builtin_config_tprofiler_config;lv_profiler_builtin_config_init(&profiler_config);lv_profiler_builtin_init(&profiler_config);/* ... */#endiflv_os_init();lv_timer_core_init();lv_fs_init();lv_layout_init();lv_anim_core_init();lv_group_init();lv_draw_init();#ifLV_USE_DRAW_SWlv_draw_sw_init();#endif#ifLV_USE_DRAW_VGLITElv_draw_vglite_init();#endif#ifLV_USE_PXP#ifLV_USE_DRAW_PXP||LV_USE_ROTATE_PXPlv_draw_pxp_init();#endif/* ... */#endif#ifLV_USE_DRAW_DAVE2Dlv_draw_dave2d_init();#endif#ifLV_USE_DRAW_SDLlv_draw_sdl_init();#endif#ifLV_USE_WINDOWSlv_windows_platform_init();#endiflv_obj_style_init();/*Initialize the screen refresh system*/lv_refr_init();#ifLV_USE_SYSMONlv_sysmon_builtin_init();#endiflv_image_decoder_init(LV_CACHE_DEF_SIZE,LV_IMAGE_HEADER_CACHE_DEF_CNT);lv_bin_decoder_init();/*LVGL built-in binary image decoder*/#ifLV_USE_DRAW_VG_LITElv_draw_vg_lite_init();#endif/*Test if the IDE has UTF-8 encoding*/constchar*txt="Á";uint8_t*txt_u8=(uint8_t*)txt;if(txt_u8[0]!=0xc3||txt_u8[1]!=0x81||txt_u8[2]!=0x00){LV_LOG_WARN("The strings have no UTF-8 encoding. Non-ASCII characters won't be displayed.");}{...}uint32_tendianness_test=0x11223344;uint8_t*endianness_test_p=(uint8_t*)&endianness_test;boolbig_endian=endianness_test_p[0]==0x11;if(big_endian){LV_ASSERT_MSG(LV_BIG_ENDIAN_SYSTEM==1,"It's a big endian system but LV_BIG_ENDIAN_SYSTEM is not enabled in lv_conf.h");}{...}else{LV_ASSERT_MSG(LV_BIG_ENDIAN_SYSTEM==0,"It's a little endian system but LV_BIG_ENDIAN_SYSTEM is enabled in lv_conf.h");}{...}#ifLV_USE_ASSERT_MEM_INTEGRITYLV_LOG_WARN("Memory integrity checks are enabled via LV_USE_ASSERT_MEM_INTEGRITY which makes LVGL much slower");#endif#ifLV_USE_ASSERT_OBJLV_LOG_WARN("Object sanity checks are enabled via LV_USE_ASSERT_OBJ which makes LVGL much slower");#endif#ifLV_USE_ASSERT_STYLELV_LOG_WARN("Style sanity checks are enabled that uses more RAM");#endif#ifLV_LOG_LEVEL==LV_LOG_LEVEL_TRACELV_LOG_WARN("Log level is set to 'Trace' which makes LVGL much slower");#endif#ifLV_USE_FS_FATFS!='\0'lv_fs_fatfs_init();#endif#ifLV_USE_FS_STDIO!='\0'lv_fs_stdio_init();#endif#ifLV_USE_FS_POSIX!='\0'lv_fs_posix_init();#endif#ifLV_USE_FS_WIN32!='\0'lv_fs_win32_init();#endif#ifLV_USE_FS_MEMFSlv_fs_memfs_init();#endif#ifLV_USE_FS_LITTLEFSlv_fs_littlefs_init();#endif#ifLV_USE_FS_ARDUINO_ESP_LITTLEFSlv_fs_arduino_esp_littlefs_init();#endif#ifLV_USE_FS_ARDUINO_SDlv_fs_arduino_sd_init();#endif#ifLV_USE_LODEPNGlv_lodepng_init();#endif#ifLV_USE_LIBPNGlv_libpng_init();#endif#ifLV_USE_TJPGDlv_tjpgd_init();#endif#ifLV_USE_LIBJPEG_TURBOlv_libjpeg_turbo_init();#endif#ifLV_USE_BMPlv_bmp_init();#endif/*Make FFMPEG last because the last converter will be checked first and *it's superior to any other *//* ... */#ifLV_USE_FFMPEGlv_ffmpeg_init();#endif#ifLV_USE_FREETYPE/*Init freetype library*/lv_freetype_init(LV_FREETYPE_CACHE_FT_GLYPH_CNT);/* ... */#endiflv_initialized=true;LV_LOG_TRACE("finished");}{ ... }voidlv_deinit(void){/*Do nothing if already deinit*/if(!lv_initialized){LV_LOG_WARN("lv_deinit: already deinit!");return;}{...}if(lv_deinit_in_progress)return;lv_deinit_in_progress=true;#ifLV_USE_SYSMONlv_sysmon_builtin_deinit();#endiflv_display_set_default(NULL);lv_cleanup_devices(LV_GLOBAL_DEFAULT());#ifLV_USE_SPAN!=0lv_span_stack_deinit();#endif#ifLV_USE_DRAW_SWlv_draw_sw_deinit();#endif#ifLV_USE_FREETYPElv_freetype_uninit();#endif#ifLV_USE_THEME_DEFAULTlv_theme_default_deinit();#endif#ifLV_USE_THEME_SIMPLElv_theme_simple_deinit();#endif#ifLV_USE_THEME_MONOlv_theme_mono_deinit();#endiflv_image_decoder_deinit();lv_refr_deinit();lv_obj_style_deinit();#ifLV_USE_PXP#ifLV_USE_DRAW_PXP||LV_USE_ROTATE_PXPlv_draw_pxp_deinit();#endif/* ... */#endif#ifLV_USE_DRAW_VGLITElv_draw_vglite_deinit();#endif#ifLV_USE_DRAW_VG_LITElv_draw_vg_lite_deinit();#endif#ifLV_USE_DRAW_SWlv_draw_sw_deinit();#endiflv_draw_deinit();lv_group_deinit();lv_anim_core_deinit();lv_layout_deinit();lv_fs_deinit();lv_timer_core_deinit();#ifLV_USE_PROFILER&&LV_USE_PROFILER_BUILTINlv_profiler_builtin_uninit();#endif#ifLV_USE_OBJ_ID&&LV_USE_OBJ_ID_BUILTINlv_objid_builtin_destroy();#endiflv_mem_deinit();lv_initialized=false;LV_LOG_INFO("lv_deinit done");#ifLV_USE_LOGlv_log_register_print_cb(NULL);#endif}{ ... }/********************** * STATIC FUNCTIONS **********************//* ... */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.