Skip to content

Commit

Permalink
PACKAGE/DEFCONFIG: add sdlbook app (#99)
Browse files Browse the repository at this point in the history
with miyoo&optimization changes
  • Loading branch information
Apaczer committed May 6, 2024
1 parent f5bdd43 commit 1852510
Show file tree
Hide file tree
Showing 16 changed files with 802 additions and 0 deletions.
Empty file added board/miyoo/main/books/.gitkeep
Empty file.
5 changes: 5 additions & 0 deletions board/miyoo/main/gmenu2x/sections/applications/sdlbook
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
title=SDLbook
description=DJVU/PDF/EPUB viewer & more
exec=/usr/bin/sdlbook
manual=/mnt/manuals/sdlbook.man.txt
selectordir=/mnt/books
15 changes: 15 additions & 0 deletions board/miyoo/main/manuals/sdlbook.man.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
SDLbook hotkeys:
-----------------------
A = accept
B = cancel
UP = scroll up
DOWN = scroll down
L2/R2+UP = scroll fast upwards
L2/R2+DOWN = scroll fast downwards
L1 = scroll one page up
R1 = scroll one page down
X = zoom in page
Y = zoom out page
SELECT = jump to inserted page number
RESET = quit app
START = show HELP screen
2 changes: 2 additions & 0 deletions board/miyoo/scripts/genimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ convert board/miyoo/miyoo-splash.png -pointsize 12 -fill white -annotate +10+230
# Workaround for build apss and configs being placed in /usr/ after img generation (as we use MAIN)
test -d "${BINARIES_DIR}/gmenu2x" && cp -r "${BINARIES_DIR}/gmenu2x/" "${BINARIES_DIR}/main/"
test -d "${BINARIES_DIR}/emus" && cp -r "${BINARIES_DIR}/emus/" "${BINARIES_DIR}/main/"
test -d "${BINARIES_DIR}/apps" && cp -r "${BINARIES_DIR}/apps/" "${BINARIES_DIR}/main/"
test -d "${BINARIES_DIR}/games" && cp -r "${BINARIES_DIR}/games/" "${BINARIES_DIR}/main/"
if test -d "${BINARIES_DIR}/retroarch"; then
rsync -avzh "${BINARIES_DIR}/retroarch/" "${BINARIES_DIR}/main/.retroarch/"
## Generate list of cores to be used
Expand Down
1 change: 1 addition & 0 deletions configs/miyoo_musl_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ BR2_PACKAGE_MIYOO_CTL=y
BR2_PACKAGE_FBCAT=y
BR2_PACKAGE_ST_SDL=y
BR2_PACKAGE_COMMANDER=y
BR2_PACKAGE_SDLBOOK=y
BR2_PACKAGE_OPKG=y
BR2_PACKAGE_OPKG_UTILS=y
BR2_PACKAGE_DIALOG=y
Expand Down
1 change: 1 addition & 0 deletions configs/miyoo_uclibc_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ BR2_PACKAGE_MIYOO_CTL=y
BR2_PACKAGE_FBCAT=y
BR2_PACKAGE_ST_SDL=y
BR2_PACKAGE_COMMANDER=y
BR2_PACKAGE_SDLBOOK=y
BR2_PACKAGE_OPKG=y
BR2_PACKAGE_OPKG_UTILS=y
BR2_PACKAGE_DIALOG=y
Expand Down
1 change: 1 addition & 0 deletions package/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -2219,6 +2219,7 @@ menu "Miscellaneous"
source "package/fbcat/Config.in"
source "package/st-sdl/Config.in"
source "package/commander/Config.in"
source "package/sdlbook/Config.in"

endmenu

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
From 5ed7374aa765b8e0a5380590efcefa5c6ddcdb06 Mon Sep 17 00:00:00 2001
From: Apaczer <94932128+Apaczer@users.noreply.github.com>
Date: Wed, 27 Mar 2024 21:26:08 +0100
Subject: [PATCH 1/7] mod input_loop() char result stack with arrow keys

---
sdlbook.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 47 insertions(+), 5 deletions(-)

diff --git a/sdlbook.c b/sdlbook.c
index 33a2f29..d608aba 100644
--- a/sdlbook.c
+++ b/sdlbook.c
@@ -589,6 +589,7 @@ static void input_loop(const char* title, char *result, enum input_flags flags)
ezsdl_update_region(0, 0, ezsdl_get_width(), MIN(desired_height, ezsdl_get_height()));
char* p = result;
*p = 0;
+ int p_n = 48;
struct event event;
while(1) {
enum eventtypes e;
@@ -597,20 +598,61 @@ 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_BACKSPACE: case SDLK_LEFT:
+ if(flags == INPUT_LOOP_RET)
+ goto out;
if(p > result) p--;
+ p_n = *(p - 1);
*p = 0;
goto drawit;
- case SDLK_RETURN: case SDLK_ESCAPE:
+ case SDLK_RIGHT:
+ if(flags == INPUT_LOOP_RET)
+ goto out;
+ if(p - result < 20) {
+ p_n = 48;
+ *(p++) = p_n;
+ *p = 0;
+ goto drawit;
+ } else
+ break;
+ case SDLK_RETURN: case SDLK_ESCAPE: case SDLK_g:
out:;
*p = 0;
ezsdl_clear();
return;
+ case SDLK_UP:
+ if(flags == INPUT_LOOP_RET)
+ goto out;
+ p_n = *(p - 1);
+ if(p_n < 48 || p_n > 57) p_n = 48;
+ if(p >= result && p_n < 57 && (p - result < 20)) {
+ if (p > result) p--;
+ p_n++;
+ *(p++) = p_n;
+ *p = 0;
+ goto drawit;
+ } else
+ break;
+ case SDLK_DOWN:
+ if(flags == INPUT_LOOP_RET)
+ goto out;
+ p_n = *(p - 1);
+ if(p_n < 48 || p_n > 57) p_n = 48;
+ if(p >= result && p_n >= 48 && (p - result < 20)) {
+ if (p_n == 48 ) p_n++;
+ if (p > result) p--;
+ p_n--;
+ *(p++) = p_n;
+ *p = 0;
+ goto drawit;
+ } else
+ break;
default:
if(flags == INPUT_LOOP_RET)
goto out;
- else if(flags == INPUT_LOOP_NUMERIC && isdigit(event.which) && (p - result < 20)) {
- *(p++) = event.which;
+ else if(flags == INPUT_LOOP_NUMERIC && (p - result < 20)) {
+ if(isdigit(event.which)) *(p++) = event.which;
+ else if (event.which == 275) *(p++) = 48;
*p = 0;
}
drawit:
@@ -865,7 +907,7 @@ int main(int argc, char **argv) {
{
char buf[32];
buf[0] = 0;
- input_loop("enter page no", buf, INPUT_LOOP_NUMERIC);
+ input_loop("Enter page No.: (use number/arrow keys)", buf, INPUT_LOOP_NUMERIC);
if(*buf) need_redraw = set_page(atoi(buf));
else need_redraw = 1;
}
--
2.34.1

Loading

0 comments on commit 1852510

Please sign in to comment.