From 564cec6af8806f73b8cfeeb27d75e3b61831ede4 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:14:34 +0200 Subject: [PATCH] feat: use pheripherals in text viewer --- text-viewer/include/gui_component_text_view.h | 8 ++++++-- text-viewer/src/gui_component_text_view.c | 5 +++++ text-viewer/src/main.c | 9 ++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/text-viewer/include/gui_component_text_view.h b/text-viewer/include/gui_component_text_view.h index ccc8774febca60217ce7b07ac2bdb45ea0a445b3..6f2ce5d71d218ca824392c897f6ebc06f29f57f2 100644 --- a/text-viewer/include/gui_component_text_view.h +++ b/text-viewer/include/gui_component_text_view.h @@ -17,9 +17,13 @@ typedef struct { display_pixel_t color; } multiline_text_t; -multiline_text_t *gui_multiline_text_create(font_t *font, display_pixel_t color, char *text); +multiline_text_t *gui_multiline_text_create(font_t *font, display_pixel_t color, + char *text); -component_t gui_text_view_create(gui_t *gui, multiline_text_t *text, int16_t x, int16_t y); +component_t gui_text_view_create(gui_t *gui, multiline_text_t *text, int16_t x, + int16_t y); + +uint16_t gui_text_view_get_lines_scrolled(component_t *component); void gui_text_view_scroll(component_t *text_view, int32_t x, int32_t y); void gui_text_view_reset_scroll(component_t *text_view); diff --git a/text-viewer/src/gui_component_text_view.c b/text-viewer/src/gui_component_text_view.c index 1bea9ee0519c23b62b537205db2d23f786e2615f..a66b9ce30522ac0148e6730ad72450fe6ae96987 100644 --- a/text-viewer/src/gui_component_text_view.c +++ b/text-viewer/src/gui_component_text_view.c @@ -81,6 +81,11 @@ void gui_text_view_full_scroll(component_t *text_view) { text_view->y = INT16_MIN; } +uint16_t gui_text_view_get_lines_scrolled(component_t *component) { + multiline_text_t *text = (multiline_text_t *)component->state; + return (-component->y) / (text->font->size + text->font->line_spacing); +} + void gui_text_view_render(container_t *container, component_t *component, gui_t *gui) { multiline_text_t *text = (multiline_text_t*)component->state; diff --git a/text-viewer/src/main.c b/text-viewer/src/main.c index eb234095ddb05327b0dbfe248be8000b9554c6a1..c885936786f91d5655da1ed549d8853ef079c109 100644 --- a/text-viewer/src/main.c +++ b/text-viewer/src/main.c @@ -1,5 +1,6 @@ #include "font.h" #include "mzapo_led_strip.h" +#include "mzapo_rgb_led.h" #include "nonblocking_io.h" #include "serialize_lock.h" #include @@ -32,17 +33,22 @@ int main(int argc, char *argv[]) { } } + mzapo_rgb_led_t rgb_leds = mzapo_create_rgb_led(); + rgb_led_clear(&rgb_leds, LED_LEFT); + rgb_led_clear(&rgb_leds, LED_RIGHT); + if (argc < 2) { logger_info(&logger, __FILE__, __FUNCTION__, __LINE__, "Not enough arguments"); + rgb_led_set_red(&rgb_leds, LED_LEFT); } display_t display = mzapo_create_display(); - mzapo_rgb_led_t rgb_leds = mzapo_create_rgb_led(); mzapo_ledstrip_t ledstrip = mzapo_create_ledstrip(); void* knobs = mzapo_get_knobs_address(); if (!mzapo_check_pheripherals(&ledstrip, &rgb_leds, &display, &knobs)) { logger_error(&logger, __FILE__, __FUNCTION__, __LINE__, "Could not initialize some of the pheripherals."); + rgb_led_set_red(&rgb_leds, LED_LEFT); } mzapo_pheripherals_t pheripherals = mzapo_pheripherals_create(&ledstrip, &rgb_leds, &display, &knobs); @@ -58,6 +64,7 @@ int main(int argc, char *argv[]) { if (error != FILER_SUCCESS) { logger_error(&logger, __FILE__, __FUNCTION__, __LINE__, "Could not load file."); return 1; + rgb_led_set_red(&rgb_leds, LED_RIGHT); } file_set_nonblocking(STDIN_FILENO, &oldstdin);