summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorAntoine Cellerier <dionoea@videolan.org>2007-06-29 19:30:35 +0000
committerAntoine Cellerier <dionoea@videolan.org>2007-06-29 19:30:35 +0000
commitcf089d3910fe9ef158ff913931dc86d13257639c (patch)
tree98ee83ddfe9a1fe6c65c68e0b95addb6461628f1 /apps/plugins
parentda5910eac0629c4ac38c7967160e455ae6db9915 (diff)
downloadrockbox-cf089d3910fe9ef158ff913931dc86d13257639c.zip
rockbox-cf089d3910fe9ef158ff913931dc86d13257639c.tar.gz
rockbox-cf089d3910fe9ef158ff913931dc86d13257639c.tar.bz2
rockbox-cf089d3910fe9ef158ff913931dc86d13257639c.tar.xz
* FS #7373 - Maze: Button changes for iPods
* Use black as foreground color git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13735 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/maze.c59
1 files changed, 47 insertions, 12 deletions
diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c
index e558ea1..63ccb62 100644
--- a/apps/plugins/maze.c
+++ b/apps/plugins/maze.c
@@ -33,19 +33,36 @@
PLUGIN_HEADER
-#define MAZE_NEW PLA_START
-#define MAZE_QUIT PLA_QUIT
-#define MAZE_SOLVE PLA_FIRE
+#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \
+ (CONFIG_KEYPAD == IPOD_3G_PAD)
+# undef __PLUGINLIB_ACTIONS_H__
+# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
+# define MAZE_NEW_PRE BUTTON_SELECT
+# define MAZE_QUIT (BUTTON_SELECT | BUTTON_MENU)
+# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
+# define MAZE_RIGHT BUTTON_RIGHT
+# define MAZE_LEFT BUTTON_LEFT
+# define MAZE_UP BUTTON_MENU
+# define MAZE_DOWN BUTTON_PLAY
+# define MAZE_RRIGHT (BUTTON_RIGHT | BUTTON_REPEAT)
+# define MAZE_RLEFT (BUTTON_LEFT | BUTTON_REPEAT)
+# define MAZE_RUP (BUTTON_MENU | BUTTON_REPEAT)
+# define MAZE_RDOWN (BUTTON_PLAY | BUTTON_REPEAT)
-#define MAZE_RIGHT PLA_RIGHT
-#define MAZE_LEFT PLA_LEFT
-#define MAZE_UP PLA_UP
-#define MAZE_DOWN PLA_DOWN
-#define MAZE_RRIGHT PLA_RIGHT_REPEAT
-#define MAZE_RLEFT PLA_LEFT_REPEAT
-#define MAZE_RUP PLA_UP_REPEAT
-#define MAZE_RDOWN PLA_DOWN_REPEAT
+#else
+# define MAZE_NEW PLA_START
+# define MAZE_QUIT PLA_QUIT
+# define MAZE_SOLVE PLA_FIRE
+# define MAZE_RIGHT PLA_RIGHT
+# define MAZE_LEFT PLA_LEFT
+# define MAZE_UP PLA_UP
+# define MAZE_DOWN PLA_DOWN
+# define MAZE_RRIGHT PLA_RIGHT_REPEAT
+# define MAZE_RLEFT PLA_LEFT_REPEAT
+# define MAZE_RUP PLA_UP_REPEAT
+# define MAZE_RDOWN PLA_DOWN_REPEAT
+#endif
/* propertie bits of the cell */
#define WALL_N 0x00000001
@@ -61,8 +78,11 @@ PLUGIN_HEADER
#define PATH 0x00000100
static struct plugin_api* rb;
+
+#ifdef __PLUGINLIB_ACTIONS_H__
const struct button_mapping *plugin_contexts[]
= {generic_directions, generic_actions};
+#endif
#if ( LCD_WIDTH == 112 )
#define MAZE_WIDTH 16
@@ -360,7 +380,7 @@ void solve_maze(void){
/**********************************/
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
{
- int button = 0;
+ int button, lastbutton = BUTTON_NONE;
int quit = 0;
(void)parameter;
@@ -370,6 +390,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
#if LCD_DEPTH > 1
rb->lcd_set_backdrop(NULL);
rb->lcd_set_background(LCD_DEFAULT_BG);
+#if LCD_DEPTH >= 16
+ rb->lcd_set_foreground( LCD_RGBPACK( 0, 0, 0));
+#elif LCD_DEPTH == 2
+ rb->lcd_set_foreground(0);
+#endif
#endif
init_maze();
@@ -377,9 +402,17 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
show_maze();
while(!quit) {
+#ifdef __PLUGINLIB_ACTIONS_H__
button = pluginlib_getaction(rb, TIMEOUT_BLOCK, plugin_contexts, 2);
+#else
+ button = rb->button_get(true);
+#endif
switch(button) {
case MAZE_NEW:
+#ifdef MAZE_NEW_PRE
+ if(lastbutton != MAZE_NEW_PRE)
+ break;
+#endif
solved = false;
init_maze();
generate_maze();
@@ -430,6 +463,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
}
break;
}
+ if( button != BUTTON_NONE )
+ lastbutton = button;
rb->yield();
}
rb->backlight_set_timeout(rb->global_settings->backlight_timeout);