summaryrefslogtreecommitdiff
path: root/apps/plugins/maze.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-05-20 17:41:28 +0000
committerThomas Martitz <kugel@rockbox.org>2010-05-20 17:41:28 +0000
commit20e9d56ba5507021bdde898f4b0a0eb14f2af861 (patch)
tree20a1ff36d0cc0f530bc7c7648b1bca2f9127a5c8 /apps/plugins/maze.c
parent97365803d390e44155fc41657bd03a7b121956aa (diff)
downloadrockbox-20e9d56ba5507021bdde898f4b0a0eb14f2af861.tar.gz
rockbox-20e9d56ba5507021bdde898f4b0a0eb14f2af861.zip
S#10387 - Rework pluginlib actions
It changes pluginlib actions to contain only a single and simple context (and other one for remote directional buttons), consisting of 7(9) buttons: up/down/left/right, select OR short select and long select, exit and cancel (plus 2 for scrollwheel targets). This ensures contexts don't clash with other contexts and simplifies them, at the expense of reduced versatility. However, the versatility made it largely unusable due to the great number of targets. This should allow for using pluginlib actions safely for the most simple plugins (e.g. almost all demos). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26202 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/maze.c')
-rw-r--r--apps/plugins/maze.c82
1 files changed, 31 insertions, 51 deletions
diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c
index 307f14d86a..465dfa9e84 100644
--- a/apps/plugins/maze.c
+++ b/apps/plugins/maze.c
@@ -37,56 +37,35 @@ PLUGIN_HEADER
37 37
38/* key assignments */ 38/* key assignments */
39 39
40#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 40#if (CONFIG_KEYPAD == IPOD_3G_PAD)
41 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 41# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
42# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT) 42# define MAZE_NEW_PRE BUTTON_SELECT
43# define MAZE_NEW_PRE BUTTON_SELECT 43# define MAZE_QUIT BUTTON_MENU
44# define MAZE_QUIT (BUTTON_SELECT | BUTTON_MENU) 44# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
45# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY) 45# define MAZE_RIGHT BUTTON_RIGHT
46# define MAZE_RIGHT BUTTON_RIGHT 46# define MAZE_RIGHT_REPEAT BUTTON_RIGHT|BUTTON_REPEAT
47# define MAZE_LEFT BUTTON_LEFT 47# define MAZE_LEFT BUTTON_LEFT
48# define MAZE_UP BUTTON_MENU 48# define MAZE_LEFT_REPEAT BUTTON_LEFT|BUTTON_REPEAT
49# define MAZE_DOWN BUTTON_PLAY 49# define MAZE_UP BUTTON_SCROLL_BACK
50 50# define MAZE_UP_REPEAT BUTTON_SCROLL_BACK|BUTTON_REPEAT
51#elif (CONFIG_KEYPAD == IPOD_3G_PAD) 51# define MAZE_DOWN BUTTON_SCROLL_FWD
52# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT) 52# define MAZE_DOWN_REPEAT BUTTON_SCROLL_FWD|BUTTON_REPEAT
53# define MAZE_NEW_PRE BUTTON_SELECT
54# define MAZE_QUIT BUTTON_MENU
55# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
56# define MAZE_RIGHT BUTTON_RIGHT
57# define MAZE_LEFT BUTTON_LEFT
58# define MAZE_UP BUTTON_SCROLL_BACK
59# define MAZE_DOWN BUTTON_SCROLL_FWD
60
61#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
62# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
63# define MAZE_QUIT (BUTTON_HOME | BUTTON_REPEAT)
64# define MAZE_SOLVE BUTTON_SELECT
65# define MAZE_RIGHT BUTTON_RIGHT
66# define MAZE_LEFT BUTTON_LEFT
67# define MAZE_UP BUTTON_UP
68# define MAZE_DOWN BUTTON_DOWN
69
70#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
71# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
72# define MAZE_QUIT BUTTON_POWER
73# define MAZE_SOLVE BUTTON_SELECT
74# define MAZE_RIGHT BUTTON_RIGHT
75# define MAZE_LEFT BUTTON_LEFT
76# define MAZE_UP BUTTON_UP
77# define MAZE_DOWN BUTTON_DOWN
78 53
79#else 54#else
80# include "lib/pluginlib_actions.h" 55# include "lib/pluginlib_actions.h"
81# define MAZE_NEW PLA_START 56# define MAZE_NEW PLA_SELECT_REPEAT
82# define MAZE_QUIT PLA_QUIT 57# define MAZE_QUIT PLA_CANCEL
83# define MAZE_SOLVE PLA_FIRE 58# define MAZE_SOLVE PLA_SELECT_REL
84# define MAZE_RIGHT PLA_RIGHT 59# define MAZE_RIGHT PLA_RIGHT
85# define MAZE_LEFT PLA_LEFT 60# define MAZE_RIGHT_REPEAT PLA_RIGHT_REPEAT
86# define MAZE_UP PLA_UP 61# define MAZE_LEFT PLA_LEFT
87# define MAZE_DOWN PLA_DOWN 62# define MAZE_LEFT_REPEAT PLA_LEFT_REPEAT
63# define MAZE_UP PLA_UP
64# define MAZE_UP_REPEAT PLA_UP_REPEAT
65# define MAZE_DOWN PLA_DOWN
66# define MAZE_DOWN_REPEAT PLA_DOWN_REPEAT
88static const struct button_mapping *plugin_contexts[] 67static const struct button_mapping *plugin_contexts[]
89= {generic_directions, generic_actions}; 68= {pla_main_ctx};
90 69
91#endif 70#endif
92 71
@@ -546,7 +525,8 @@ enum plugin_status plugin_start(const void* parameter)
546 525
547 while(!quit) { 526 while(!quit) {
548#ifdef __PLUGINLIB_ACTIONS_H__ 527#ifdef __PLUGINLIB_ACTIONS_H__
549 button = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts, 2); 528 button = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
529 ARRAYLEN(plugin_contexts));
550#else 530#else
551 button = rb->button_get(true); 531 button = rb->button_get(true);
552#endif 532#endif
@@ -567,25 +547,25 @@ enum plugin_status plugin_start(const void* parameter)
567 maze_draw(&maze, rb->screens[i]); 547 maze_draw(&maze, rb->screens[i]);
568 break; 548 break;
569 case MAZE_UP: 549 case MAZE_UP:
570 case (MAZE_UP|BUTTON_REPEAT): 550 case MAZE_UP_REPEAT:
571 maze_move_player_up(&maze); 551 maze_move_player_up(&maze);
572 FOR_NB_SCREENS(i) 552 FOR_NB_SCREENS(i)
573 maze_draw(&maze, rb->screens[i]); 553 maze_draw(&maze, rb->screens[i]);
574 break; 554 break;
575 case MAZE_RIGHT: 555 case MAZE_RIGHT:
576 case (MAZE_RIGHT|BUTTON_REPEAT): 556 case MAZE_RIGHT_REPEAT:
577 maze_move_player_right(&maze); 557 maze_move_player_right(&maze);
578 FOR_NB_SCREENS(i) 558 FOR_NB_SCREENS(i)
579 maze_draw(&maze, rb->screens[i]); 559 maze_draw(&maze, rb->screens[i]);
580 break; 560 break;
581 case MAZE_DOWN: 561 case MAZE_DOWN:
582 case (MAZE_DOWN|BUTTON_REPEAT): 562 case MAZE_DOWN_REPEAT:
583 maze_move_player_down(&maze); 563 maze_move_player_down(&maze);
584 FOR_NB_SCREENS(i) 564 FOR_NB_SCREENS(i)
585 maze_draw(&maze, rb->screens[i]); 565 maze_draw(&maze, rb->screens[i]);
586 break; 566 break;
587 case MAZE_LEFT: 567 case MAZE_LEFT:
588 case (MAZE_LEFT|BUTTON_REPEAT): 568 case MAZE_LEFT_REPEAT:
589 maze_move_player_left(&maze); 569 maze_move_player_left(&maze);
590 FOR_NB_SCREENS(i) 570 FOR_NB_SCREENS(i)
591 maze_draw(&maze, rb->screens[i]); 571 maze_draw(&maze, rb->screens[i]);