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

42b84ce8dc34cbb310beff84991a97669572fa7f — František Boháček 4 years ago 09a0ff6
feat: add image viewer mode indicator
3 files changed, 17 insertions(+), 3 deletions(-)

M image-viewer/include/image_viewer.h
M image-viewer/src/image_viewer.c
M image-viewer/src/main.c
M image-viewer/include/image_viewer.h => image-viewer/include/image_viewer.h +4 -1
@@ 6,6 6,7 @@
#include "image.h"
#include "logger.h"
#include "mzapo_led_strip.h"
#include "mzapo_rgb_led.h"
#include <stdbool.h>

typedef enum {


@@ 29,6 30,7 @@ typedef struct {
  bool running;

  mzapo_ledstrip_t ledstrip;
  mzapo_rgb_led_t rgb_leds;

  logger_t *logger;
  image_error_t error;


@@ 44,7 46,8 @@ typedef struct {
 * @return image_viewer_t
 */
image_viewer_t image_viewer_create(char *filename, display_t *display,
                                   logger_t *logger, mzapo_ledstrip_t ledstrip);
                                   logger_t *logger, mzapo_ledstrip_t ledstrip,
                                   mzapo_rgb_led_t rgb_leds);

/**
 * @brief Clean up image viewer data

M image-viewer/src/image_viewer.c => image-viewer/src/image_viewer.c +12 -1
@@ 8,6 8,7 @@
#include "image_loader.h"
#include "coords.h"
#include "mzapo_led_strip.h"
#include "mzapo_rgb_led.h"
#include <time.h>
#include <stdlib.h>



@@ 22,7 23,7 @@ void loader_callback(void *state, double p) {
  ledstrip_progress_bar_step(ledstrip, p * LED_STRIP_COUNT);
}

image_viewer_t image_viewer_create(char *filename, display_t *display, logger_t *logger, mzapo_ledstrip_t ledstrip) {
image_viewer_t image_viewer_create(char *filename, display_t *display, logger_t *logger, mzapo_ledstrip_t ledstrip, mzapo_rgb_led_t rgb_leds) {

  image_viewer_t viewer = {
    .display = display,


@@ 32,6 33,7 @@ image_viewer_t image_viewer_create(char *filename, display_t *display, logger_t 
    .display_region = image_region_create(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT),
    .image_region = image_region_create(0, 0, 0, 0),
    .ledstrip = ledstrip,
    .rgb_leds = rgb_leds
  };

  viewer.error = image_loader_load(&viewer.image, loader_callback, &ledstrip);


@@ 236,12 238,21 @@ void command_handler_change_mode(void *data, int amount) {
  logger_debug(viewer->logger, __FILE__, __FUNCTION__, __LINE__,
               "Changing mode");


  uint8_t mode = viewer->mode;
  mode++;
  if (mode >= MOD_COUNT) {
    mode %= MOD_COUNT;
  }

  if (mode == MOD_IMAGE) {
    rgb_led_set_green(&viewer->rgb_leds, LED_LEFT);
    rgb_led_set_green(&viewer->rgb_leds, LED_RIGHT);
  } else {
    rgb_led_clear(&viewer->rgb_leds, LED_LEFT);
    rgb_led_clear(&viewer->rgb_leds, LED_RIGHT);
  }

  viewer->mode = mode;
}


M image-viewer/src/main.c => image-viewer/src/main.c +1 -1
@@ 77,7 77,7 @@ int main(int argc, char *argv[])

  rgb_led_set_green(&led, LED_LEFT);
  rgb_led_set_green(&led, LED_RIGHT);
  image_viewer_t viewer = image_viewer_create(argv[1], &display, &logger, ledstrip);
  image_viewer_t viewer = image_viewer_create(argv[1], &display, &logger, ledstrip, led);
  rgb_led_clear(&led, LED_LEFT);
  rgb_led_clear(&led, LED_RIGHT);