From a7738a63befd65904972fae3961eac070fba1a63 Mon Sep 17 00:00:00 2001 From: Timo Niemann Date: Wed, 1 Jul 2026 15:34:38 +0200 Subject: [PATCH] added logging to current loaded image --- main/lcd/ui_image_browser.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/main/lcd/ui_image_browser.c b/main/lcd/ui_image_browser.c index ec3feba..f955e05 100644 --- a/main/lcd/ui_image_browser.c +++ b/main/lcd/ui_image_browser.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include "lvgl.h" @@ -24,13 +25,30 @@ static lv_obj_t *image_tileview = NULL; static lv_timer_t *image_slideshow_timer = NULL; static size_t image_browser_image_count = 0; static size_t image_browser_current_index = 0; +static const char **image_browser_names = NULL; +static size_t image_browser_last_logged_index = SIZE_MAX; static const char *TAG = "ui"; +static void ui_image_browser_log_current(void){ + if(image_browser_current_index == image_browser_last_logged_index) return; + image_browser_last_logged_index = image_browser_current_index; + + const char *filename = "?"; + if(image_browser_names != NULL && image_browser_current_index < image_browser_image_count){ + filename = image_browser_names[image_browser_current_index]; + } + ui_log_appendf("Show %u/%u: %s", + (unsigned int)(image_browser_current_index + 1), + (unsigned int)image_browser_image_count, + filename); +} + static void ui_image_browser_set_index(size_t image_index, lv_anim_enable_t anim_en){ if(image_tileview == NULL || image_browser_image_count == 0) return; image_browser_current_index = image_index % image_browser_image_count; lv_tileview_set_tile_by_index(image_tileview, 0, (uint32_t)image_browser_current_index, anim_en); + ui_image_browser_log_current(); } static void ui_image_slideshow_timer_cb(lv_timer_t *timer){ @@ -52,6 +70,7 @@ static void ui_image_browser_value_changed_event_cb(lv_event_t *event){ if(active_tile == NULL) return; image_browser_current_index = (size_t)(uintptr_t)lv_obj_get_user_data(active_tile); + ui_image_browser_log_current(); } static bool ui_char_equals_ignore_case(char left_char, char right_char){ @@ -250,6 +269,11 @@ static void ui_create_image_tile(lv_obj_t *tile, const char *filename, size_t im lv_obj_set_width(error_label, LV_PCT(86)); lv_obj_align(error_label, LV_ALIGN_CENTER, 0, -18); } + else{ + ui_log_appendf("Loaded %u/%u: %s (%dx%d)", + (unsigned int)(image_index + 1), (unsigned int)image_count, filename, + (int)lv_image_get_src_width(image), (int)lv_image_get_src_height(image)); + } } static void ui_create_image_browser_tiles(size_t image_count){ @@ -262,6 +286,7 @@ static void ui_create_image_browser_tiles(size_t image_count){ lv_obj_t *tile = lv_tileview_add_tile(image_tileview, 0, (uint32_t)image_index, ui_get_tile_directions(image_index, image_count)); lv_obj_set_user_data(tile, (void *)(uintptr_t)image_index); + if(image_browser_names != NULL) image_browser_names[image_index] = filename; ui_create_image_tile(tile, filename, image_index, image_count); image_index++; } @@ -287,6 +312,7 @@ void ui_image_browser_build_view(lv_obj_t *screen){ lv_obj_set_scrollbar_mode(image_tileview, LV_SCROLLBAR_MODE_OFF); lv_obj_add_event_cb(image_tileview, ui_image_browser_value_changed_event_cb, LV_EVENT_VALUE_CHANGED, NULL); image_browser_image_count = image_count; + image_browser_names = calloc(image_count, sizeof(const char *)); ui_create_image_browser_tiles(image_count); ui_image_browser_set_index(0, LV_ANIM_OFF); @@ -299,9 +325,12 @@ void ui_image_browser_reset(void){ image_slideshow_timer = NULL; } + free((void *)image_browser_names); + image_browser_names = NULL; image_tileview = NULL; image_browser_image_count = 0; image_browser_current_index = 0; + image_browser_last_logged_index = SIZE_MAX; } size_t ui_image_browser_get_image_count(void){