diff options
author | Christian Soffke <christian.soffke@gmail.com> | 2022-12-18 21:13:15 +0100 |
---|---|---|
committer | Christian Soffke <christian.soffke@gmail.com> | 2022-12-29 04:39:22 +0100 |
commit | faa2cb99429214de745bbc3e64e48a7432db51ae (patch) | |
tree | de2967e0e8237cb86422cd82488e110b97ff831e /apps/plugins/maze.c | |
parent | 52f59f637dfcb24900b30ed52c1d7725eab93364 (diff) | |
download | rockbox-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.c | 15 |
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) | |||
491 | enum plugin_status plugin_start(const void* parameter) | 494 | enum 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 |