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);