Files
buildroot/package/miyoo/sdlbook/0002-add-custom-Input-mapping-with-header.patch
Apaczer 59d7586ca6 BOARD: separate miyoo packages + concentrate RetroArch/libretro (#129)
MENU->Target packages ---> Miyoo Packages ---> ...
2024-10-15 20:07:21 +02:00

254 lines
6.8 KiB
Diff

From 4126f952f021b7e8fca7880e072092fcb3812f29 Mon Sep 17 00:00:00 2001
From: Apaczer <94932128+Apaczer@users.noreply.github.com>
Date: Sat, 23 Mar 2024 16:30:20 +0100
Subject: [PATCH 2/7] add custom Input mapping with header
---
inputmap.h | 40 ++++++++++++++++++++++++++++++
sdlbook.c | 73 +++++++++++++++++++++++++++---------------------------
2 files changed, 77 insertions(+), 36 deletions(-)
create mode 100644 inputmap.h
diff --git a/inputmap.h b/inputmap.h
new file mode 100644
index 0000000..0210a24
--- /dev/null
+++ b/inputmap.h
@@ -0,0 +1,40 @@
+#ifndef INPUTMAP_H
+#define INPUTMAP_H
+
+#define INPUT_UP SDLK_UP
+#define INPUT_DOWN SDLK_DOWN
+#define INPUT_LEFT SDLK_LEFT
+#define INPUT_RIGHT SDLK_RIGHT
+#define INPUT_LMOD SDLK_LCTRL
+#define INPUT_RMOD SDLK_RCTRL
+#define INPUT_PGDOWN SDLK_PAGEDOWN
+#define INPUT_PGUP SDLK_PAGEUP
+#define INPUT_ZOOMIN SDLK_KP_PLUS
+#define INPUT_ZOOMOUT SDLK_KP_MINUS
+#define INPUT_PAGEN SDLK_g
+#define INPUT_CLEAR SDLK_c
+#define INPUT_CANCEL SDLK_BACKSPACE
+#define INPUT_CONFIRM SDLK_RETURN
+#define INPUT_EXIT SDLK_ESCAPE
+#define INPUT_QUIT SDLK_q
+#define INPUT_HELP SDLK_F1
+
+#define STR_UP "UP"
+#define STR_DOWN "DOWN"
+#define STR_LEFT "LEFT"
+#define STR_RIGHT "RIGHT"
+#define STR_LMOD "LCTRL"
+#define STR_RMOD "RCTRL"
+#define STR_PGDOWN "PAGE_DOWN"
+#define STR_PGUP "PAGE_UP"
+#define STR_ZOOMIN "NUM+"
+#define STR_ZOOMOUT "NUM-"
+#define STR_PAGEN "G"
+#define STR_CLEAR "C"
+#define STR_CANCEL "BACKSPACE"
+#define STR_CONFIRM "RETURN"
+#define STR_EXIT "ESC"
+#define STR_QUIT "Q"
+#define STR_HELP "F1"
+
+#endif
diff --git a/sdlbook.c b/sdlbook.c
index d608aba..79b77f3 100644
--- a/sdlbook.c
+++ b/sdlbook.c
@@ -16,6 +16,7 @@
#include <mupdf/fitz.h>
#include "ezsdl.h"
#include "topaz.h"
+#include "inputmap.h"
#pragma RcB2 LINK "-ldjvulibre" "-lSSL" "-lmupdf"
@@ -550,13 +551,13 @@ static int change_scroll_h(int incr) {
#define HELP_TEXT \
"HELP SCREEN - HIT ANY KEY TO EXIT\n" \
- "UP, DOWN ARROW - SCROLL 32 PIX\n" \
- "CTRL + UP, DOWN ARROW - SCROLL 96 PIX\n" \
- "PAGE_UP/DOWN - SCROLL ONE PAGE\n" \
- "KEYPAD +/- OR CTRL-WHEEL - ZOOM\n" \
- "G - ENTER PAGE NUMBER\n" \
- "Q/ESC - QUIT\n" \
- "F1 - SHOW HELP SCREEN\n"
+ STR_UP ", " STR_DOWN " - SCROLL 32 PIX\n" \
+ STR_LMOD "/" STR_RMOD " + " STR_UP "/" STR_DOWN " - SCROLL 96 PIX\n" \
+ STR_PGUP "/" STR_PGDOWN " - SCROLL ONE PAGE\n" \
+ STR_ZOOMIN "/" STR_ZOOMOUT " OR " STR_LMOD "/" STR_RMOD " + WHEEL - ZOOM\n" \
+ STR_PAGEN " - ENTER PAGE NUMBER\n" \
+ STR_QUIT "/" STR_EXIT " - QUIT\n" \
+ STR_HELP " - SHOW HELP SCREEN\n"
static int get_return_count(const char* text) {
int count = 0;
@@ -598,14 +599,14 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
case EV_QUIT:
case EV_KEYUP:
switch(event.which) {
- case SDLK_BACKSPACE: case SDLK_LEFT:
+ case INPUT_CANCEL: case INPUT_LEFT:
if(flags == INPUT_LOOP_RET)
goto out;
if(p > result) p--;
p_n = *(p - 1);
*p = 0;
goto drawit;
- case SDLK_RIGHT:
+ case INPUT_RIGHT:
if(flags == INPUT_LOOP_RET)
goto out;
if(p - result < 20) {
@@ -615,12 +616,12 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
goto drawit;
} else
break;
- case SDLK_RETURN: case SDLK_ESCAPE: case SDLK_g:
+ case INPUT_CONFIRM: case INPUT_EXIT: case INPUT_PAGEN:
out:;
*p = 0;
ezsdl_clear();
return;
- case SDLK_UP:
+ case INPUT_UP:
if(flags == INPUT_LOOP_RET)
goto out;
p_n = *(p - 1);
@@ -633,7 +634,7 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
goto drawit;
} else
break;
- case SDLK_DOWN:
+ case INPUT_DOWN:
if(flags == INPUT_LOOP_RET)
goto out;
p_n = *(p - 1);
@@ -821,51 +822,51 @@ int main(int argc, char **argv) {
goto dun_goofed;
case EV_KEYDOWN:
switch(event.which) {
- case SDLK_LCTRL:
+ case INPUT_LMOD:
left_ctrl_pressed = 1;
break;
- case SDLK_RCTRL:
+ case INPUT_RMOD:
right_ctrl_pressed = 1;
break;
- case SDLK_q:
+ case INPUT_QUIT:
goto dun_goofed;
- case SDLK_KP_PLUS:
+ case INPUT_ZOOMIN:
need_redraw = change_scale(+10);
break;
- case SDLK_KP_MINUS:
+ case INPUT_ZOOMOUT:
need_redraw = change_scale(-10);
break;
- case SDLK_PAGEDOWN:
+ case INPUT_PGDOWN:
scroll_dist_v += page_dims.h;
break;
- case SDLK_PAGEUP:
+ case INPUT_PGUP:
scroll_dist_v -= page_dims.h;
break;
- case SDLK_UP:
+ case INPUT_UP:
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
scroll_dist_v += -96;
else
scroll_dist_v += -32;
break;
- case SDLK_DOWN:
+ case INPUT_DOWN:
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
scroll_dist_v += +96;
else
scroll_dist_v += +32;
break;
- case SDLK_LEFT:
+ case INPUT_LEFT:
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
need_redraw = change_scroll_h(-96);
else
need_redraw = change_scroll_h(-32);
break;
- case SDLK_RIGHT:
+ case INPUT_RIGHT:
if((event.mod & KMOD_LCTRL) || (event.mod & KMOD_RCTRL))
need_redraw = change_scroll_h(+96);
else
need_redraw = change_scroll_h(+32);
break;
- case SDLK_RETURN:
+ case INPUT_CONFIRM:
if((event.mod & KMOD_LALT) ||
(event.mod & KMOD_RALT)) {
ezsdl_toggle_fullscreen();
@@ -880,21 +881,21 @@ int main(int argc, char **argv) {
break;
case EV_KEYUP:
switch(event.which) {
- case SDLK_UP:
- case SDLK_DOWN:
- case SDLK_LEFT:
- case SDLK_RIGHT:
- case SDLK_PAGEUP:
- case SDLK_PAGEDOWN:
+ case INPUT_UP:
+ case INPUT_DOWN:
+ case INPUT_LEFT:
+ case INPUT_RIGHT:
+ case INPUT_PGUP:
+ case INPUT_PGDOWN:
need_redraw = 1;
break;
- case SDLK_LCTRL:
+ case INPUT_LMOD:
left_ctrl_pressed = 0;
break;
- case SDLK_RCTRL:
+ case INPUT_RMOD:
right_ctrl_pressed = 0;
break;
- case SDLK_F1:
+ case INPUT_HELP:
{
char buf[32];
buf[0] = 0;
@@ -903,7 +904,7 @@ int main(int argc, char **argv) {
}
break;
- case SDLK_g:
+ case INPUT_PAGEN:
{
char buf[32];
buf[0] = 0;
@@ -912,12 +913,12 @@ int main(int argc, char **argv) {
else need_redraw = 1;
}
break;
- case SDLK_c:
+ case INPUT_CLEAR:
ezsdl_clear();
ezsdl_refresh();
need_redraw = 1;
break;
- case SDLK_ESCAPE:
+ case INPUT_EXIT:
goto dun_goofed;
default:
break;
--
2.34.1