~ruther/CTU-FEE-B0B35APO-Semestral-project

af570a0d598cbabcca33970eb1ffaeffd5e20623 — František Boháček 3 years ago ec85f1d
style: fix text viewer formatting
1 files changed, 56 insertions(+), 43 deletions(-)

M text-viewer/src/text_viewer.c
M text-viewer/src/text_viewer.c => text-viewer/src/text_viewer.c +56 -43
@@ 1,31 1,29 @@
#include "text_viewer.h"
#include "direction.h"
#include "display_utils.h"
#include "gui.h"
#include "gui_component_line.h"
#include "gui_component_text.h"
#include "gui_component_text_view.h"
#include "input.h"
#include "keyboard_const.h"
#include "mzapo_led_strip.h"
#include "mzapo_rgb_led.h"
#include "renderer.h"
#include "rotation_const.h"
#include <errno.h>
#include <libgen.h>
#include <stdio.h>
#include <stdlib.h>
#include "gui_component_text.h"
#include "gui_component_text_view.h"
#include "direction.h"
#include "keyboard_const.h"
#include "rotation_const.h"
#include <string.h>
#include <libgen.h>

text_viewer_t text_viewer_create(char *path, mzapo_pheripherals_t pheripherals,
                                 logger_t *logger, font_t font) {
  text_viewer_t text_viewer = {
      .pheripherals = pheripherals,
      .multiline_text = NULL,
      .path = path,
      .logger = logger,
      .font = font
  };
  text_viewer_t text_viewer = {.pheripherals = pheripherals,
                               .multiline_text = NULL,
                               .path = path,
                               .logger = logger,
                               .font = font};

  return text_viewer;
}


@@ 67,9 65,9 @@ file_error_t text_viewer_load_file(text_viewer_t *text_viewer) {

  long read = 0;
  const int perc = 5;
  const int iters = 100/perc;
  const int iters = 100 / perc;
  for (int i = 0; i < iters; i++) {
    long to_read = fsize/iters;
    long to_read = fsize / iters;
    if (to_read == 0) {
      i = iters - 1;
    }


@@ 82,7 80,7 @@ file_error_t text_viewer_load_file(text_viewer_t *text_viewer) {
      break;
    }

    long result = fread(data+read, sizeof(char), to_read, file);
    long result = fread(data + read, sizeof(char), to_read, file);
    read += result;

    if (result != to_read) {


@@ 90,12 88,13 @@ file_error_t text_viewer_load_file(text_viewer_t *text_viewer) {
      return FILER_CANNOT_READ;
    }

    ledstrip_progress_bar_step(text_viewer->pheripherals.ledstrip, i*perc);
    ledstrip_progress_bar_step(text_viewer->pheripherals.ledstrip, i * perc);
  }

  fclose(file);

  multiline_text_t *text = gui_multiline_text_create(&text_viewer->font, WHITE_PIXEL, data);
  multiline_text_t *text =
      gui_multiline_text_create(&text_viewer->font, WHITE_PIXEL, data);
  if (text == NULL) {
    return FILER_UNKNOWN;
  }


@@ 110,23 109,27 @@ static void text_viewer_init_gui(text_viewer_t *text_viewer,
                                 commands_t *commands, renderer_t *renderer) {
  gui_t gui = gui_create(text_viewer->logger, commands, renderer,
                         &text_viewer->pheripherals);
 

  text_viewer->gui = gui;
}

static void command_handle_exit(void *state, int amount) {
  text_viewer_t *text_viewer = (text_viewer_t*)state;
  text_viewer_t *text_viewer = (text_viewer_t *)state;
  text_viewer->running = false;
}

static void text_viewer_register_commands(text_viewer_t *text_viewer, commands_t *commands) {
static void text_viewer_register_commands(text_viewer_t *text_viewer,
                                          commands_t *commands) {
  commands_register(commands, IN_KEYBOARD, 'e', command_handle_exit,
                    text_viewer);
  commands_register(commands, IN_ENCODER_CLICK, 0, command_handle_exit,
                    text_viewer);
}

static container_t *text_viewer_gui_add_name_and_line(text_viewer_t *text_viewer, window_t *window, text_t *name_text, component_t *name_and_line_components) {
static container_t *
text_viewer_gui_add_name_and_line(text_viewer_t *text_viewer, window_t *window,
                                  text_t *name_text,
                                  component_t *name_and_line_components) {
  container_t name_and_line =
      gui_group_container_create(0, 0, name_and_line_components, 2);



@@ 136,7 139,8 @@ static container_t *text_viewer_gui_add_name_and_line(text_viewer_t *text_viewer

  name_and_line.width = text_viewer->gui.size.x;
  name_and_line.height = name.height + line.height + 3;
  container_t *name_and_line_ptr = gui_window_add_container(window, name_and_line);
  container_t *name_and_line_ptr =
      gui_window_add_container(window, name_and_line);

  gui_group_container_add_component(name_and_line_ptr, name);
  gui_group_container_add_component(name_and_line_ptr, line);


@@ 144,7 148,8 @@ static container_t *text_viewer_gui_add_name_and_line(text_viewer_t *text_viewer
  return name_and_line_ptr;
}

static container_t *text_viewer_gui_add_view_container(text_viewer_t *text_viewer, container_t *name_and_line, window_t *window) {
static container_t *text_viewer_gui_add_view_container(
    text_viewer_t *text_viewer, container_t *name_and_line, window_t *window) {
  container_t text_view_container =
      gui_one_container_create(0, name_and_line->y + name_and_line->height + 2);



@@ 155,15 160,17 @@ static container_t *text_viewer_gui_add_view_container(text_viewer_t *text_viewe
  return gui_window_add_container(window, text_view_container);
}

static component_t *text_viewer_gui_add_text_view(text_viewer_t *text_viewer, container_t *view_container) {
static component_t *text_viewer_gui_add_text_view(text_viewer_t *text_viewer,
                                                  container_t *view_container) {
  component_t text_view = gui_text_view_create(
      &text_viewer->gui, text_viewer->multiline_text, 0, 0);

  return gui_one_container_set_component(view_container, text_view);
}

static void command_handler_move(void *state, direction_t direction, int amount) {
  component_t *text_view = (component_t*)state;
static void command_handler_move(void *state, direction_t direction,
                                 int amount) {
  component_t *text_view = (component_t *)state;
  if (text_view->focused) {
    int32_t x = 0;
    int32_t y = 0;


@@ 188,16 195,17 @@ static void command_handler_move_right(void *state, int amount) {
}

static void command_handler_reset(void *state, int amount) {
  gui_text_view_reset_scroll((component_t*)state);
  gui_text_view_reset_scroll((component_t *)state);
}

static void command_handler_full_scroll(void *state, int amount) {
  gui_text_view_full_scroll((component_t *)state);
}

component_t gui_text_view_create(gui_t *gui, multiline_text_t *text, int16_t x, int16_t y) {
  component_t text_view =
      gui_component_create(x, y, 1, 1, gui_text_view_render, gui_text_view_update);
component_t gui_text_view_create(gui_t *gui, multiline_text_t *text, int16_t x,
                                 int16_t y) {
  component_t text_view = gui_component_create(x, y, 1, 1, gui_text_view_render,
                                               gui_text_view_update);
  text_view.state = text;
  text_view.focusable = true;



@@ 213,8 221,8 @@ void gui_text_view_register_commands(gui_t *gui, component_t *text_view) {
                    command_handler_move_down, text_view);
  commands_register(gui->commands, IN_KEYBOARD, KEYBOARD_UP,
                    command_handler_move_up, text_view);
  commands_register(gui->commands, IN_KEYBOARD, 'r',
                    command_handler_reset, text_view);
  commands_register(gui->commands, IN_KEYBOARD, 'r', command_handler_reset,
                    text_view);
  commands_register(gui->commands, IN_KEYBOARD, 't',
                    command_handler_full_scroll, text_view);



@@ 222,9 230,8 @@ void gui_text_view_register_commands(gui_t *gui, component_t *text_view) {
                    ROTATION_ENCODER_HORIZONTAL, command_handler_move_right,
                    text_view);

  commands_register(gui->commands, IN_ENCODER_ROTATE,
                    ROTATION_ENCODER_VERTICAL, command_handler_move_down,
                    text_view);
  commands_register(gui->commands, IN_ENCODER_ROTATE, ROTATION_ENCODER_VERTICAL,
                    command_handler_move_down, text_view);

  commands_register(gui->commands, IN_ENCODER_CLICK, ROTATION_ENCODER_VERTICAL,
                    command_handler_reset, text_view);


@@ 260,8 267,7 @@ void text_viewer_start_loop(text_viewer_t *text_viewer) {

  gui_set_active_window(&text_viewer->gui, &text_viewer_window);

  gui_text_view_register_commands(&text_viewer->gui,
                                  text_view);
  gui_text_view_register_commands(&text_viewer->gui, text_view);

  text_viewer_register_commands(text_viewer, &commands);



@@ 276,11 282,18 @@ void text_viewer_start_loop(text_viewer_t *text_viewer) {
    rgb_led_update(text_viewer->pheripherals.rgb_leds);

    uint32_t lines_scrolled = gui_text_view_get_lines_scrolled(text_view);
    ledstrip_turn_on(text_viewer->pheripherals.ledstrip,
                     ((double) lines_scrolled /
                      text_viewer->multiline_text->lines_count) *
                         LED_STRIP_COUNT,
                     1);
    int32_t ledstrip_index =
        ((double)lines_scrolled /
         (text_viewer->multiline_text->lines_count -
          text_viewer->gui.size.y /
              (text_viewer->multiline_text->font->size +
               text_viewer->multiline_text->font->line_spacing))) *
        LED_STRIP_COUNT;
    if (ledstrip_index > LED_STRIP_COUNT - 1) {
      ledstrip_index = LED_STRIP_COUNT - 1;
    }

    ledstrip_turn_on(text_viewer->pheripherals.ledstrip, ledstrip_index, 1);

    if (lines_scrolled != prev_lines_scrolled) {
      rgb_led_set_timeout(text_viewer->pheripherals.rgb_leds, LED_LEFT, 0, 100,

Do not follow this link