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

ref: 7936c07b4100895c412e6068e5905ac0c6e44938 CTU-FEE-B0B35APO-Semestral-project/image-viewer/include/image_viewer.h -rw-r--r-- 1.4 KiB
7936c07b — František Boháček feat: add text zoom to file browser 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifndef __IMAGE_VIEWER_H__
#define __IMAGE_VIEWER_H__

#include "cursor.h"
#include "display_utils.h"
#include "image.h"
#include "logger.h"
#include "mzapo_led_strip.h"
#include <stdbool.h>

typedef enum {
  MOD_CURSOR,
  MOD_IMAGE,
  MOD_COUNT,
} image_viewer_mode_t;

typedef struct {
  cursor_t cursor;

  image_t image;

  image_zoom_t scale;
  image_region_t image_region;
  image_region_t display_region;

  image_viewer_mode_t mode;

  display_t *display;
  bool running;

  mzapo_ledstrip_t ledstrip;

  logger_t *logger;
  image_error_t error;
} image_viewer_t;

/**
 * @brief Create image viewer
 *
 * @param filename file with image
 * @param display display to show image on
 * @param logger logger to log to
 * @param ledstrip ledstrip to show loading progress and position in image
 * @return image_viewer_t
 */
image_viewer_t image_viewer_create(char *filename, display_t *display,
                                   logger_t *logger, mzapo_ledstrip_t ledstrip);

/**
 * @brief Clean up image viewer data
 *
 * @param viewer
 */
void image_viewer_destroy(image_viewer_t *viewer);

/**
 * @brief Start render loop with handling input
 *
 * @param viewer
 * @param reg_knobs_base base address of reg knobs
 */
void image_viewer_start_loop(image_viewer_t *viewer, void *reg_knobs_base);

/**
 * @brief Display image on display
 *
 * @param viewer
 */
void image_viewer_display_image(image_viewer_t *viewer);

#endif // __IMAGE_VIEWER_H__
Do not follow this link