#if defined(EEZ_FOR_LVGL) #include #endif #include "ui.h" #include "screens.h" #include "images.h" #include "actions.h" #include "vars.h" #if defined(EEZ_FOR_LVGL) void ui_init() { eez_flow_init(assets, sizeof(assets), (lv_obj_t **)&objects, sizeof(objects), images, sizeof(images), actions); init_vars(); } void ui_tick() { eez_flow_tick(); tick_vars(); tick_screen(g_currentScreen); } #else static int16_t currentScreen = -1; static lv_obj_t *getLvglObjectFromIndex(int32_t index) { if (index == -1) { return 0; } return ((lv_obj_t **)&objects)[index]; } static const void *getLvglImageByName(const char *name) { for (size_t imageIndex = 0; imageIndex < sizeof(images) / sizeof(ext_img_desc_t); imageIndex++) { if (strcmp(images[imageIndex].name, name) == 0) { return images[imageIndex].img_dsc; } } return 0; } void loadScreen(enum ScreensEnum screenId) { currentScreen = screenId - 1; lv_obj_t *screen = getLvglObjectFromIndex(currentScreen); lv_scr_load_anim(screen, LV_SCR_LOAD_ANIM_FADE_IN, 200, 0, false); } void ui_init() { create_screens(); loadScreen(SCREEN_ID_MAIN); } void ui_tick() { tick_screen(currentScreen); } #endif