summaryrefslogtreecommitdiff
path: root/apps/plugins/maze.c
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2022-12-18 21:13:15 +0100
committerChristian Soffke <christian.soffke@gmail.com>2022-12-29 04:39:22 +0100
commitfaa2cb99429214de745bbc3e64e48a7432db51ae (patch)
treede2967e0e8237cb86422cd82488e110b97ff831e /apps/plugins/maze.c
parent52f59f637dfcb24900b30ed52c1d7725eab93364 (diff)
downloadrockbox-faa2cb99429214de745bbc3e64e48a7432db51ae.tar.gz
rockbox-faa2cb99429214de745bbc3e64e48a7432db51ae.zip
plugins: Improve usability of iPod keymaps
- Reduce need to press multiple buttons at the same time to quit a plugin - Have "Menu" be default way to quit plugins or to access plugin menu - Fall back to (Long) "Select" or Long "Menu" in cases where Menu button isn't available (e.g. in ImageViewer and many games) out of scope: boomshine, lua_scripts, Rockpaint, Doom, Duke3D, Pacbox, Quake, Sgt-Puzzles, Wolf3D, XWorld, Minesweeper, Pixel Painter, Spacerocks Change-Id: I6d4dc7174695fe4b8ee9cbaccb21bdbfe6af5c48
Diffstat (limited to 'apps/plugins/maze.c')
-rw-r--r--apps/plugins/maze.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c
index 8c951ebdcc..ebb83ab15c 100644
--- a/apps/plugins/maze.c
+++ b/apps/plugins/maze.c
@@ -37,11 +37,14 @@
37 37
38/* key assignments */ 38/* key assignments */
39 39
40#if (CONFIG_KEYPAD == IPOD_3G_PAD) 40#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
41 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
42 || (CONFIG_KEYPAD == IPOD_4G_PAD)
41# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT) 43# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
42# define MAZE_NEW_PRE BUTTON_SELECT 44# define MAZE_NEW_PRE BUTTON_SELECT
43# define MAZE_QUIT BUTTON_MENU 45# define MAZE_QUIT BUTTON_MENU
44# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY) 46# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_REL)
47# define MAZE_SOLVE_PRE BUTTON_SELECT
45# define MAZE_RIGHT BUTTON_RIGHT 48# define MAZE_RIGHT BUTTON_RIGHT
46# define MAZE_RIGHT_REPEAT BUTTON_RIGHT|BUTTON_REPEAT 49# define MAZE_RIGHT_REPEAT BUTTON_RIGHT|BUTTON_REPEAT
47# define MAZE_LEFT BUTTON_LEFT 50# define MAZE_LEFT BUTTON_LEFT
@@ -491,7 +494,7 @@ static void maze_move_player_left(struct maze* maze)
491enum plugin_status plugin_start(const void* parameter) 494enum plugin_status plugin_start(const void* parameter)
492{ 495{
493 int button; 496 int button;
494#ifdef MAZE_NEW_PRE 497#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE)
495 int lastbutton = BUTTON_NONE; 498 int lastbutton = BUTTON_NONE;
496#endif 499#endif
497 int quit = 0; 500 int quit = 0;
@@ -544,6 +547,10 @@ enum plugin_status plugin_start(const void* parameter)
544 maze_draw(&maze, rb->screens[i]); 547 maze_draw(&maze, rb->screens[i]);
545 break; 548 break;
546 case MAZE_SOLVE: 549 case MAZE_SOLVE:
550#ifdef MAZE_SOLVE_PRE
551 if(lastbutton != MAZE_SOLVE_PRE)
552 break;
553#endif
547 maze_solve(&maze); 554 maze_solve(&maze);
548 FOR_NB_SCREENS(i) 555 FOR_NB_SCREENS(i)
549 maze_draw(&maze, rb->screens[i]); 556 maze_draw(&maze, rb->screens[i]);
@@ -583,7 +590,7 @@ enum plugin_status plugin_start(const void* parameter)
583 } 590 }
584 break; 591 break;
585 } 592 }
586#ifdef MAZE_NEW_PRE 593#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE)
587 if( button != BUTTON_NONE ) 594 if( button != BUTTON_NONE )
588 lastbutton = button; 595 lastbutton = button;
589#endif 596#endif