M image-viewer/include/direction.h => image-viewer/include/direction.h +1 -1
@@ 10,6 10,6 @@ typedef enum {
RIGHT,
} direction_t;
-void direction_move_xy(direction_t direction, uint16_t *x, uint16_t *y, int16_t amount);
+void direction_move_xy(direction_t direction, int32_t *x, int32_t *y, int16_t amount);
#endif // __DIRECTION_H__
M image-viewer/include/image_viewer.h => image-viewer/include/image_viewer.h +1 -0
@@ 11,6 11,7 @@ typedef struct {
image_t image;
cursor_t cursor;
image_region_t region;
+ image_region_t image_region;
image_region_t display_region;
image_error_t error;
M image-viewer/src/cursor.c => image-viewer/src/cursor.c +1 -1
@@ 22,7 22,7 @@ void cursor_center(cursor_t *cursor, image_region_t region) {
}
bool cursor_move(cursor_t *cursor, image_region_t region, direction_t direction, int16_t amount) {
- uint16_t x = cursor->x, y = cursor->y;
+ int32_t x = cursor->x, y = cursor->y;
direction_move_xy(direction, &x, &y, amount);
if (x < region.x) {
M image-viewer/src/direction.c => image-viewer/src/direction.c +1 -1
@@ 1,6 1,6 @@
#include "direction.h"
-void direction_move_xy(direction_t direction, uint16_t *x, uint16_t *y, int16_t amount) {
+void direction_move_xy(direction_t direction, int32_t *x, int32_t *y, int16_t amount) {
switch (direction) {
case LEFT:
*x -= amount;
M image-viewer/src/image.c => image-viewer/src/image.c +2 -2
@@ 36,8 36,8 @@ image_region_t image_region_create(uint16_t x, uint16_t y, uint16_t width,
bool image_region_move_within(image_region_t *to_move, direction_t direction,
int amount, image_region_t *border) {
- uint16_t x = to_move->x;
- uint16_t y = to_move->y;
+ int32_t x = to_move->x;
+ int32_t y = to_move->y;
if (x < border->x) {
x = border->x;
M image-viewer/src/image_viewer.c => image-viewer/src/image_viewer.c +3 -1
@@ 19,13 19,15 @@ image_viewer_t image_viewer_create(char *filename, display_t *display, logger_t
.region = image_region_create(0, 0, 0, 0),
.logger = logger,
.display_region = image_region_create(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT),
+ .image_region = image_region_create(0, 0, 0, 0),
.scale_factor = 0
};
viewer.error = image_loader_load(&viewer.image);
if (viewer.error == IMERR_SUCCESS) {
- viewer.region = image_region_create(0, 0, viewer.image.width, viewer.image.height);
+ viewer.region = viewer.image_region =
+ image_region_create(0, 0, viewer.image.width, viewer.image.height);
cursor_center(&viewer.cursor, viewer.display_region);
}