From 82cef4c155e1d24c08ca1129497a67e2489ad827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Sun, 20 Jun 2021 23:15:33 +0200 Subject: [PATCH] feat: use ledstrip to show file loading bar --- text-viewer/src/text_viewer.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/text-viewer/src/text_viewer.c b/text-viewer/src/text_viewer.c index 8283f3773c68f3d369ff50de730959e92cf19356..ff5a0554e66c7475f4ad7d24d7ebed07c31166e3 100644 --- a/text-viewer/src/text_viewer.c +++ b/text-viewer/src/text_viewer.c @@ -3,6 +3,8 @@ #include "gui.h" #include "gui_component_line.h" #include "input.h" +#include "mzapo_led_strip.h" +#include "mzapo_rgb_led.h" #include "renderer.h" #include #include @@ -63,10 +65,24 @@ file_error_t text_viewer_load_file(text_viewer_t *text_viewer) { return FILER_UNKNOWN; } - long result = fread(data, sizeof(char), fsize, file); - if (result != fsize) { - fclose(file); - return FILER_CANNOT_READ; + long read = 0; + const int perc = 5; + const int iters = 100/perc; + for (int i = 0; i < iters; i++) { + long to_read = fsize/iters; + if (i == iters - 1) { + to_read = fsize - read - 1; + } + + long result = fread(data+read, sizeof(char), to_read, file); + read += result; + + if (result != to_read) { + fclose(file); + return FILER_CANNOT_READ; + } + + ledstrip_progress_bar_step(text_viewer->pheripherals.ledstrip, i*perc); } fclose(file);