summaryrefslogtreecommitdiff
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
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
-rw-r--r--apps/plugins/2048.c9
-rw-r--r--apps/plugins/alarmclock.c6
-rw-r--r--apps/plugins/bounce.c23
-rw-r--r--apps/plugins/bubbles.c10
-rw-r--r--apps/plugins/calendar.c11
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h2
-rw-r--r--apps/plugins/clix.c8
-rw-r--r--apps/plugins/clock/clock.c10
-rw-r--r--apps/plugins/codebuster.c7
-rw-r--r--apps/plugins/cube.c12
-rw-r--r--apps/plugins/demystify.c20
-rw-r--r--apps/plugins/dice.c7
-rw-r--r--apps/plugins/fft/fft.c36
-rw-r--r--apps/plugins/fire.c9
-rw-r--r--apps/plugins/fireworks.c9
-rw-r--r--apps/plugins/flipit.c4
-rw-r--r--apps/plugins/fractals/fractal.h2
-rw-r--r--apps/plugins/imageviewer/imageviewer.c30
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h6
-rw-r--r--apps/plugins/jackpot.c9
-rw-r--r--apps/plugins/jewels.c4
-rw-r--r--apps/plugins/lamp.c7
-rw-r--r--apps/plugins/logo.c14
-rw-r--r--apps/plugins/matrix.c9
-rw-r--r--apps/plugins/maze.c15
-rw-r--r--apps/plugins/mazezam.c4
-rw-r--r--apps/plugins/metronome.c6
-rw-r--r--apps/plugins/mosaique.c11
-rw-r--r--apps/plugins/open_plugins.c1
-rw-r--r--apps/plugins/oscilloscope.c10
-rw-r--r--apps/plugins/pegbox.c4
-rw-r--r--apps/plugins/periodic_table.c1
-rw-r--r--apps/plugins/pictureflow/pictureflow.c3
-rw-r--r--apps/plugins/pitch_detector.c5
-rw-r--r--apps/plugins/plasma.c9
-rw-r--r--apps/plugins/robotfindskitten.c6
-rw-r--r--apps/plugins/rockblox.c3
-rw-r--r--apps/plugins/rockblox1d.c7
-rw-r--r--apps/plugins/rocklife.c6
-rw-r--r--apps/plugins/sliding_puzzle.c4
-rw-r--r--apps/plugins/snake.c4
-rw-r--r--apps/plugins/snake2.c4
-rw-r--r--apps/plugins/snow.c8
-rw-r--r--apps/plugins/sokoban.c2
-rw-r--r--apps/plugins/solitaire.c2
-rw-r--r--apps/plugins/star.c4
-rw-r--r--apps/plugins/starfield.c10
-rw-r--r--apps/plugins/stats.c10
-rw-r--r--apps/plugins/wormlet.c2
-rw-r--r--apps/plugins/xobox.c4
-rw-r--r--manual/plugins/2048.tex3
-rw-r--r--manual/plugins/alarmclock.tex6
-rw-r--r--manual/plugins/bounce.tex6
-rw-r--r--manual/plugins/bubbles.tex6
-rw-r--r--manual/plugins/calendar.tex6
-rw-r--r--manual/plugins/chessbox.tex2
-rw-r--r--manual/plugins/clix.tex3
-rw-r--r--manual/plugins/clock.tex6
-rw-r--r--manual/plugins/codebuster.tex3
-rw-r--r--manual/plugins/cube.tex4
-rw-r--r--manual/plugins/demystify.tex6
-rw-r--r--manual/plugins/dice.tex3
-rw-r--r--manual/plugins/fire.tex3
-rw-r--r--manual/plugins/flipit.tex2
-rw-r--r--manual/plugins/fractals.tex2
-rw-r--r--manual/plugins/imageviewer.tex4
-rw-r--r--manual/plugins/jackpot.tex3
-rw-r--r--manual/plugins/jewels.tex4
-rw-r--r--manual/plugins/lamp.tex3
-rw-r--r--manual/plugins/logo.tex6
-rw-r--r--manual/plugins/maze.tex16
-rw-r--r--manual/plugins/mazezam.tex8
-rw-r--r--manual/plugins/metronome.tex3
-rw-r--r--manual/plugins/mosaic.tex7
-rw-r--r--manual/plugins/oscilloscope.tex4
-rw-r--r--manual/plugins/pegbox.tex2
-rw-r--r--manual/plugins/periodic_table.tex3
-rw-r--r--manual/plugins/pictureflow.tex6
-rw-r--r--manual/plugins/plasma.tex5
-rw-r--r--manual/plugins/robotfindskitten.tex3
-rw-r--r--manual/plugins/rockblox.tex2
-rw-r--r--manual/plugins/rockblox1d.tex3
-rw-r--r--manual/plugins/rocklife.tex3
-rw-r--r--manual/plugins/sliding.tex2
-rw-r--r--manual/plugins/snake.tex1
-rw-r--r--manual/plugins/snake2.tex2
-rw-r--r--manual/plugins/snow.tex5
-rw-r--r--manual/plugins/sokoban.tex2
-rw-r--r--manual/plugins/solitaire.tex2
-rw-r--r--manual/plugins/star.tex2
-rw-r--r--manual/plugins/starfield.tex6
-rw-r--r--manual/plugins/stats.tex5
-rw-r--r--manual/plugins/wormlet.tex4
-rw-r--r--manual/plugins/xobox.tex2
94 files changed, 439 insertions, 149 deletions
diff --git a/apps/plugins/2048.c b/apps/plugins/2048.c
index 456f973aef..2f4eb4c001 100644
--- a/apps/plugins/2048.c
+++ b/apps/plugins/2048.c
@@ -91,9 +91,16 @@ static const int BACKGROUND_Y = (BASE_Y-MIN_SPACE);
91#define KEY_DOWN PLA_DOWN 91#define KEY_DOWN PLA_DOWN
92#define KEY_LEFT PLA_LEFT 92#define KEY_LEFT PLA_LEFT
93#define KEY_RIGHT PLA_RIGHT 93#define KEY_RIGHT PLA_RIGHT
94#define KEY_EXIT PLA_CANCEL
95#define KEY_UNDO PLA_SELECT 94#define KEY_UNDO PLA_SELECT
96 95
96#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
97 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
98 || (CONFIG_KEYPAD == IPOD_4G_PAD)
99#define KEY_EXIT PLA_SELECT_REPEAT
100#else
101#define KEY_EXIT PLA_CANCEL
102#endif
103
97/* notice how "color" is spelled :P */ 104/* notice how "color" is spelled :P */
98#ifdef HAVE_LCD_COLOR 105#ifdef HAVE_LCD_COLOR
99 106
diff --git a/apps/plugins/alarmclock.c b/apps/plugins/alarmclock.c
index ecafceddc7..aa7c13d1a4 100644
--- a/apps/plugins/alarmclock.c
+++ b/apps/plugins/alarmclock.c
@@ -138,7 +138,13 @@ enum plugin_status plugin_start(const void* parameter)
138 while(!quit) { 138 while(!quit) {
139 button = get_button(); 139 button = get_button();
140 140
141#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
142 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
143 || (CONFIG_KEYPAD == IPOD_4G_PAD)
144 if (button == PLA_EXIT || button == PLA_CANCEL || button == PLA_UP)
145#else
141 if (button == PLA_EXIT || button == PLA_CANCEL) 146 if (button == PLA_EXIT || button == PLA_CANCEL)
147#endif
142 quit = true; 148 quit = true;
143 149
144 FOR_NB_SCREENS(i) { 150 FOR_NB_SCREENS(i) {
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index e6f29817d6..a42a0af6ba 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -34,10 +34,6 @@
34static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; 34static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
35 35
36/* We set button maping with PLA */ 36/* We set button maping with PLA */
37#define BOUNCE_UP PLA_UP
38#define BOUNCE_UP_REPEAT PLA_UP_REPEAT
39#define BOUNCE_DOWN PLA_DOWN
40#define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT
41 37
42#ifdef HAVE_SCROLLWHEEL 38#ifdef HAVE_SCROLLWHEEL
43#define BOUNCE_LEFT PLA_SCROLL_BACK 39#define BOUNCE_LEFT PLA_SCROLL_BACK
@@ -52,7 +48,22 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
52#endif 48#endif
53 49
54#define BOUNCE_QUIT PLA_EXIT 50#define BOUNCE_QUIT PLA_EXIT
51
52#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
53 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
54 || (CONFIG_KEYPAD == IPOD_4G_PAD)
55#define BOUNCE_QUIT2 PLA_UP
56#define BOUNCE_DOWN PLA_LEFT
57#define BOUNCE_DOWN_REPEAT PLA_LEFT_REPEAT
58#define BOUNCE_UP PLA_RIGHT
59#define BOUNCE_UP_REPEAT PLA_RIGHT_REPEAT
60#else
55#define BOUNCE_QUIT2 PLA_CANCEL 61#define BOUNCE_QUIT2 PLA_CANCEL
62#define BOUNCE_DOWN PLA_DOWN
63#define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT
64#define BOUNCE_UP PLA_UP
65#define BOUNCE_UP_REPEAT PLA_UP_REPEAT
66#endif
56#define BOUNCE_MODE PLA_SELECT 67#define BOUNCE_MODE PLA_SELECT
57 68
58#define LETTER_WIDTH 11 69#define LETTER_WIDTH 11
@@ -471,6 +482,10 @@ enum plugin_status plugin_start(const void* parameter)
471#if (CONFIG_KEYPAD == SAMSUNG_YH92X_PAD) || \ 482#if (CONFIG_KEYPAD == SAMSUNG_YH92X_PAD) || \
472 (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) 483 (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
473 "[Rew] to stop"; 484 "[Rew] to stop";
485#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
486 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
487 || (CONFIG_KEYPAD == IPOD_4G_PAD)
488 "[Menu] to stop";
474#else 489#else
475 "[Off] to stop"; 490 "[Off] to stop";
476#endif 491#endif
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c
index 88d7228d72..a64093492f 100644
--- a/apps/plugins/bubbles.c
+++ b/apps/plugins/bubbles.c
@@ -79,7 +79,6 @@ enum {
79#define ANGLE_STEP_REP 6 79#define ANGLE_STEP_REP 6
80 80
81#define BUBBLES_QUIT1 PLA_EXIT 81#define BUBBLES_QUIT1 PLA_EXIT
82#define BUBBLES_QUIT2 PLA_CANCEL
83 82
84/* these are better off shooting with up */ 83/* these are better off shooting with up */
85#if (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \ 84#if (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \
@@ -92,10 +91,19 @@ enum {
92#define BUBBLES_FIRE PLA_UP 91#define BUBBLES_FIRE PLA_UP
93#define BUBBLES_FIRE_REPEAT PLA_UP_REPEAT 92#define BUBBLES_FIRE_REPEAT PLA_UP_REPEAT
94#define BUBBLES_PAUSE PLA_SELECT 93#define BUBBLES_PAUSE PLA_SELECT
94#define BUBBLES_QUIT2 PLA_CANCEL
95#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
96 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
97 || (CONFIG_KEYPAD == IPOD_4G_PAD)
98#define BUBBLES_FIRE PLA_SELECT
99#define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT
100#define BUBBLES_PAUSE PLA_DOWN
101#define BUBBLES_QUIT2 PLA_UP
95#else 102#else
96#define BUBBLES_FIRE PLA_SELECT 103#define BUBBLES_FIRE PLA_SELECT
97#define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT 104#define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT
98#define BUBBLES_PAUSE PLA_UP 105#define BUBBLES_PAUSE PLA_UP
106#define BUBBLES_QUIT2 PLA_CANCEL
99#endif 107#endif
100 108
101/* external bitmaps */ 109/* external bitmaps */
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index a70f47c34b..765b42ef59 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -39,14 +39,12 @@
39#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 39#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
40 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 40 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
41 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 41 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
42#define CALENDAR_QUIT (BUTTON_SELECT|BUTTON_MENU) 42#define CALENDAR_QUIT (BUTTON_MENU|BUTTON_REL)
43#define CALENDAR_SELECT (BUTTON_SELECT|BUTTON_REL) 43#define CALENDAR_SELECT (BUTTON_SELECT|BUTTON_REL)
44#define CALENDAR_NEXT_WEEK BUTTON_SCROLL_FWD 44#define CALENDAR_NEXT_WEEK BUTTON_SCROLL_FWD
45#define CALENDAR_PREV_WEEK BUTTON_SCROLL_BACK 45#define CALENDAR_PREV_WEEK BUTTON_SCROLL_BACK
46#define CALENDAR_NEXT_DAY BUTTON_RIGHT 46#define CALENDAR_NEXT_DAY BUTTON_RIGHT
47#define CALENDAR_PREV_DAY BUTTON_LEFT 47#define CALENDAR_PREV_DAY BUTTON_LEFT
48#define CALENDAR_NEXT_MONTH BUTTON_PLAY
49#define CALENDAR_PREV_MONTH (BUTTON_MENU|BUTTON_REL)
50 48
51#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 49#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
52#define CALENDAR_QUIT BUTTON_POWER 50#define CALENDAR_QUIT BUTTON_POWER
@@ -1095,17 +1093,18 @@ enum plugin_status plugin_start(const void* parameter)
1095 case CALENDAR_QUIT: 1093 case CALENDAR_QUIT:
1096 exit = true; 1094 exit = true;
1097 break; 1095 break;
1098 1096#ifdef CALENDAR_NEXT_MONTH
1099 case CALENDAR_NEXT_MONTH: 1097 case CALENDAR_NEXT_MONTH:
1100 case CALENDAR_NEXT_MONTH | BUTTON_REPEAT: 1098 case CALENDAR_NEXT_MONTH | BUTTON_REPEAT:
1101 next_month(&shown, 0); 1099 next_month(&shown, 0);
1102 break; 1100 break;
1103 1101#endif
1102#ifdef CALENDAR_PREV_MONTH
1104 case CALENDAR_PREV_MONTH: 1103 case CALENDAR_PREV_MONTH:
1105 case CALENDAR_PREV_MONTH | BUTTON_REPEAT: 1104 case CALENDAR_PREV_MONTH | BUTTON_REPEAT:
1106 prev_month(&shown, 0); 1105 prev_month(&shown, 0);
1107 break; 1106 break;
1108 1107#endif
1109 case CALENDAR_NEXT_WEEK: 1108 case CALENDAR_NEXT_WEEK:
1110 case CALENDAR_NEXT_WEEK | BUTTON_REPEAT: 1109 case CALENDAR_NEXT_WEEK | BUTTON_REPEAT:
1111 next_day(&shown, 7); 1110 next_day(&shown, 7);
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 9d4f369ecc..7d0cb795cf 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -33,7 +33,7 @@
33#define CB_PLAY (BUTTON_SELECT | BUTTON_PLAY) 33#define CB_PLAY (BUTTON_SELECT | BUTTON_PLAY)
34#define CB_LEVEL (BUTTON_SELECT | BUTTON_RIGHT) 34#define CB_LEVEL (BUTTON_SELECT | BUTTON_RIGHT)
35#define CB_RESTART (BUTTON_SELECT | BUTTON_LEFT) 35#define CB_RESTART (BUTTON_SELECT | BUTTON_LEFT)
36#define CB_MENU (BUTTON_SELECT | BUTTON_MENU) 36#define CB_MENU (BUTTON_SELECT | BUTTON_REPEAT)
37#define CB_SCROLL_UP (BUTTON_SCROLL_FWD|BUTTON_REPEAT) 37#define CB_SCROLL_UP (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
38#define CB_SCROLL_DOWN (BUTTON_SCROLL_BACK|BUTTON_REPEAT) 38#define CB_SCROLL_DOWN (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
39#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT) 39#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 9cd66a8034..06813f3a4d 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -66,9 +66,7 @@
66#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 66#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
67 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 67 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
68 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 68 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
69#define CLIX_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU) 69#define CLIX_BUTTON_QUIT BUTTON_MENU
70#define CLIX_BUTTON_UP BUTTON_MENU
71#define CLIX_BUTTON_DOWN BUTTON_PLAY
72#define CLIX_BUTTON_SCROLL_FWD BUTTON_SCROLL_FWD 70#define CLIX_BUTTON_SCROLL_FWD BUTTON_SCROLL_FWD
73#define CLIX_BUTTON_SCROLL_BACK BUTTON_SCROLL_BACK 71#define CLIX_BUTTON_SCROLL_BACK BUTTON_SCROLL_BACK
74#define CLIX_BUTTON_CLICK BUTTON_SELECT 72#define CLIX_BUTTON_CLICK BUTTON_SELECT
@@ -921,8 +919,10 @@ static int clix_handle_game(struct clix_game_state_t* state)
921 case CLIX_BUTTON_SCROLL_BACK: 919 case CLIX_BUTTON_SCROLL_BACK:
922 case CLIX_BUTTON_SCROLL_BACK|BUTTON_REPEAT: 920 case CLIX_BUTTON_SCROLL_BACK|BUTTON_REPEAT:
923#endif 921#endif
922#ifdef CLIX_BUTTON_UP
924 case CLIX_BUTTON_UP: 923 case CLIX_BUTTON_UP:
925 case CLIX_BUTTON_UP|BUTTON_REPEAT: 924 case CLIX_BUTTON_UP|BUTTON_REPEAT:
925#endif
926 if( state->y == 0 || 926 if( state->y == 0 ||
927 state->board[ XYPOS( state->x, state->y - 1)] == 927 state->board[ XYPOS( state->x, state->y - 1)] ==
928 CC_BLACK 928 CC_BLACK
@@ -938,8 +938,10 @@ static int clix_handle_game(struct clix_game_state_t* state)
938 case CLIX_BUTTON_SCROLL_FWD: 938 case CLIX_BUTTON_SCROLL_FWD:
939 case CLIX_BUTTON_SCROLL_FWD|BUTTON_REPEAT: 939 case CLIX_BUTTON_SCROLL_FWD|BUTTON_REPEAT:
940#endif 940#endif
941#ifdef CLIX_BUTTON_DOWN
941 case CLIX_BUTTON_DOWN: 942 case CLIX_BUTTON_DOWN:
942 case CLIX_BUTTON_DOWN|BUTTON_REPEAT: 943 case CLIX_BUTTON_DOWN|BUTTON_REPEAT:
944#endif
943 if( state->y == (BOARD_HEIGHT - 1)) 945 if( state->y == (BOARD_HEIGHT - 1))
944 state->y = 0; 946 state->y = 0;
945 else 947 else
diff --git a/apps/plugins/clock/clock.c b/apps/plugins/clock/clock.c
index d287c75598..c61b466aba 100644
--- a/apps/plugins/clock/clock.c
+++ b/apps/plugins/clock/clock.c
@@ -44,13 +44,19 @@ const struct button_mapping* plugin_contexts[]={
44 44
45#define ACTION_COUNTER_TOGGLE PLA_SELECT 45#define ACTION_COUNTER_TOGGLE PLA_SELECT
46#define ACTION_COUNTER_RESET PLA_SELECT_REPEAT 46#define ACTION_COUNTER_RESET PLA_SELECT_REPEAT
47#define ACTION_MENU PLA_CANCEL
48#define ACTION_MODE_NEXT PLA_RIGHT 47#define ACTION_MODE_NEXT PLA_RIGHT
49#define ACTION_MODE_NEXT_REPEAT PLA_RIGHT_REPEAT 48#define ACTION_MODE_NEXT_REPEAT PLA_RIGHT_REPEAT
50#define ACTION_MODE_PREV PLA_LEFT 49#define ACTION_MODE_PREV PLA_LEFT
51#define ACTION_MODE_PREV_REPEAT PLA_LEFT_REPEAT 50#define ACTION_MODE_PREV_REPEAT PLA_LEFT_REPEAT
51#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
52 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
53 || (CONFIG_KEYPAD == IPOD_4G_PAD)
54#define ACTION_MENU PLA_UP
55#else
56#define ACTION_MENU PLA_CANCEL
52#define ACTION_SKIN_NEXT PLA_UP 57#define ACTION_SKIN_NEXT PLA_UP
53#define ACTION_SKIN_NEXT_REPEAT PLA_UP_REPEAT 58#define ACTION_SKIN_NEXT_REPEAT PLA_UP_REPEAT
59#endif
54#define ACTION_SKIN_PREV PLA_DOWN 60#define ACTION_SKIN_PREV PLA_DOWN
55#define ACTION_SKIN_PREV_REPEAT PLA_DOWN_REPEAT 61#define ACTION_SKIN_PREV_REPEAT PLA_DOWN_REPEAT
56 62
@@ -165,10 +171,12 @@ enum plugin_status plugin_start(const void* parameter){
165 case ACTION_SKIN_PREV: 171 case ACTION_SKIN_PREV:
166 clock_settings_skin_next(&clock_settings); 172 clock_settings_skin_next(&clock_settings);
167 break; 173 break;
174#if defined(ACTION_SKIN_NEXT) && defined(ACTION_SKIN_NEXT_REPEAT)
168 case ACTION_SKIN_NEXT_REPEAT: 175 case ACTION_SKIN_NEXT_REPEAT:
169 case ACTION_SKIN_NEXT: 176 case ACTION_SKIN_NEXT:
170 clock_settings_skin_previous(&clock_settings); 177 clock_settings_skin_previous(&clock_settings);
171 break; 178 break;
179#endif
172 case ACTION_MENU: 180 case ACTION_MENU:
173 clock_draw_restore_colors(); 181 clock_draw_restore_colors();
174 exit_clock=main_menu(); 182 exit_clock=main_menu();
diff --git a/apps/plugins/codebuster.c b/apps/plugins/codebuster.c
index 956991575d..401ce6085f 100644
--- a/apps/plugins/codebuster.c
+++ b/apps/plugins/codebuster.c
@@ -438,6 +438,13 @@ enum plugin_status plugin_start(const void* parameter) {
438 if (button == PLA_SELECT) 438 if (button == PLA_SELECT)
439 break; 439 break;
440 440
441#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
442 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
443 || (CONFIG_KEYPAD == IPOD_4G_PAD)
444 if (button == PLA_UP) /* Menu button */
445 button = PLA_CANCEL;
446#endif
447
441 switch (button) { 448 switch (button) {
442 449
443 /* Exit */ 450 /* Exit */
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index dfd7df8951..43318f5aee 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -52,12 +52,14 @@
52#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 52#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
53 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 53 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
54 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 54 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
55#define CUBE_QUIT (BUTTON_SELECT | BUTTON_MENU) 55#define CUBE_QUIT_PRE BUTTON_MENU
56#define CUBE_QUIT (BUTTON_MENU | BUTTON_REL)
56#define CUBE_NEXT BUTTON_RIGHT 57#define CUBE_NEXT BUTTON_RIGHT
57#define CUBE_PREV BUTTON_LEFT 58#define CUBE_PREV BUTTON_LEFT
58#define CUBE_INC BUTTON_SCROLL_FWD 59#define CUBE_INC BUTTON_SCROLL_FWD
59#define CUBE_DEC BUTTON_SCROLL_BACK 60#define CUBE_DEC BUTTON_SCROLL_BACK
60#define CUBE_MODE BUTTON_MENU 61#define CUBE_MODE_PRE BUTTON_MENU
62#define CUBE_MODE (BUTTON_MENU | BUTTON_REPEAT)
61#define CUBE_PAUSE BUTTON_PLAY 63#define CUBE_PAUSE BUTTON_PLAY
62#define CUBE_HIGHSPEED_PRE BUTTON_SELECT 64#define CUBE_HIGHSPEED_PRE BUTTON_SELECT
63#define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_REL) 65#define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_REL)
@@ -729,6 +731,7 @@ enum plugin_status plugin_start(const void* parameter)
729 731
730 int button; 732 int button;
731#if defined(CUBE_MODE_PRE) || \ 733#if defined(CUBE_MODE_PRE) || \
734 defined(CUBE_QUIT_PRE) || \
732 defined(CUBE_PAUSE_PRE) || \ 735 defined(CUBE_PAUSE_PRE) || \
733 defined(CUBE_HIGHSPEED_PRE) 736 defined(CUBE_HIGHSPEED_PRE)
734 int lastbutton = BUTTON_NONE; 737 int lastbutton = BUTTON_NONE;
@@ -903,6 +906,10 @@ enum plugin_status plugin_start(const void* parameter)
903 case CUBE_RC_QUIT: 906 case CUBE_RC_QUIT:
904#endif 907#endif
905 case CUBE_QUIT: 908 case CUBE_QUIT:
909#ifdef CUBE_QUIT_PRE
910 if (lastbutton != CUBE_QUIT_PRE)
911 break;
912#endif
906 quit = true; 913 quit = true;
907 break; 914 break;
908 915
@@ -911,6 +918,7 @@ enum plugin_status plugin_start(const void* parameter)
911 break; 918 break;
912 } 919 }
913#if defined(CUBE_MODE_PRE) || \ 920#if defined(CUBE_MODE_PRE) || \
921 defined(CUBE_QUIT_PRE) || \
914 defined(CUBE_PAUSE_PRE) || \ 922 defined(CUBE_PAUSE_PRE) || \
915 defined(CUBE_HIGHSPEED_PRE) 923 defined(CUBE_HIGHSPEED_PRE)
916 if (button != BUTTON_NONE) 924 if (button != BUTTON_NONE)
diff --git a/apps/plugins/demystify.c b/apps/plugins/demystify.c
index 1a1505ff96..cb8e4ddf72 100644
--- a/apps/plugins/demystify.c
+++ b/apps/plugins/demystify.c
@@ -37,26 +37,42 @@
37#define MIN_POLYGONS 1 37#define MIN_POLYGONS 1
38 38
39/* Key assignement */ 39/* Key assignement */
40#define DEMYSTIFY_QUIT PLA_CANCEL
41 40
42#ifdef HAVE_SCROLLWHEEL 41#ifdef HAVE_SCROLLWHEEL
43 42
43#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
44 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
45 || (CONFIG_KEYPAD == IPOD_4G_PAD)
46#define DEMYSTIFY_QUIT PLA_UP
47#else
48#define DEMYSTIFY_QUIT PLA_CANCEL
49#endif
50
44#define DEMYSTIFY_INCREASE_SPEED PLA_SCROLL_FWD 51#define DEMYSTIFY_INCREASE_SPEED PLA_SCROLL_FWD
45#define DEMYSTIFY_DECREASE_SPEED PLA_SCROLL_BACK 52#define DEMYSTIFY_DECREASE_SPEED PLA_SCROLL_BACK
46#define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_SCROLL_FWD_REPEAT 53#define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_SCROLL_FWD_REPEAT
47#define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_SCROLL_BACK_REPEAT 54#define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_SCROLL_BACK_REPEAT
55
56#define DEMYSTIFY_ADD_POLYGON PLA_RIGHT
57#define DEMYSTIFY_REMOVE_POLYGON PLA_LEFT
58#define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_RIGHT_REPEAT
59#define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_LEFT_REPEAT
60
48#else 61#else
62
63#define DEMYSTIFY_QUIT PLA_CANCEL
64
49#define DEMYSTIFY_INCREASE_SPEED PLA_RIGHT 65#define DEMYSTIFY_INCREASE_SPEED PLA_RIGHT
50#define DEMYSTIFY_DECREASE_SPEED PLA_LEFT 66#define DEMYSTIFY_DECREASE_SPEED PLA_LEFT
51#define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_RIGHT_REPEAT 67#define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_RIGHT_REPEAT
52#define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_LEFT_REPEAT 68#define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_LEFT_REPEAT
53#endif
54 69
55#define DEMYSTIFY_ADD_POLYGON PLA_UP 70#define DEMYSTIFY_ADD_POLYGON PLA_UP
56#define DEMYSTIFY_REMOVE_POLYGON PLA_DOWN 71#define DEMYSTIFY_REMOVE_POLYGON PLA_DOWN
57#define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_UP_REPEAT 72#define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_UP_REPEAT
58#define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_DOWN_REPEAT 73#define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_DOWN_REPEAT
59 74
75#endif
60const struct button_mapping *plugin_contexts[] 76const struct button_mapping *plugin_contexts[]
61= {pla_main_ctx, 77= {pla_main_ctx,
62#if defined(HAVE_REMOTE_LCD) 78#if defined(HAVE_REMOTE_LCD)
diff --git a/apps/plugins/dice.c b/apps/plugins/dice.c
index 622c58d71d..7580697267 100644
--- a/apps/plugins/dice.c
+++ b/apps/plugins/dice.c
@@ -28,7 +28,14 @@
28#define INITIAL_NB_DICES 1 28#define INITIAL_NB_DICES 1
29#define INITIAL_NB_SIDES 2 /* corresponds to 6 sides in the array */ 29#define INITIAL_NB_SIDES 2 /* corresponds to 6 sides in the array */
30 30
31
32#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
33 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
34 || (CONFIG_KEYPAD == IPOD_4G_PAD)
35#define DICE_QUIT PLA_UP
36#else
31#define DICE_QUIT PLA_CANCEL 37#define DICE_QUIT PLA_CANCEL
38#endif
32#define DICE_ROLL PLA_SELECT 39#define DICE_ROLL PLA_SELECT
33 40
34 41
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index f612a0ea35..4d36302ddf 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -40,13 +40,22 @@ GREY_INFO_STRUCT
40 40
41/* this set the context to use with PLA */ 41/* this set the context to use with PLA */
42static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; 42static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
43#define FFT_PREV_GRAPH PLA_LEFT 43#define FFT_PREV_GRAPH PLA_LEFT
44#define FFT_NEXT_GRAPH PLA_RIGHT 44#define FFT_NEXT_GRAPH PLA_RIGHT
45#define FFT_ORIENTATION PLA_CANCEL 45#define FFT_ORIENTATION PLA_CANCEL
46#define FFT_WINDOW PLA_SELECT 46#define FFT_WINDOW PLA_SELECT_REL
47#define FFT_AMP_SCALE PLA_UP 47#define FFT_AMP_SCALE PLA_SELECT_REPEAT
48#define FFT_FREQ_SCALE PLA_DOWN 48#define FFT_AMP_SCALE_PRE PLA_SELECT
49#define FFT_QUIT PLA_EXIT 49#define FFT_FREQ_SCALE PLA_DOWN
50
51
52#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
53 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
54 || (CONFIG_KEYPAD == IPOD_4G_PAD)
55#define FFT_QUIT PLA_UP
56#else
57#define FFT_QUIT PLA_EXIT
58#endif
50 59
51#ifdef HAVE_LCD_COLOR 60#ifdef HAVE_LCD_COLOR
52#include "pluginbitmaps/fft_colors.h" 61#include "pluginbitmaps/fft_colors.h"
@@ -1257,6 +1266,10 @@ enum plugin_status plugin_start(const void* parameter)
1257 if(!fft_setup()) 1266 if(!fft_setup())
1258 return PLUGIN_ERROR; 1267 return PLUGIN_ERROR;
1259 1268
1269#if defined(FFT_AMP_SCALE_PRE)
1270 int lastbutton = BUTTON_NONE;
1271#endif
1272
1260 while(run) 1273 while(run)
1261 { 1274 {
1262 long delay = fft_draw(); 1275 long delay = fft_draw();
@@ -1300,6 +1313,10 @@ enum plugin_status plugin_start(const void* parameter)
1300 break; 1313 break;
1301 1314
1302 case FFT_AMP_SCALE: 1315 case FFT_AMP_SCALE:
1316#ifdef FFT_AMP_SCALE_PRE
1317 if (lastbutton != FFT_AMP_SCALE_PRE)
1318 break;
1319#endif
1303 if (++fft.amp_scale >= FFT_MAX_AS) 1320 if (++fft.amp_scale >= FFT_MAX_AS)
1304 fft.amp_scale = FFT_MIN_AS; 1321 fft.amp_scale = FFT_MIN_AS;
1305 1322
@@ -1328,6 +1345,11 @@ enum plugin_status plugin_start(const void* parameter)
1328 exit_on_usb(button); 1345 exit_on_usb(button);
1329 break; 1346 break;
1330 } 1347 }
1348
1349#if defined(FFT_AMP_SCALE_PRE)
1350 if (button != BUTTON_NONE)
1351 lastbutton = button;
1352#endif
1331 } 1353 }
1332 1354
1333 return PLUGIN_OK; 1355 return PLUGIN_OK;
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c
index 43d10bf920..5cdf4a2d3a 100644
--- a/apps/plugins/fire.c
+++ b/apps/plugins/fire.c
@@ -56,10 +56,17 @@ const struct button_mapping* plugin_contexts[]= {
56}; 56};
57 57
58#define FIRE_QUIT PLA_CANCEL 58#define FIRE_QUIT PLA_CANCEL
59#define FIRE_QUIT2 PLA_EXIT
60#define FIRE_SWITCH_FLAMES_TYPE PLA_LEFT 59#define FIRE_SWITCH_FLAMES_TYPE PLA_LEFT
61#define FIRE_SWITCH_FLAMES_MOVING PLA_RIGHT 60#define FIRE_SWITCH_FLAMES_MOVING PLA_RIGHT
62 61
62#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
63 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
64 || (CONFIG_KEYPAD == IPOD_4G_PAD)
65#define FIRE_QUIT2 PLA_UP
66#else
67#define FIRE_QUIT2 PLA_EXIT
68#endif
69
63#ifdef HAVE_SCROLLWHEEL 70#ifdef HAVE_SCROLLWHEEL
64#define FIRE_INCREASE_MULT PLA_SCROLL_FWD 71#define FIRE_INCREASE_MULT PLA_SCROLL_FWD
65#define FIRE_INCREASE_MULT_REP PLA_SCROLL_FWD_REPEAT 72#define FIRE_INCREASE_MULT_REP PLA_SCROLL_FWD_REPEAT
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index febd093e3f..54a6d07c20 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -35,10 +35,17 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
35 35
36/* We use PLA */ 36/* We use PLA */
37#define BTN_EXIT PLA_EXIT 37#define BTN_EXIT PLA_EXIT
38#define BTN_MENU PLA_CANCEL
39#define BTN_FIRE PLA_SELECT 38#define BTN_FIRE PLA_SELECT
40#define BTN_FIRE_REPEAT PLA_SELECT_REPEAT 39#define BTN_FIRE_REPEAT PLA_SELECT_REPEAT
41 40
41#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
42 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
43 || (CONFIG_KEYPAD == IPOD_4G_PAD)
44#define BTN_MENU PLA_UP
45#else
46#define BTN_MENU PLA_CANCEL
47#endif
48
42/* The lowdown on source terminology: 49/* The lowdown on source terminology:
43 * a ROCKET is launched from the LCD bottom. 50 * a ROCKET is launched from the LCD bottom.
44 * FIREWORKs are ejected from the rocket when it explodes. */ 51 * FIREWORKs are ejected from the rocket when it explodes. */
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index c659cf5ba5..278c77e188 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -49,7 +49,7 @@
49#define FLIPIT_DOWN BUTTON_PLAY 49#define FLIPIT_DOWN BUTTON_PLAY
50#define FLIPIT_NEXT BUTTON_SCROLL_FWD 50#define FLIPIT_NEXT BUTTON_SCROLL_FWD
51#define FLIPIT_PREV BUTTON_SCROLL_BACK 51#define FLIPIT_PREV BUTTON_SCROLL_BACK
52#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_MENU) 52#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
53#define FLIPIT_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT) 53#define FLIPIT_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT)
54#define FLIPIT_SOLVE (BUTTON_SELECT | BUTTON_PLAY) 54#define FLIPIT_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
55#define FLIPIT_STEP_BY_STEP (BUTTON_SELECT | BUTTON_RIGHT) 55#define FLIPIT_STEP_BY_STEP (BUTTON_SELECT | BUTTON_RIGHT)
@@ -841,7 +841,7 @@ enum plugin_status plugin_start(const void* parameter)
841#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 841#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
842 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 842 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
843 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 843 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
844 rb->lcd_putsxy(2, 8, "[S-MENU] to stop"); 844 rb->lcd_putsxy(2, 8, "Long [SELECT] to stop");
845 rb->lcd_putsxy(2, 18, "[SELECT] toggle"); 845 rb->lcd_putsxy(2, 18, "[SELECT] toggle");
846 rb->lcd_putsxy(2, 28, "[S-LEFT] shuffle"); 846 rb->lcd_putsxy(2, 28, "[S-LEFT] shuffle");
847 rb->lcd_putsxy(2, 38, "[S-PLAY] solution"); 847 rb->lcd_putsxy(2, 38, "[S-PLAY] solution");
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 8e9446df0d..8432546c1e 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -40,7 +40,7 @@
40#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 40#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
41 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 41 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
42 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 42 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
43#define FRACTAL_QUIT (BUTTON_SELECT | BUTTON_MENU) 43#define FRACTAL_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
44#define FRACTAL_UP BUTTON_MENU 44#define FRACTAL_UP BUTTON_MENU
45#define FRACTAL_DOWN BUTTON_PLAY 45#define FRACTAL_DOWN BUTTON_PLAY
46#define FRACTAL_LEFT BUTTON_LEFT 46#define FRACTAL_LEFT BUTTON_LEFT
diff --git a/apps/plugins/imageviewer/imageviewer.c b/apps/plugins/imageviewer/imageviewer.c
index 91c0950035..c77b22fdae 100644
--- a/apps/plugins/imageviewer/imageviewer.c
+++ b/apps/plugins/imageviewer/imageviewer.c
@@ -353,7 +353,7 @@ static int show_menu(void) /* return 1 to quit */
353static int ask_and_get_audio_buffer(const char *filename) 353static int ask_and_get_audio_buffer(const char *filename)
354{ 354{
355 int button; 355 int button;
356#if defined(IMGVIEW_ZOOM_PRE) 356#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_QUIT_PRE)
357 int lastbutton = BUTTON_NONE; 357 int lastbutton = BUTTON_NONE;
358#endif 358#endif
359 rb->lcd_setfont(FONT_SYSFIXED); 359 rb->lcd_setfont(FONT_SYSFIXED);
@@ -392,6 +392,10 @@ static int ask_and_get_audio_buffer(const char *filename)
392#endif 392#endif
393#ifdef IMGVIEW_QUIT 393#ifdef IMGVIEW_QUIT
394 case IMGVIEW_QUIT: 394 case IMGVIEW_QUIT:
395#ifdef IMGVIEW_QUIT_PRE
396 if (lastbutton != IMGVIEW_QUIT_PRE)
397 break;
398#endif
395#endif 399#endif
396 case IMGVIEW_MENU: 400 case IMGVIEW_MENU:
397 return PLUGIN_OK; 401 return PLUGIN_OK;
@@ -424,7 +428,7 @@ static int ask_and_get_audio_buffer(const char *filename)
424 == SYS_USB_CONNECTED) 428 == SYS_USB_CONNECTED)
425 return PLUGIN_USB_CONNECTED; 429 return PLUGIN_USB_CONNECTED;
426 } 430 }
427#if defined(IMGVIEW_ZOOM_PRE) 431#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_QUIT_PRE)
428 if (button != BUTTON_NONE) 432 if (button != BUTTON_NONE)
429 lastbutton = button; 433 lastbutton = button;
430#endif 434#endif
@@ -572,14 +576,19 @@ static void pan_view_down(struct image_info *info)
572} 576}
573 577
574/* interactively scroll around the image */ 578/* interactively scroll around the image */
575static int scroll_bmp(struct image_info *info) 579static int scroll_bmp(struct image_info *info, bool initial_frame)
576{ 580{
577 static long ss_timeout = 0; 581 static long ss_timeout = 0;
578 582
579 int button; 583 int button;
580#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) \ 584#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) \
581 || defined(IMGVIEW_SLIDE_SHOW_PRE) 585 || defined(IMGVIEW_SLIDE_SHOW_PRE) || defined(IMGVIEW_QUIT_PRE)
582 int lastbutton = BUTTON_NONE; 586 static int lastbutton;
587 if (initial_frame)
588 lastbutton = BUTTON_NONE;
589
590#else
591 (void) initial_frame;
583#endif 592#endif
584 593
585 if (!ss_timeout && iv_api.slideshow_enabled) 594 if (!ss_timeout && iv_api.slideshow_enabled)
@@ -745,6 +754,10 @@ static int scroll_bmp(struct image_info *info)
745 754
746#ifdef IMGVIEW_QUIT 755#ifdef IMGVIEW_QUIT
747 case IMGVIEW_QUIT: 756 case IMGVIEW_QUIT:
757#ifdef IMGVIEW_QUIT_PRE
758 if (lastbutton != IMGVIEW_QUIT_PRE)
759 break;
760#endif
748 return PLUGIN_OK; 761 return PLUGIN_OK;
749 break; 762 break;
750#endif 763#endif
@@ -756,7 +769,8 @@ static int scroll_bmp(struct image_info *info)
756 break; 769 break;
757 770
758 } /* switch */ 771 } /* switch */
759#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) || defined(IMGVIEW_SLIDE_SHOW_PRE) 772#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) ||\
773 defined(IMGVIEW_SLIDE_SHOW_PRE) || defined(IMGVIEW_QUIT_PRE)
760 if (button != BUTTON_NONE) 774 if (button != BUTTON_NONE)
761 lastbutton = button; 775 lastbutton = button;
762#endif 776#endif
@@ -922,6 +936,7 @@ static int load_and_show(char* filename, struct image_info *info)
922 936
923 /* used to loop through subimages in animated gifs */ 937 /* used to loop through subimages in animated gifs */
924 int frame = 0; 938 int frame = 0;
939 bool initial_frame = true;
925 do /* loop the image prepare and decoding when zoomed */ 940 do /* loop the image prepare and decoding when zoomed */
926 { 941 {
927 status = imgdec->get_image(info, frame, ds); /* decode or fetch from cache */ 942 status = imgdec->get_image(info, frame, ds); /* decode or fetch from cache */
@@ -954,7 +969,8 @@ static int load_and_show(char* filename, struct image_info *info)
954 */ 969 */
955 while (1) 970 while (1)
956 { 971 {
957 status = scroll_bmp(info); 972 status = scroll_bmp(info, initial_frame);
973 initial_frame = false;
958 974
959 if (status == ZOOM_IN) 975 if (status == ZOOM_IN)
960 { 976 {
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index b8b8c3baf7..d324f93292 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -53,8 +53,10 @@
53#define IMGVIEW_RIGHT BUTTON_RIGHT 53#define IMGVIEW_RIGHT BUTTON_RIGHT
54#define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT) 54#define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT)
55#define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT) 55#define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT)
56#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_MENU) 56#define IMGVIEW_MENU_PRE BUTTON_SELECT
57#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_PLAY) 57#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_REPEAT)
58#define IMGVIEW_QUIT_PRE BUTTON_SELECT
59#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_REL)
58 60
59#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 61#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
60#define IMGVIEW_ZOOM_PRE BUTTON_SELECT 62#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
diff --git a/apps/plugins/jackpot.c b/apps/plugins/jackpot.c
index 78f74568ca..fd878509cf 100644
--- a/apps/plugins/jackpot.c
+++ b/apps/plugins/jackpot.c
@@ -25,6 +25,13 @@
25#include "lib/pluginlib_exit.h" 25#include "lib/pluginlib_exit.h"
26 26
27 27
28#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
29 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
30 || (CONFIG_KEYPAD == IPOD_4G_PAD)
31#define JACKPOT_QUIT PLA_UP
32#else
33#define JACKPOT_QUIT PLA_CANCEL
34#endif
28 35
29const struct button_mapping* plugin_contexts[]={pla_main_ctx}; 36const struct button_mapping* plugin_contexts[]={pla_main_ctx};
30#define NB_PICTURES 9 37#define NB_PICTURES 9
@@ -248,7 +255,7 @@ enum plugin_status plugin_start(const void* parameter)
248 plugin_contexts, ARRAYLEN(plugin_contexts)); 255 plugin_contexts, ARRAYLEN(plugin_contexts));
249 switch ( action ) 256 switch ( action )
250 { 257 {
251 case PLA_CANCEL: 258 case JACKPOT_QUIT:
252 return PLUGIN_OK; 259 return PLUGIN_OK;
253 case PLA_SELECT: 260 case PLA_SELECT:
254 jackpot_play_turn(&game); 261 jackpot_play_turn(&game);
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 3f209ae556..1536b785b4 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -49,9 +49,9 @@
49#define JEWELS_PREV BUTTON_SCROLL_BACK 49#define JEWELS_PREV BUTTON_SCROLL_BACK
50#define JEWELS_NEXT BUTTON_SCROLL_FWD 50#define JEWELS_NEXT BUTTON_SCROLL_FWD
51#define JEWELS_SELECT BUTTON_SELECT 51#define JEWELS_SELECT BUTTON_SELECT
52#define JEWELS_CANCEL (BUTTON_SELECT | BUTTON_MENU) 52#define JEWELS_CANCEL (BUTTON_SELECT | BUTTON_REPEAT)
53#define HK_SELECT "SELECT" 53#define HK_SELECT "SELECT"
54#define HK_CANCEL "SEL + MENU" 54#define HK_CANCEL "Long SELECT"
55 55
56#elif (CONFIG_KEYPAD == IPOD_3G_PAD) 56#elif (CONFIG_KEYPAD == IPOD_3G_PAD)
57#define JEWELS_LEFT BUTTON_LEFT 57#define JEWELS_LEFT BUTTON_LEFT
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index 42a2353b2a..5aa06f4d2d 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -58,7 +58,14 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
58 58
59 59
60#define LAMP_EXIT PLA_EXIT 60#define LAMP_EXIT PLA_EXIT
61
62#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
63 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
64 || (CONFIG_KEYPAD == IPOD_4G_PAD)
65#define LAMP_EXIT2 PLA_UP
66#else
61#define LAMP_EXIT2 PLA_CANCEL 67#define LAMP_EXIT2 PLA_CANCEL
68#endif
62 69
63 70
64#ifdef HAVE_LCD_COLOR 71#ifdef HAVE_LCD_COLOR
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 984a65aa34..9df73a9d0b 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -49,15 +49,27 @@ static const struct button_mapping *plugin_contexts[]
49 49
50/* We use PLA */ 50/* We use PLA */
51#define LP_QUIT PLA_EXIT 51#define LP_QUIT PLA_EXIT
52#define LP_QUIT2 PLA_CANCEL
53#define LP_DEC_X PLA_LEFT 52#define LP_DEC_X PLA_LEFT
54#define LP_DEC_X_REPEAT PLA_LEFT_REPEAT 53#define LP_DEC_X_REPEAT PLA_LEFT_REPEAT
55#define LP_INC_X PLA_RIGHT 54#define LP_INC_X PLA_RIGHT
56#define LP_INC_X_REPEAT PLA_RIGHT_REPEAT 55#define LP_INC_X_REPEAT PLA_RIGHT_REPEAT
56
57#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
58 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
59 || (CONFIG_KEYPAD == IPOD_4G_PAD)
60#define LP_QUIT2 PLA_UP
61#define LP_DEC_Y PLA_SCROLL_BACK
62#define LP_DEC_Y_REPEAT PLA_SCROLL_BACK_REPEAT
63#define LP_INC_Y PLA_SCROLL_FWD
64#define LP_INC_Y_REPEAT PLA_SCROLL_FWD_REPEAT
65#else
66#define LP_QUIT2 PLA_CANCEL
57#define LP_DEC_Y PLA_DOWN 67#define LP_DEC_Y PLA_DOWN
58#define LP_DEC_Y_REPEAT PLA_DOWN_REPEAT 68#define LP_DEC_Y_REPEAT PLA_DOWN_REPEAT
59#define LP_INC_Y PLA_UP 69#define LP_INC_Y PLA_UP
60#define LP_INC_Y_REPEAT PLA_UP_REPEAT 70#define LP_INC_Y_REPEAT PLA_UP_REPEAT
71#endif
72
61 73
62enum plugin_status plugin_start(const void* parameter) { 74enum plugin_status plugin_start(const void* parameter) {
63 int button; 75 int button;
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 1b2f6d465a..6e96aae10c 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -52,6 +52,14 @@
52/* this set the context to use with PLA */ 52/* this set the context to use with PLA */
53static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; 53static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
54 54
55#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
56 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
57 || (CONFIG_KEYPAD == IPOD_4G_PAD)
58#define MATRIX_EXIT2 PLA_UP
59#else
60#define MATRIX_EXIT2 PLA_CANCEL
61#endif
62
55#ifdef HAVE_SCROLLWHEEL 63#ifdef HAVE_SCROLLWHEEL
56#define MATRIX_SLEEP_MORE PLA_SCROLL_BACK 64#define MATRIX_SLEEP_MORE PLA_SCROLL_BACK
57#define MATRIX_SLEEP_MORE_REPEAT PLA_SCROLL_BACK_REPEAT 65#define MATRIX_SLEEP_MORE_REPEAT PLA_SCROLL_BACK_REPEAT
@@ -65,7 +73,6 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
65#endif /* HAVE_SCROLLWHEEL */ 73#endif /* HAVE_SCROLLWHEEL */
66#define MATRIX_PAUSE PLA_SELECT 74#define MATRIX_PAUSE PLA_SELECT
67#define MATRIX_EXIT PLA_EXIT 75#define MATRIX_EXIT PLA_EXIT
68#define MATRIX_EXIT2 PLA_CANCEL
69 76
70#define SLEEP HZ/50 77#define SLEEP HZ/50
71 78
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
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 423b09288d..1183f8f502 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -27,7 +27,9 @@
27/* Include standard plugin macro */ 27/* Include standard plugin macro */
28 28
29 29
30#if (CONFIG_KEYPAD == IPOD_3G_PAD) 30#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
31 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
32 || (CONFIG_KEYPAD == IPOD_4G_PAD)
31# define MAZEZAM_MENU BUTTON_MENU 33# define MAZEZAM_MENU BUTTON_MENU
32# define MAZEZAM_RIGHT BUTTON_RIGHT 34# define MAZEZAM_RIGHT BUTTON_RIGHT
33# define MAZEZAM_LEFT BUTTON_LEFT 35# define MAZEZAM_LEFT BUTTON_LEFT
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index 157d116ff9..9d61c067fd 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -82,7 +82,13 @@ enum metronome_errors
82#define MET_SYNC 82#define MET_SYNC
83#endif 83#endif
84 84
85#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
86 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
87 || (CONFIG_KEYPAD == IPOD_4G_PAD)
88#define METRONOME_QUIT PLA_UP
89#else
85#define METRONOME_QUIT PLA_EXIT 90#define METRONOME_QUIT PLA_EXIT
91#endif
86 92
87#ifdef HAVE_SCROLLWHEEL 93#ifdef HAVE_SCROLLWHEEL
88#define METRONOME_VOL_UP PLA_SCROLL_FWD 94#define METRONOME_VOL_UP PLA_SCROLL_FWD
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index caf5346dc5..cf3f42521a 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -37,10 +37,17 @@
37static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; 37static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
38 38
39#define MOSAIQUE_QUIT PLA_EXIT 39#define MOSAIQUE_QUIT PLA_EXIT
40#define MOSAIQUE_QUIT2 PLA_CANCEL 40#define MOSAIQUE_SPEED PLA_RIGHT
41#define MOSAIQUE_SPEED PLA_UP
42#define MOSAIQUE_RESTART PLA_SELECT 41#define MOSAIQUE_RESTART PLA_SELECT
43 42
43#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
44 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
45 || (CONFIG_KEYPAD == IPOD_4G_PAD)
46#define MOSAIQUE_QUIT2 PLA_UP
47#else
48#define MOSAIQUE_QUIT2 PLA_CANCEL
49#endif
50
44enum plugin_status plugin_start(const void* parameter) 51enum plugin_status plugin_start(const void* parameter)
45{ 52{
46 int button; 53 int button;
diff --git a/apps/plugins/open_plugins.c b/apps/plugins/open_plugins.c
index 9a2fa3593f..a4b19d558f 100644
--- a/apps/plugins/open_plugins.c
+++ b/apps/plugins/open_plugins.c
@@ -904,6 +904,7 @@ reopen_datfile:
904 } 904 }
905 break; 905 break;
906 case ACTION_STD_CANCEL: 906 case ACTION_STD_CANCEL:
907 case ACTION_STD_MENU:
907 { 908 {
908 selection = -2; 909 selection = -2;
909 exit = true; 910 exit = true;
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index ef9e6b8a98..00d03fb03e 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -47,12 +47,14 @@
47 47
48#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 48#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
49 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 49 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
50#define OSCILLOSCOPE_QUIT (BUTTON_SELECT | BUTTON_MENU) 50#define OSCILLOSCOPE_QUIT BUTTON_MENU
51#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_PLAY) 51#define OSCILLOSCOPE_GRAPHMODE_PRE BUTTON_SELECT
52#define OSCILLOSCOPE_GRAPHMODE (BUTTON_SELECT | BUTTON_REL)
53#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT
54#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_REPEAT)
52#define OSCILLOSCOPE_ADVMODE (BUTTON_SELECT | BUTTON_RIGHT) 55#define OSCILLOSCOPE_ADVMODE (BUTTON_SELECT | BUTTON_RIGHT)
53#define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT | BUTTON_LEFT) 56#define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT | BUTTON_LEFT)
54#define OSCILLOSCOPE_GRAPHMODE BUTTON_MENU 57#define OSCILLOSCOPE_PAUSE BUTTON_PLAY | BUTTON_REL
55#define OSCILLOSCOPE_PAUSE BUTTON_PLAY
56#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT 58#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
57#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT 59#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
58#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_FWD 60#define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_FWD
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index cb6361547d..8b88aad052 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -65,7 +65,7 @@
65 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 65 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
66 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 66 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
67#define PEGBOX_SELECT (BUTTON_SELECT|BUTTON_RIGHT) 67#define PEGBOX_SELECT (BUTTON_SELECT|BUTTON_RIGHT)
68#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY) 68#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_REPEAT)
69#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT) 69#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT)
70#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU) 70#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU)
71#define PEGBOX_UP BUTTON_MENU 71#define PEGBOX_UP BUTTON_MENU
@@ -74,7 +74,7 @@
74#define PEGBOX_LEFT BUTTON_LEFT 74#define PEGBOX_LEFT BUTTON_LEFT
75 75
76#define SELECT_TEXT "SELECT+RIGHT" 76#define SELECT_TEXT "SELECT+RIGHT"
77#define QUIT_TEXT "SELECT+PLAY" 77#define QUIT_TEXT "Long SELECT"
78#define RESTART_TEXT "SELECT+LEFT" 78#define RESTART_TEXT "SELECT+LEFT"
79#define LVL_UP_TEXT "SELECT+MENU" 79#define LVL_UP_TEXT "SELECT+MENU"
80#define LVL_DOWN_TEXT "-" 80#define LVL_DOWN_TEXT "-"
diff --git a/apps/plugins/periodic_table.c b/apps/plugins/periodic_table.c
index b77dd07432..2dd84baacd 100644
--- a/apps/plugins/periodic_table.c
+++ b/apps/plugins/periodic_table.c
@@ -619,7 +619,6 @@ enum plugin_status plugin_start(const void* parameter)
619 switch (button) 619 switch (button)
620 { 620 {
621 case PERIODIC_KEY_SELECT: 621 case PERIODIC_KEY_SELECT:
622 break;
623 case PERIODIC_KEY_MENU: 622 case PERIODIC_KEY_MENU:
624 return PLUGIN_OK; 623 return PLUGIN_OK;
625 break; 624 break;
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index 7670ef01df..a7a0031391 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -152,7 +152,8 @@ const struct button_mapping pf_context_buttons[] =
152#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ 152#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
153 || (CONFIG_KEYPAD == IPOD_3G_PAD) \ 153 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
154 || (CONFIG_KEYPAD == IPOD_4G_PAD) 154 || (CONFIG_KEYPAD == IPOD_4G_PAD)
155 {PF_QUIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU}, 155 {PF_MENU, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
156 {PF_QUIT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU},
156 {PF_SORTING_NEXT, BUTTON_SELECT|BUTTON_MENU, BUTTON_NONE}, 157 {PF_SORTING_NEXT, BUTTON_SELECT|BUTTON_MENU, BUTTON_NONE},
157 {PF_SORTING_PREV, BUTTON_SELECT|BUTTON_PLAY, BUTTON_NONE}, 158 {PF_SORTING_PREV, BUTTON_SELECT|BUTTON_PLAY, BUTTON_NONE},
158#elif CONFIG_KEYPAD == MPIO_HD300_PAD 159#elif CONFIG_KEYPAD == MPIO_HD300_PAD
diff --git a/apps/plugins/pitch_detector.c b/apps/plugins/pitch_detector.c
index 4ae43b3236..e9b1fb11b0 100644
--- a/apps/plugins/pitch_detector.c
+++ b/apps/plugins/pitch_detector.c
@@ -1013,6 +1013,11 @@ static void record_and_get_pitch(void)
1013 break; 1013 break;
1014 1014
1015 case PLA_CANCEL: 1015 case PLA_CANCEL:
1016#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
1017 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
1018 || (CONFIG_KEYPAD == IPOD_4G_PAD)
1019 case PLA_UP:
1020#endif
1016 rb->pcm_stop_recording(); 1021 rb->pcm_stop_recording();
1017 quit = main_menu(); 1022 quit = main_menu();
1018 if(!quit) 1023 if(!quit)
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index 8da53874e1..cdb6e66569 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -268,6 +268,11 @@ int main(void)
268 268
269 switch(action) 269 switch(action)
270 { 270 {
271#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
272 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
273 || (CONFIG_KEYPAD == IPOD_4G_PAD)
274 case PLA_UP:
275#endif
271 case PLA_EXIT: 276 case PLA_EXIT:
272 case PLA_CANCEL: 277 case PLA_CANCEL:
273 return PLUGIN_OK; 278 return PLUGIN_OK;
@@ -277,7 +282,11 @@ int main(void)
277 case PLA_SCROLL_FWD: 282 case PLA_SCROLL_FWD:
278 case PLA_SCROLL_FWD_REPEAT: 283 case PLA_SCROLL_FWD_REPEAT:
279#endif 284#endif
285#if (CONFIG_KEYPAD != IPOD_1G2G_PAD) \
286 && (CONFIG_KEYPAD != IPOD_3G_PAD) \
287 && (CONFIG_KEYPAD != IPOD_4G_PAD)
280 case PLA_UP: 288 case PLA_UP:
289#endif
281 case PLA_UP_REPEAT: 290 case PLA_UP_REPEAT:
282 ++plasma_frequency; 291 ++plasma_frequency;
283 wave_table_generate(); 292 wave_table_generate();
diff --git a/apps/plugins/robotfindskitten.c b/apps/plugins/robotfindskitten.c
index 4f228423b6..31c419e33d 100644
--- a/apps/plugins/robotfindskitten.c
+++ b/apps/plugins/robotfindskitten.c
@@ -469,7 +469,13 @@ static char* messages[] =
469 469
470#define RFK_VERSION "v1.4142135.406" 470#define RFK_VERSION "v1.4142135.406"
471 471
472#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
473 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
474 || (CONFIG_KEYPAD == IPOD_4G_PAD)
475# define RFK_QUIT PLA_SELECT_REPEAT
476#else
472# define RFK_QUIT PLA_CANCEL 477# define RFK_QUIT PLA_CANCEL
478#endif
473# define RFK_RIGHT PLA_RIGHT 479# define RFK_RIGHT PLA_RIGHT
474# define RFK_LEFT PLA_LEFT 480# define RFK_LEFT PLA_LEFT
475# define RFK_UP PLA_UP 481# define RFK_UP PLA_UP
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index cc719e5067..a0105a1ffb 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -33,7 +33,7 @@
33 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 33 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
34 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 34 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
35 35
36#define ROCKBLOX_OFF (BUTTON_MENU | BUTTON_SELECT) 36#define ROCKBLOX_OFF (BUTTON_SELECT | BUTTON_REPEAT)
37#define ROCKBLOX_ROTATE_CCW BUTTON_SCROLL_BACK 37#define ROCKBLOX_ROTATE_CCW BUTTON_SCROLL_BACK
38#define ROCKBLOX_ROTATE_CCW2 (BUTTON_MENU | BUTTON_REL) 38#define ROCKBLOX_ROTATE_CCW2 (BUTTON_MENU | BUTTON_REL)
39#define ROCKBLOX_ROTATE_CW BUTTON_SCROLL_FWD 39#define ROCKBLOX_ROTATE_CW BUTTON_SCROLL_FWD
@@ -41,6 +41,7 @@
41#define ROCKBLOX_RIGHT BUTTON_RIGHT 41#define ROCKBLOX_RIGHT BUTTON_RIGHT
42#define ROCKBLOX_DOWN BUTTON_PLAY 42#define ROCKBLOX_DOWN BUTTON_PLAY
43#define ROCKBLOX_RESTART (BUTTON_SELECT | BUTTON_PLAY) 43#define ROCKBLOX_RESTART (BUTTON_SELECT | BUTTON_PLAY)
44#define ROCKBLOX_DROP_PRE BUTTON_SELECT
44#define ROCKBLOX_DROP (BUTTON_SELECT | BUTTON_REL) 45#define ROCKBLOX_DROP (BUTTON_SELECT | BUTTON_REL)
45 46
46#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 47#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c
index 6a2b013c44..6d535bbcd7 100644
--- a/apps/plugins/rockblox1d.c
+++ b/apps/plugins/rockblox1d.c
@@ -28,7 +28,14 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
28#define ONEDROCKBLOX_DOWN PLA_DOWN 28#define ONEDROCKBLOX_DOWN PLA_DOWN
29#define ONEDROCKBLOX_DOWN_REPEAT PLA_DOWN_REPEAT 29#define ONEDROCKBLOX_DOWN_REPEAT PLA_DOWN_REPEAT
30#define ONEDROCKBLOX_QUIT PLA_EXIT 30#define ONEDROCKBLOX_QUIT PLA_EXIT
31
32#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
33 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
34 || (CONFIG_KEYPAD == IPOD_4G_PAD)
35#define ONEDROCKBLOX_QUIT2 PLA_UP
36#else
31#define ONEDROCKBLOX_QUIT2 PLA_CANCEL 37#define ONEDROCKBLOX_QUIT2 PLA_CANCEL
38#endif
32 39
33#define mrand(max) (short)(rb->rand()%max) 40#define mrand(max) (short)(rb->rand()%max)
34 41
diff --git a/apps/plugins/rocklife.c b/apps/plugins/rocklife.c
index bed947cc71..c4c7842fe0 100644
--- a/apps/plugins/rocklife.c
+++ b/apps/plugins/rocklife.c
@@ -70,7 +70,13 @@
70#define ROCKLIFE_INIT PLA_DOWN 70#define ROCKLIFE_INIT PLA_DOWN
71#define ROCKLIFE_NEXT PLA_RIGHT 71#define ROCKLIFE_NEXT PLA_RIGHT
72#define ROCKLIFE_NEXT_REP PLA_RIGHT_REPEAT 72#define ROCKLIFE_NEXT_REP PLA_RIGHT_REPEAT
73#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
74 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
75 || (CONFIG_KEYPAD == IPOD_4G_PAD)
76#define ROCKLIFE_QUIT PLA_UP
77#else
73#define ROCKLIFE_QUIT PLA_CANCEL 78#define ROCKLIFE_QUIT PLA_CANCEL
79#endif
74#define ROCKLIFE_STATUS PLA_LEFT 80#define ROCKLIFE_STATUS PLA_LEFT
75 81
76#define PATTERN_RANDOM 0 82#define PATTERN_RANDOM 0
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index af6aa40ea0..33d2bb68f6 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -36,7 +36,7 @@
36#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 36#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
37 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 37 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
38 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 38 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
39#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_MENU) 39#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
40#define PUZZLE_LEFT BUTTON_LEFT 40#define PUZZLE_LEFT BUTTON_LEFT
41#define PUZZLE_RIGHT BUTTON_RIGHT 41#define PUZZLE_RIGHT BUTTON_RIGHT
42#define PUZZLE_UP BUTTON_MENU 42#define PUZZLE_UP BUTTON_MENU
@@ -848,7 +848,7 @@ enum plugin_status plugin_start(
848#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 848#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \
849 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 849 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
850 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 850 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
851 rb->lcd_putsxy(0, 18, "[S-MENU] to stop"); 851 rb->lcd_putsxy(0, 18, "Long [SELECT] to stop");
852 rb->lcd_putsxy(0, 28, "[S-LEFT] shuffle"); 852 rb->lcd_putsxy(0, 28, "[S-LEFT] shuffle");
853 rb->lcd_putsxy(0, 38, "[S-RIGHT] change pic"); 853 rb->lcd_putsxy(0, 38, "[S-RIGHT] change pic");
854#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 854#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 25c89b264b..359077c9fa 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -55,12 +55,12 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
55#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 55#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
56 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 56 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
57 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 57 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
58#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU) 58#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_REPEAT)
59#define SNAKE_LEFT BUTTON_LEFT 59#define SNAKE_LEFT BUTTON_LEFT
60#define SNAKE_RIGHT BUTTON_RIGHT 60#define SNAKE_RIGHT BUTTON_RIGHT
61#define SNAKE_UP BUTTON_MENU 61#define SNAKE_UP BUTTON_MENU
62#define SNAKE_DOWN BUTTON_PLAY 62#define SNAKE_DOWN BUTTON_PLAY
63#define SNAKE_PLAYPAUSE BUTTON_SELECT 63#define SNAKE_PLAYPAUSE (BUTTON_SELECT|BUTTON_REL)
64 64
65#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 65#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
66#define SNAKE_QUIT BUTTON_POWER 66#define SNAKE_QUIT BUTTON_POWER
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 094fd854eb..7a43b235b7 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -181,8 +181,8 @@ Head and Tail are stored
181#define SNAKE2_RIGHT BUTTON_RIGHT 181#define SNAKE2_RIGHT BUTTON_RIGHT
182#define SNAKE2_UP BUTTON_MENU 182#define SNAKE2_UP BUTTON_MENU
183#define SNAKE2_DOWN BUTTON_PLAY 183#define SNAKE2_DOWN BUTTON_PLAY
184#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) 184#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
185#define SNAKE2_PLAYPAUSE BUTTON_SELECT 185#define SNAKE2_PLAYPAUSE (BUTTON_SELECT | BUTTON_REL)
186#define SNAKE2_PLAYPAUSE_TEXT "Select" 186#define SNAKE2_PLAYPAUSE_TEXT "Select"
187 187
188#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 188#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 10b41c972b..c7d7ad31d8 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -30,8 +30,14 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
30 30
31/* PLA definitions */ 31/* PLA definitions */
32#define SNOW_QUIT PLA_EXIT 32#define SNOW_QUIT PLA_EXIT
33#define SNOW_QUIT2 PLA_CANCEL
34 33
34#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
35 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
36 || (CONFIG_KEYPAD == IPOD_4G_PAD)
37#define SNOW_QUIT2 PLA_UP
38#else
39#define SNOW_QUIT2 PLA_CANCEL
40#endif
35static short particles[NUM_PARTICLES][2]; 41static short particles[NUM_PARTICLES][2];
36 42
37#if LCD_WIDTH >= 160 43#if LCD_WIDTH >= 160
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 247663a5c2..bf61db7d88 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -125,7 +125,7 @@
125#define SOKOBAN_RIGHT BUTTON_RIGHT 125#define SOKOBAN_RIGHT BUTTON_RIGHT
126#define SOKOBAN_UP BUTTON_MENU 126#define SOKOBAN_UP BUTTON_MENU
127#define SOKOBAN_DOWN BUTTON_PLAY 127#define SOKOBAN_DOWN BUTTON_PLAY
128#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_MENU) 128#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_REPEAT)
129#define SOKOBAN_UNDO_PRE BUTTON_SELECT 129#define SOKOBAN_UNDO_PRE BUTTON_SELECT
130#define SOKOBAN_UNDO (BUTTON_SELECT | BUTTON_REL) 130#define SOKOBAN_UNDO (BUTTON_SELECT | BUTTON_REL)
131#define SOKOBAN_REDO (BUTTON_SELECT | BUTTON_PLAY) 131#define SOKOBAN_REDO (BUTTON_SELECT | BUTTON_PLAY)
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index ebc042f6db..874d872d95 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -56,7 +56,7 @@
56 56
57#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 57#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
58 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 58 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
59# define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU) 59# define SOL_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
60# define SOL_UP BUTTON_SCROLL_BACK 60# define SOL_UP BUTTON_SCROLL_BACK
61# define SOL_DOWN BUTTON_SCROLL_FWD 61# define SOL_DOWN BUTTON_SCROLL_FWD
62# define SOL_LEFT_PRE BUTTON_LEFT 62# define SOL_LEFT_PRE BUTTON_LEFT
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 874afc1cf1..59cefa2c15 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -80,7 +80,7 @@
80 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 80 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
81 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 81 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
82 82
83#define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU) 83#define STAR_QUIT (BUTTON_SELECT | BUTTON_REPEAT)
84#define STAR_LEFT BUTTON_LEFT 84#define STAR_LEFT BUTTON_LEFT
85#define STAR_RIGHT BUTTON_RIGHT 85#define STAR_RIGHT BUTTON_RIGHT
86#define STAR_UP BUTTON_MENU 86#define STAR_UP BUTTON_MENU
@@ -91,7 +91,7 @@
91#define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) 91#define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT)
92#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY) 92#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY)
93#define STAR_TOGGLE_CONTROL_NAME "SELECT" 93#define STAR_TOGGLE_CONTROL_NAME "SELECT"
94#define STAR_QUIT_NAME "S + MENU" 94#define STAR_QUIT_NAME "Long SELECT"
95#define STAR_LEVEL_UP_NAME "S >" 95#define STAR_LEVEL_UP_NAME "S >"
96#define STAR_LEVEL_DOWN_NAME "S <" 96#define STAR_LEVEL_DOWN_NAME "S <"
97#define STAR_LEVEL_REPEAT_NAME "S + PLAY" 97#define STAR_LEVEL_REPEAT_NAME "S + PLAY"
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 39ed8a8171..239b7c1396 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -27,11 +27,21 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
27 27
28/* Key assignement */ 28/* Key assignement */
29#define STARFIELD_QUIT PLA_EXIT 29#define STARFIELD_QUIT PLA_EXIT
30#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
31 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
32 || (CONFIG_KEYPAD == IPOD_4G_PAD)
33#define STARFIELD_QUIT2 PLA_UP
34#define STARFIELD_INCREASE_ZMOVE PLA_SCROLL_FWD
35#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_SCROLL_FWD_REPEAT
36#define STARFIELD_DECREASE_ZMOVE PLA_SCROLL_BACK
37#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_SCROLL_BACK_REPEAT
38#else
30#define STARFIELD_QUIT2 PLA_CANCEL 39#define STARFIELD_QUIT2 PLA_CANCEL
31#define STARFIELD_INCREASE_ZMOVE PLA_UP 40#define STARFIELD_INCREASE_ZMOVE PLA_UP
32#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_UP_REPEAT 41#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_UP_REPEAT
33#define STARFIELD_DECREASE_ZMOVE PLA_DOWN 42#define STARFIELD_DECREASE_ZMOVE PLA_DOWN
34#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_DOWN_REPEAT 43#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_DOWN_REPEAT
44#endif
35#define STARFIELD_INCREASE_NB_STARS PLA_RIGHT 45#define STARFIELD_INCREASE_NB_STARS PLA_RIGHT
36#define STARFIELD_INCREASE_NB_STARS_REPEAT PLA_RIGHT_REPEAT 46#define STARFIELD_INCREASE_NB_STARS_REPEAT PLA_RIGHT_REPEAT
37#define STARFIELD_DECREASE_NB_STARS PLA_LEFT 47#define STARFIELD_DECREASE_NB_STARS PLA_LEFT
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 19ccd9f452..b48259a0e4 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -29,7 +29,15 @@ static bool cancel;
29 29
30/* we use PLA */ 30/* we use PLA */
31#define STATS_STOP PLA_EXIT 31#define STATS_STOP PLA_EXIT
32
33#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
34 || (CONFIG_KEYPAD == IPOD_3G_PAD) \
35 || (CONFIG_KEYPAD == IPOD_4G_PAD)
36#define STATS_STOP2 PLA_UP
37#else
32#define STATS_STOP2 PLA_CANCEL 38#define STATS_STOP2 PLA_CANCEL
39#endif
40
33/* this set the context to use with PLA */ 41/* this set the context to use with PLA */
34static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; 42static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
35 43
@@ -149,7 +157,7 @@ static void traversedir(char* location, char* name)
149 lasttick = *rb->current_tick; 157 lasttick = *rb->current_tick;
150 button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts, 158 button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts,
151 ARRAYLEN(plugin_contexts)); 159 ARRAYLEN(plugin_contexts));
152 if (button == STATS_STOP) { 160 if (button == STATS_STOP || button == STATS_STOP2) {
153 cancel = true; 161 cancel = true;
154 break; 162 break;
155 } 163 }
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index c09ef48bdc..abdb6a4725 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -54,7 +54,7 @@ static long max_cycle;
54#define BTN_DIR_LEFT BUTTON_LEFT 54#define BTN_DIR_LEFT BUTTON_LEFT
55#define BTN_DIR_RIGHT BUTTON_RIGHT 55#define BTN_DIR_RIGHT BUTTON_RIGHT
56#define BTN_STARTPAUSE (BUTTON_SELECT|BUTTON_REL) 56#define BTN_STARTPAUSE (BUTTON_SELECT|BUTTON_REL)
57#define BTN_QUIT (BUTTON_SELECT|BUTTON_MENU) 57#define BTN_QUIT (BUTTON_SELECT|BUTTON_REPEAT)
58#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_PLAY) 58#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_PLAY)
59 59
60#elif (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD) 60#elif (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD)
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index c7499fed7a..336d92bd4e 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -42,10 +42,10 @@
42 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 42 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
43 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 43 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
44 44
45#define QUIT (BUTTON_SELECT | BUTTON_MENU) 45#define QUIT (BUTTON_SELECT | BUTTON_REPEAT)
46#define LEFT BUTTON_LEFT 46#define LEFT BUTTON_LEFT
47#define RIGHT BUTTON_RIGHT 47#define RIGHT BUTTON_RIGHT
48#define PAUSE BUTTON_SELECT 48#define PAUSE (BUTTON_SELECT | BUTTON_REL)
49#define MENU_UP BUTTON_SCROLL_FWD 49#define MENU_UP BUTTON_SCROLL_FWD
50#define MENU_DOWN BUTTON_SCROLL_BACK 50#define MENU_DOWN BUTTON_SCROLL_BACK
51#define UP BUTTON_MENU 51#define UP BUTTON_MENU
diff --git a/manual/plugins/2048.tex b/manual/plugins/2048.tex
index 8df101c968..b55757c0d1 100644
--- a/manual/plugins/2048.tex
+++ b/manual/plugins/2048.tex
@@ -14,7 +14,8 @@ which -- in computer talk -- means a multiple of 1024).}
14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight} 14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight}
15 & Slide tiles\\ 15 & Slide tiles\\
16 16
17 \PluginCancel 17 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
18 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
18 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 19 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
19 & Go to menu\\ 20 & Go to menu\\
20\end{btnmap} 21\end{btnmap}
diff --git a/manual/plugins/alarmclock.tex b/manual/plugins/alarmclock.tex
index 617a208fdb..3e4d99d120 100644
--- a/manual/plugins/alarmclock.tex
+++ b/manual/plugins/alarmclock.tex
@@ -9,7 +9,8 @@ This plugin is an alarm clock, which resumes a paused song at a given time.
9 & Switch between hours/minutes selection \\ 9 & Switch between hours/minutes selection \\
10 10
11 \opt{scrollwheel}{\PluginScrollBack{} / \PluginScrollFwd{} or} 11 \opt{scrollwheel}{\PluginScrollBack{} / \PluginScrollFwd{} or}
12 \PluginUp{} / \PluginDown 12 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
13 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginDown}
13 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown} 14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
14 & Increase/Decrease hours/minutes \\ 15 & Increase/Decrease hours/minutes \\
15 16
@@ -17,7 +18,8 @@ This plugin is an alarm clock, which resumes a paused song at a given time.
17 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect} 18 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
18 & Set the alarm \\ 19 & Set the alarm \\
19 20
20 \PluginCancel 21 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
22 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
21 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 23 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
22 & Exit \\ 24 & Exit \\
23\end{btnmap} 25\end{btnmap}
diff --git a/manual/plugins/bounce.tex b/manual/plugins/bounce.tex
index fe26c67198..93fddd89bf 100644
--- a/manual/plugins/bounce.tex
+++ b/manual/plugins/bounce.tex
@@ -6,7 +6,8 @@ In \setting{Scroll mode} the bouncing text is replaced by a different one
6scrolling from right to left. 6scrolling from right to left.
7 7
8\begin{btnmap} 8\begin{btnmap}
9 \PluginUp / \PluginDown 9 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
10 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginLeft{} / \PluginRight}
10 \opt{HAVEREMOTEKEYMAP}{& } 11 \opt{HAVEREMOTEKEYMAP}{& }
11 & Moves to next/previous option\\ 12 & Moves to next/previous option\\
12 \nopt{scrollwheel} { 13 \nopt{scrollwheel} {
@@ -20,7 +21,8 @@ scrolling from right to left.
20 \PluginSelect 21 \PluginSelect
21 \opt{HAVEREMOTEKEYMAP}{& } 22 \opt{HAVEREMOTEKEYMAP}{& }
22 & Toggles Scroll mode\\ 23 & Toggles Scroll mode\\
23 \PluginCancel{} or \PluginExit 24 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
25 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp}
24 \opt{HAVEREMOTEKEYMAP}{& } 26 \opt{HAVEREMOTEKEYMAP}{& }
25 & Exits bounce demo\\ 27 & Exits bounce demo\\
26\end{btnmap} 28\end{btnmap}
diff --git a/manual/plugins/bubbles.tex b/manual/plugins/bubbles.tex
index 126a42c5f9..88fd4f997f 100644
--- a/manual/plugins/bubbles.tex
+++ b/manual/plugins/bubbles.tex
@@ -10,7 +10,8 @@ fired. Points are awarded depending on how quickly the level was completed.
10 10
11 \begin{btnmap} 11 \begin{btnmap}
12 \opt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\PluginSelect} 12 \opt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\PluginSelect}
13 \nopt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\PluginUp} 13 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonPlay}
14 \nopt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD,IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp}
14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp} 15 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp}
15 & Pause game\\ 16 & Pause game\\
16 17
@@ -24,7 +25,8 @@ fired. Points are awarded depending on how quickly the level was completed.
24 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect} 25 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
25 & Fire bubble\\ 26 & Fire bubble\\
26 27
27 \PluginCancel{} or \PluginExit 28 \nopt{IRIVER_H10_PAD,SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD,IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
29 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
28 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 30 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
29 & Exit to menu\\ 31 & Exit to menu\\
30 \end{btnmap} 32 \end{btnmap}
diff --git a/manual/plugins/calendar.tex b/manual/plugins/calendar.tex
index fb4291f250..b965f7b365 100644
--- a/manual/plugins/calendar.tex
+++ b/manual/plugins/calendar.tex
@@ -37,9 +37,9 @@ You can select what day is first day of week by the setting \setting{First Day o
37 \opt{MPIO_HD300_PAD}{\ButtonRew / \ButtonFF 37 \opt{MPIO_HD300_PAD}{\ButtonRew / \ButtonFF
38 & Previous / Next week\\} 38 & Previous / Next week\\}
39 % 39 %
40\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{
40 \opt{MROBE100_PAD}{\ButtonMenu{} + \ButtonUp{} / \ButtonDown} 41 \opt{MROBE100_PAD}{\ButtonMenu{} + \ButtonUp{} / \ButtonDown}
41 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode{} / \ButtonRec} 42 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode{} / \ButtonRec}
42 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonPlay{} / \ButtonMenu}
43 \opt{IAUDIO_X5_PAD}{\ButtonRec{} / \ButtonPlay} 43 \opt{IAUDIO_X5_PAD}{\ButtonRec{} / \ButtonPlay}
44 \opt{GIGABEAT_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD}{\ButtonVolUp{} / \ButtonVolDown} 44 \opt{GIGABEAT_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD}{\ButtonVolUp{} / \ButtonVolDown}
45 \opt{GIGABEAT_S_PAD}{\ButtonNext{} / \ButtonPrev} 45 \opt{GIGABEAT_S_PAD}{\ButtonNext{} / \ButtonPrev}
@@ -52,10 +52,10 @@ You can select what day is first day of week by the setting \setting{First Day o
52 \opt{MPIO_HD300_PAD}{\ButtonRec{} / \ButtonPlay} 52 \opt{MPIO_HD300_PAD}{\ButtonRec{} / \ButtonPlay}
53 \opt{SANSA_FUZEPLUS_PAD}{\ButtonBack{} / \ButtonPlay} 53 \opt{SANSA_FUZEPLUS_PAD}{\ButtonBack{} / \ButtonPlay}
54 \opt{HAVEREMOTEKEYMAP}{& } 54 \opt{HAVEREMOTEKEYMAP}{& }
55 & Previous / Next month\\ 55 & Previous / Next month\\}
56 % 56 %
57 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 57 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
58 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu{} + \ButtonSelect} 58 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
59 \opt{GIGABEAT_S_PAD}{\ButtonBack} 59 \opt{GIGABEAT_S_PAD}{\ButtonBack}
60 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower} 60 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower}
61 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 61 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/chessbox.tex b/manual/plugins/chessbox.tex
index fd9391bce4..21d6733a52 100644
--- a/manual/plugins/chessbox.tex
+++ b/manual/plugins/chessbox.tex
@@ -74,7 +74,7 @@ the game.
74 \opt{HAVEREMOTEKEYMAP}{& } 74 \opt{HAVEREMOTEKEYMAP}{& }
75 & Force play\\ 75 & Force play\\
76 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 76 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
77 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 77 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
78 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD% 78 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD%
79 ,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 79 ,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
80 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 80 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/clix.tex b/manual/plugins/clix.tex
index 4752bd1204..aa10f7508b 100644
--- a/manual/plugins/clix.tex
+++ b/manual/plugins/clix.tex
@@ -17,7 +17,7 @@ The more blocks you remove per turn, the more points you get.
17 ,SANSA_FUZE_PAD,PBELL_VIBE500_PAD,SANSA_FUZEPLUS_PAD,SAMSUNG_YH92X_PAD% 17 ,SANSA_FUZE_PAD,PBELL_VIBE500_PAD,SANSA_FUZEPLUS_PAD,SAMSUNG_YH92X_PAD%
18 ,SAMSUNG_YH820_PAD} 18 ,SAMSUNG_YH820_PAD}
19 {\ButtonUp/\ButtonDown} 19 {\ButtonUp/\ButtonDown}
20 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu/\ButtonPlay} 20 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd{} / \ButtonScrollBack}
21 \opt{IRIVER_H10_PAD}{\ButtonScrollUp/\ButtonScrollDown} 21 \opt{IRIVER_H10_PAD}{\ButtonScrollUp/\ButtonScrollDown}
22 \opt{HAVEREMOTEKEYMAP}{& } 22 \opt{HAVEREMOTEKEYMAP}{& }
23 & Move the cursor around the blocks \\ 23 & Move the cursor around the blocks \\
@@ -32,6 +32,7 @@ The more blocks you remove per turn, the more points you get.
32 } 32 }
33 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD} 33 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}
34 {\ButtonOff} 34 {\ButtonOff}
35 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
35 \opt{IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD% 36 \opt{IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD%
36 ,IAUDIO_X5_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 37 ,IAUDIO_X5_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
37 \opt{SANSA_FUZE_PAD}{\ButtonHome} 38 \opt{SANSA_FUZE_PAD}{\ButtonHome}
diff --git a/manual/plugins/clock.tex b/manual/plugins/clock.tex
index 92873223d9..16220792df 100644
--- a/manual/plugins/clock.tex
+++ b/manual/plugins/clock.tex
@@ -10,11 +10,13 @@ This is a fully featured analogue and digital clock plugin.
10 \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight} 10 \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight}
11 & Cycle through modes \\ 11 & Cycle through modes \\
12 12
13 \PluginUp{} / \PluginDown 13 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
14 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginDown}
14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown} 15 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
15 & Cycle through skins \\ 16 & Cycle through skins \\
16 17
17 \PluginCancel 18 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
19 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
18 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 20 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
19 & Main Menu \\ 21 & Main Menu \\
20 22
diff --git a/manual/plugins/codebuster.tex b/manual/plugins/codebuster.tex
index a70edf57ba..380c5dc734 100644
--- a/manual/plugins/codebuster.tex
+++ b/manual/plugins/codebuster.tex
@@ -10,7 +10,8 @@ a correct peg in the correct position, and a white peg signifies a correct
10peg in the wrong position. 10peg in the wrong position.
11 11
12 \begin{btnmap} 12 \begin{btnmap}
13 \PluginCancel 13 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
14 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 15 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
15 & Show menu \\ 16 & Show menu \\
16 17
diff --git a/manual/plugins/cube.tex b/manual/plugins/cube.tex
index 0366c788b7..75c16eaab9 100644
--- a/manual/plugins/cube.tex
+++ b/manual/plugins/cube.tex
@@ -4,7 +4,7 @@ This is a rotating cube screen saver in 3D.
4\begin{btnmap} 4\begin{btnmap}
5 \opt{IAUDIO_X5_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD% 5 \opt{IAUDIO_X5_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
6 ,IRIVER_H100_PAD,IRIVER_H300_PAD,GIGABEAT_S_PAD}{\ButtonSelect} 6 ,IRIVER_H100_PAD,IRIVER_H300_PAD,GIGABEAT_S_PAD}{\ButtonSelect}
7 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay} 7 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect}
8 \opt{IRIVER_H10_PAD}{\ButtonFF} 8 \opt{IRIVER_H10_PAD}{\ButtonFF}
9 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{Long \ButtonFF} 9 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{Long \ButtonFF}
10 \opt{GIGABEAT_PAD}{\ButtonA} 10 \opt{GIGABEAT_PAD}{\ButtonA}
@@ -30,7 +30,7 @@ This is a rotating cube screen saver in 3D.
30 \opt{GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD} 30 \opt{GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD}
31 {\ButtonMenu} 31 {\ButtonMenu}
32 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode} 32 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}
33 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 33 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu}
34 \opt{IAUDIO_X5_PAD,SANSA_FUZEPLUS_PAD}{\ButtonSelect} 34 \opt{IAUDIO_X5_PAD,SANSA_FUZEPLUS_PAD}{\ButtonSelect}
35 \opt{IRIVER_H10_PAD}{\ButtonRew} 35 \opt{IRIVER_H10_PAD}{\ButtonRew}
36 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonFF} 36 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonFF}
diff --git a/manual/plugins/demystify.tex b/manual/plugins/demystify.tex
index 3e0a5d0dc9..88d7677b08 100644
--- a/manual/plugins/demystify.tex
+++ b/manual/plugins/demystify.tex
@@ -9,11 +9,13 @@ Demystify is a screen saver like demo.\\
9 \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight} 9 \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft{} / \PluginRCRight}
10 & Increase / decrease speed\\ 10 & Increase / decrease speed\\
11 11
12 \PluginUp{} / \PluginDown 12 \nopt{scrollwheel}{\PluginUp{} / \PluginDown}
13 \opt{scrollwheel}{\PluginLeft{} / \PluginRight}
13 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown} 14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp{} / \PluginRCDown}
14 & Add / remove polygon\\ 15 & Add / remove polygon\\
15 16
16 \PluginCancel 17 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
18 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp}
17 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 19 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
18 & Quit\\ 20 & Quit\\
19\end{btnmap} 21\end{btnmap}
diff --git a/manual/plugins/dice.tex b/manual/plugins/dice.tex
index 44153e0a59..4756d612c7 100644
--- a/manual/plugins/dice.tex
+++ b/manual/plugins/dice.tex
@@ -8,7 +8,8 @@ numbers as well as the total of the rolled dice.
8 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect} 8 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
9 & Roll dice again\\ 9 & Roll dice again\\
10 10
11 \PluginCancel 11 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
12 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
12 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 13 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
13 & Quit\\ 14 & Quit\\
14\end{btnmap} 15\end{btnmap}
diff --git a/manual/plugins/fire.tex b/manual/plugins/fire.tex
index 9ca3fd33bb..a66f9950ab 100644
--- a/manual/plugins/fire.tex
+++ b/manual/plugins/fire.tex
@@ -16,7 +16,8 @@ Fire is a demo displaying a fire effect.
16 \opt{HAVEREMOTEKEYMAP}{& \PluginRCRight} 16 \opt{HAVEREMOTEKEYMAP}{& \PluginRCRight}
17 & Toggle moving flames\\ 17 & Toggle moving flames\\
18 18
19 \PluginCancel 19 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
20 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
20 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 21 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
21 & Quit\\ 22 & Quit\\
22\end{btnmap} 23\end{btnmap}
diff --git a/manual/plugins/flipit.tex b/manual/plugins/flipit.tex
index cb9880a8c3..380bae2001 100644
--- a/manual/plugins/flipit.tex
+++ b/manual/plugins/flipit.tex
@@ -76,7 +76,7 @@ a screen containing tokens of only one colour.
76 \opt{HAVEREMOTEKEYMAP}{& } 76 \opt{HAVEREMOTEKEYMAP}{& }
77 & Solve step by step \\ 77 & Solve step by step \\
78\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 78\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
79\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 79\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
80\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD% 80\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD%
81 ,SANSA_C200_PAD,SANSA_CLIP_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 81 ,SANSA_C200_PAD,SANSA_CLIP_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
82\opt{SANSA_FUZE_PAD}{Long \ButtonHome} 82\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/fractals.tex b/manual/plugins/fractals.tex
index c12878cf3d..dc06ae9893 100644
--- a/manual/plugins/fractals.tex
+++ b/manual/plugins/fractals.tex
@@ -92,7 +92,7 @@ This demonstration draws fractal images from the Mandelbrot set%
92 & Reset and return to the default image\\ 92 & Reset and return to the default image\\
93 % 93 %
94 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 94 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
95 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 95 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
96 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD% 96 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
97 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower} 97 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
98 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 98 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/imageviewer.tex b/manual/plugins/imageviewer.tex
index 637507456b..cc5b27eee4 100644
--- a/manual/plugins/imageviewer.tex
+++ b/manual/plugins/imageviewer.tex
@@ -113,7 +113,7 @@ view a bigger file you may need to stop playback.}
113 & Toggle slide show mode\\ 113 & Toggle slide show mode\\
114 } 114 }
115 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 115 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
116 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 116 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
117 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD}{\ButtonPower} 117 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD}{\ButtonPower}
118 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 118 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
119 \opt{GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD}{\ButtonMenu} 119 \opt{GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD}{\ButtonMenu}
@@ -128,7 +128,7 @@ view a bigger file you may need to stop playback.}
128 & Show menu / Abort \\ 128 & Show menu / Abort \\
129 \opt{IPOD_4G_PAD,IPOD_3G_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD% 129 \opt{IPOD_4G_PAD,IPOD_3G_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,MROBE100_PAD,PBELL_VIBE500_PAD%
130 ,SAMSUNG_YH820_PAD}{ 130 ,SAMSUNG_YH820_PAD}{
131 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay} 131 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect}
132 \opt{GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower} 132 \opt{GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower}
133 \opt{GIGABEAT_S_PAD}{\ButtonBack} 133 \opt{GIGABEAT_S_PAD}{\ButtonBack}
134 \opt{PBELL_VIBE500_PAD}{\ButtonCancel} 134 \opt{PBELL_VIBE500_PAD}{\ButtonCancel}
diff --git a/manual/plugins/jackpot.tex b/manual/plugins/jackpot.tex
index a7dd83f699..754d7a6ab7 100644
--- a/manual/plugins/jackpot.tex
+++ b/manual/plugins/jackpot.tex
@@ -9,7 +9,8 @@ have 20\$. Payouts are given when three matching symbols come up.
9 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect} 9 \opt{HAVEREMOTEKEYMAP}{& \PluginRCSelect}
10 & Play\\ 10 & Play\\
11 11
12 \PluginCancel 12 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
13 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
13 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 14 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
14 & Exit the game \\ 15 & Exit the game \\
15\end{btnmap} 16\end{btnmap}
diff --git a/manual/plugins/jewels.tex b/manual/plugins/jewels.tex
index 38ce4b1ac8..5a06beb6a5 100644
--- a/manual/plugins/jewels.tex
+++ b/manual/plugins/jewels.tex
@@ -46,8 +46,8 @@ skillfully swapping pairs of jewels.
46 ,IAUDIO_X5_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 46 ,IAUDIO_X5_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
47 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 47 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
48 \opt{GIGABEAT_S_PAD}{\ButtonBack} 48 \opt{GIGABEAT_S_PAD}{\ButtonBack}
49 \opt{IPOD_3G_PAD,MPIO_HD300_PAD}{\ButtonMenu} 49 \opt{MPIO_HD300_PAD}{\ButtonMenu}
50 \opt{IPOD_4G_PAD}{\ButtonSelect+ \ButtonMenu} 50 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
51 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 51 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
52 \opt{PBELL_VIBE500_PAD}{\ButtonRec} 52 \opt{PBELL_VIBE500_PAD}{\ButtonRec}
53 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew} 53 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}
diff --git a/manual/plugins/lamp.tex b/manual/plugins/lamp.tex
index 643f1bb51f..23190e62f1 100644
--- a/manual/plugins/lamp.tex
+++ b/manual/plugins/lamp.tex
@@ -28,6 +28,7 @@ You get an empty screen with maximum brightness.
28 Toggle the button light 28 Toggle the button light
29 \\ 29 \\
30 } 30 }
31 \PluginCancel{} or \PluginExit 31 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
32 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
32 & Exit to menu\\ 33 & Exit to menu\\
33\end{btnmap} 34\end{btnmap}
diff --git a/manual/plugins/logo.tex b/manual/plugins/logo.tex
index 7239d42cca..b79747cd91 100644
--- a/manual/plugins/logo.tex
+++ b/manual/plugins/logo.tex
@@ -9,14 +9,16 @@ Demo showing the Rockbox logo bouncing around the screen.
9 Increase / decrease speed on the x-axis 9 Increase / decrease speed on the x-axis
10 \\ 10 \\
11 11
12 \PluginUp{} / \PluginDown 12 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
13 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd{} / \ButtonScrollBack}
13 & 14 &
14 \opt{HAVEREMOTEKEYMAP}{ 15 \opt{HAVEREMOTEKEYMAP}{
15 &} 16 &}
16 Increase / decrease speed on the y-axis 17 Increase / decrease speed on the y-axis
17 \\ 18 \\
18 19
19 \PluginCancel{} or \PluginExit 20 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
21 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
20 & 22 &
21 \opt{HAVEREMOTEKEYMAP}{ 23 \opt{HAVEREMOTEKEYMAP}{
22 &} 24 &}
diff --git a/manual/plugins/maze.tex b/manual/plugins/maze.tex
index 186a650b4d..0a581a7740 100644
--- a/manual/plugins/maze.tex
+++ b/manual/plugins/maze.tex
@@ -4,8 +4,8 @@ This is a simple maze generator that creates perfect mazes that have only
4one solution. 4one solution.
5 5
6\begin{btnmap} 6\begin{btnmap}
7 \opt{IPOD_3G_PAD}{\ButtonScrollBack/\ButtonScrollFwd/\ButtonLeft/\ButtonRight} 7 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollBack/\ButtonScrollFwd/\ButtonLeft/\ButtonRight}
8 \nopt{IPOD_3G_PAD}{\PluginUp/\PluginDown/\PluginLeft/\PluginRight} 8 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp/\PluginDown/\PluginLeft/\PluginRight}
9 & 9 &
10 \opt{HAVEREMOTEKEYMAP}{ 10 \opt{HAVEREMOTEKEYMAP}{
11 \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight 11 \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight
@@ -13,24 +13,24 @@ one solution.
13 Navigate maze 13 Navigate maze
14 \\ 14 \\
15 15
16 \opt{IPOD_3G_PAD}{\ButtonMenu} 16 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
17 \nopt{IPOD_3G_PAD}{\PluginCancel} 17 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
18 & 18 &
19 \opt{HAVEREMOTEKEYMAP}{\PluginRCCancel 19 \opt{HAVEREMOTEKEYMAP}{\PluginRCCancel
20 &} 20 &}
21 Exit plugin 21 Exit plugin
22 \\ 22 \\
23 23
24 \opt{IPOD_3G_PAD}{Long \ButtonSelect} 24 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
25 \nopt{IPOD_3G_PAD}{\PluginSelectRepeat} 25 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginSelectRepeat}
26 & 26 &
27 \opt{HAVEREMOTEKEYMAP}{\PluginRCSelectRepeat 27 \opt{HAVEREMOTEKEYMAP}{\PluginRCSelectRepeat
28 &} 28 &}
29 New Maze 29 New Maze
30 \\ 30 \\
31 31
32 \opt{IPOD_3G_PAD}{\ButtonSelect} 32 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect}
33 \nopt{IPOD_3G_PAD}{\PluginSelect} 33 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginSelect}
34 & 34 &
35 \opt{HAVEREMOTEKEYMAP}{\PluginRCSelect 35 \opt{HAVEREMOTEKEYMAP}{\PluginRCSelect
36 &} 36 &}
diff --git a/manual/plugins/mazezam.tex b/manual/plugins/mazezam.tex
index 26b18a2375..daf0a5c6ef 100644
--- a/manual/plugins/mazezam.tex
+++ b/manual/plugins/mazezam.tex
@@ -13,8 +13,8 @@ You start the game with three lives.
13Luckily, there are checkpoints at levels four and eight. 13Luckily, there are checkpoints at levels four and eight.
14 14
15\begin{btnmap} 15\begin{btnmap}
16 \opt{IPOD_3G_PAD}{\ButtonScrollBack, \ButtonScrollFwd, \ButtonLeft, \ButtonRight} 16 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollBack, \ButtonScrollFwd, \ButtonLeft, \ButtonRight}
17 \nopt{IPOD_3G_PAD}{\PluginUp, \PluginDown, \PluginLeft, \PluginRight} 17 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp, \PluginDown, \PluginLeft, \PluginRight}
18 & 18 &
19 \opt{HAVEREMOTEKEYMAP}{ 19 \opt{HAVEREMOTEKEYMAP}{
20 \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight 20 \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight
@@ -22,8 +22,8 @@ Luckily, there are checkpoints at levels four and eight.
22 Move Character 22 Move Character
23 \\ 23 \\
24 24
25 \opt{IPOD_3G_PAD}{\ButtonMenu} 25 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
26 \nopt{IPOD_3G_PAD}{\PluginCancel} 26 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
27 & 27 &
28 \opt{HAVEREMOTEKEYMAP}{\PluginRCCancel 28 \opt{HAVEREMOTEKEYMAP}{\PluginRCCancel
29 &} 29 &}
diff --git a/manual/plugins/metronome.tex b/manual/plugins/metronome.tex
index fca34eb91f..b534ba630d 100644
--- a/manual/plugins/metronome.tex
+++ b/manual/plugins/metronome.tex
@@ -21,7 +21,8 @@ You can adjust the tempo through the interface or by tapping it out
21on the appropriate button. 21on the appropriate button.
22 22
23\begin{btnmap} 23\begin{btnmap}
24 \PluginExit 24 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
25 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginExit}
25 \opt{HAVEREMOTEKEYMAP}{& } 26 \opt{HAVEREMOTEKEYMAP}{& }
26 & Exit plugin \\ 27 & Exit plugin \\
27 28
diff --git a/manual/plugins/mosaic.tex b/manual/plugins/mosaic.tex
index d5fdfefe64..42d915aedd 100644
--- a/manual/plugins/mosaic.tex
+++ b/manual/plugins/mosaic.tex
@@ -6,10 +6,11 @@
6This simple graphics demo draws a mosaic picture on the screen of the \dap. 6This simple graphics demo draws a mosaic picture on the screen of the \dap.
7 7
8\begin{btnmap} 8\begin{btnmap}
9 \PluginUp 9 \PluginRight
10 & Change the gap between the drawing lines.\\ 10 & Adjust the speed.\\
11 \PluginSelect 11 \PluginSelect
12 & Restart the drawing process.\\ 12 & Restart the drawing process.\\
13 \PluginCancel{} or \PluginExit 13 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
14 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
14 & Exits Mosaique demo\\ 15 & Exits Mosaique demo\\
15\end{btnmap} 16\end{btnmap}
diff --git a/manual/plugins/oscilloscope.tex b/manual/plugins/oscilloscope.tex
index 27fe8e7ac9..9a6dfe19c9 100644
--- a/manual/plugins/oscilloscope.tex
+++ b/manual/plugins/oscilloscope.tex
@@ -14,7 +14,7 @@ to user input and music may start to skip.
14 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,SANSA_E200_PAD% 14 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,SANSA_E200_PAD%
15 ,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD% 15 ,SANSA_FUZE_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD%
16 ,SANSA_FUZEPLUS_PAD}{\ButtonSelect} 16 ,SANSA_FUZEPLUS_PAD}{\ButtonSelect}
17 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay} 17 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
18 \opt{IRIVER_H10_PAD}{\ButtonRew} 18 \opt{IRIVER_H10_PAD}{\ButtonRew}
19 \opt{GIGABEAT_S_PAD}{\ButtonPrev} 19 \opt{GIGABEAT_S_PAD}{\ButtonPrev}
20 \opt{COWON_D2_PAD}{\TouchTopMiddle} 20 \opt{COWON_D2_PAD}{\TouchTopMiddle}
@@ -92,7 +92,7 @@ to user input and music may start to skip.
92 \opt{HAVEREMOTEKEYMAP}{& } 92 \opt{HAVEREMOTEKEYMAP}{& }
93 & Increase / decrease speed\\ 93 & Increase / decrease speed\\
94 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 94 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
95 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 95 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
96 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD% 96 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
97 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD} 97 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}
98 {\ButtonPower} 98 {\ButtonPower}
diff --git a/manual/plugins/pegbox.tex b/manual/plugins/pegbox.tex
index 59e6fef73f..91a3bc79ff 100644
--- a/manual/plugins/pegbox.tex
+++ b/manual/plugins/pegbox.tex
@@ -101,7 +101,7 @@ block and crosses which allow you to choose a replacement block.
101 } 101 }
102 102
103 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 103 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
104 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect{} + \ButtonPlay} 104 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
105 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD% 105 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD%
106 ,SANSA_C200_PAD,SANSA_CLIP_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 106 ,SANSA_C200_PAD,SANSA_CLIP_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
107 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 107 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/periodic_table.tex b/manual/plugins/periodic_table.tex
index 08e6bf9253..1a8e4b0327 100644
--- a/manual/plugins/periodic_table.tex
+++ b/manual/plugins/periodic_table.tex
@@ -7,7 +7,8 @@ The periodic table plugin allows easy browsing and viewing of details of element
7 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight} 7 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight}
8 & Move cursor\\ 8 & Move cursor\\
9 9
10 \PluginCancel 10 \PluginCancel{}
11 or \PluginSelect
11 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 12 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
12 & Quit\\ 13 & Quit\\
13\end{btnmap} 14\end{btnmap}
diff --git a/manual/plugins/pictureflow.tex b/manual/plugins/pictureflow.tex
index fc4a35274f..0d249299d5 100644
--- a/manual/plugins/pictureflow.tex
+++ b/manual/plugins/pictureflow.tex
@@ -157,8 +157,10 @@ reduces the time it takes for cover art to be displayed.}}
157 Enter context menu 157 Enter context menu
158 \\ 158 \\
159 159
160 \nopt{IAUDIO_M3_PAD,SANSA_FUZEPLUS_PAD,FIIO_M3K_PAD}{\ActionStdMenu} 160 \nopt{IAUDIO_M3_PAD,SANSA_FUZEPLUS_PAD,FIIO_M3K_PAD%
161 ,IPOD_4G_PAD,IPOD_3G_PAD}{\ActionStdMenu}
161 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{or \ButtonRew} 162 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{or \ButtonRew}
163 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu}
162 \opt{SANSA_FUZEPLUS_PAD}{Long \ButtonSelect} 164 \opt{SANSA_FUZEPLUS_PAD}{Long \ButtonSelect}
163 \opt{FIIO_M3K_PAD}{\ButtonPower} 165 \opt{FIIO_M3K_PAD}{\ButtonPower}
164 & 166 &
@@ -173,7 +175,7 @@ reduces the time it takes for cover art to be displayed.}}
173 \opt{IAUDIO_X5_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,SANSA_E200_PAD,SANSA_CLIP_PAD% 175 \opt{IAUDIO_X5_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,SANSA_E200_PAD,SANSA_CLIP_PAD%
174 ,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 176 ,MROBE100_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
175 \opt{SANSA_C200_PAD,IRIVER_H10_PAD}{Long \ButtonPower} 177 \opt{SANSA_C200_PAD,IRIVER_H10_PAD}{Long \ButtonPower}
176 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonMenu} 178 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ActionStdMenu}
177 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 179 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
178 \opt{PBELL_VIBE500_PAD}{\ButtonRec} 180 \opt{PBELL_VIBE500_PAD}{\ButtonRec}
179 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{long \ButtonRew} 181 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{long \ButtonRew}
diff --git a/manual/plugins/plasma.tex b/manual/plugins/plasma.tex
index 8b2cf8b88b..b93ebe095c 100644
--- a/manual/plugins/plasma.tex
+++ b/manual/plugins/plasma.tex
@@ -4,7 +4,7 @@
4Plasma is a demo displaying a 80's style retro plasma effect. 4Plasma is a demo displaying a 80's style retro plasma effect.
5 5
6 \begin{btnmap} 6 \begin{btnmap}
7 \PluginUp{} / \PluginDown 7 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
8 \opt{scrollwheel}{/ \PluginScrollFwd{} / \PluginScrollBack} 8 \opt{scrollwheel}{/ \PluginScrollFwd{} / \PluginScrollBack}
9 & 9 &
10 \opt{HAVEREMOTEKEYMAP}{\PluginRCUp{} / \PluginRCDown 10 \opt{HAVEREMOTEKEYMAP}{\PluginRCUp{} / \PluginRCDown
@@ -21,7 +21,8 @@ Plasma is a demo displaying a 80's style retro plasma effect.
21 \\ 21 \\
22 }% 22 }%
23 23
24 \PluginCancel{} / \PluginExit 24 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} / \PluginExit}
25 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
25 & 26 &
26 \opt{HAVEREMOTEKEYMAP}{\PluginRCCancel 27 \opt{HAVEREMOTEKEYMAP}{\PluginRCCancel
27 \opt{IAUDIO_RC_PAD}{ / \PluginRCExit} 28 \opt{IAUDIO_RC_PAD}{ / \PluginRCExit}
diff --git a/manual/plugins/robotfindskitten.tex b/manual/plugins/robotfindskitten.tex
index 3f5b22595c..86be5bd600 100644
--- a/manual/plugins/robotfindskitten.tex
+++ b/manual/plugins/robotfindskitten.tex
@@ -11,7 +11,8 @@ ends when robotfindskitten.
11 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight} 11 \opt{HAVEREMOTEKEYMAP}{& \PluginRCUp, \PluginRCDown, \PluginRCLeft, \PluginRCRight}
12 & Move robot\\ 12 & Move robot\\
13 13
14 \PluginCancel 14 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
15 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
15 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 16 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
16 & Quit\\ 17 & Quit\\
17\end{btnmap} 18\end{btnmap}
diff --git a/manual/plugins/rockblox.tex b/manual/plugins/rockblox.tex
index 1b28c039a8..1d6bc7b1f6 100644
--- a/manual/plugins/rockblox.tex
+++ b/manual/plugins/rockblox.tex
@@ -101,7 +101,7 @@ the blocks fall faster. If the pile of blocks reaches the ceiling, the game is o
101 & Pause\\ 101 & Pause\\
102 } 102 }
103 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 103 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
104 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect} 104 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
105 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower} 105 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower}
106 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 106 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
107 \opt{GIGABEAT_S_PAD}{\ButtonBack} 107 \opt{GIGABEAT_S_PAD}{\ButtonBack}
diff --git a/manual/plugins/rockblox1d.tex b/manual/plugins/rockblox1d.tex
index a8d27411b7..df0f6480a2 100644
--- a/manual/plugins/rockblox1d.tex
+++ b/manual/plugins/rockblox1d.tex
@@ -10,7 +10,8 @@ horizontal moving anymore and no need to rotate the brick!
10 \opt{HAVEREMOTEKEYMAP}{& } 10 \opt{HAVEREMOTEKEYMAP}{& }
11 & Move down faster\\ 11 & Move down faster\\
12 12
13 \PluginCancel{} or \PluginExit 13 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
14 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
14 \opt{HAVEREMOTEKEYMAP}{& } 15 \opt{HAVEREMOTEKEYMAP}{& }
15 & Quit\\ 16 & Quit\\
16\end{btnmap} 17\end{btnmap}
diff --git a/manual/plugins/rocklife.tex b/manual/plugins/rocklife.tex
index e031e4a115..14687049d9 100644
--- a/manual/plugins/rocklife.tex
+++ b/manual/plugins/rocklife.tex
@@ -30,7 +30,8 @@ ignored.
30 \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft} 30 \opt{HAVEREMOTEKEYMAP}{& \PluginRCLeft}
31 & Status (only when paused)\\ 31 & Status (only when paused)\\
32 32
33 \PluginCancel 33 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel}
34 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
34 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel} 35 \opt{HAVEREMOTEKEYMAP}{& \PluginRCCancel}
35 & Exit\\ 36 & Exit\\
36\end{btnmap} \ No newline at end of file 37\end{btnmap} \ No newline at end of file
diff --git a/manual/plugins/sliding.tex b/manual/plugins/sliding.tex
index 8b0a9774e0..777788f6f9 100644
--- a/manual/plugins/sliding.tex
+++ b/manual/plugins/sliding.tex
@@ -59,7 +59,7 @@ launched via Open With), and numbered tiles \\
59 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD% 59 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,GIGABEAT_PAD%
60 ,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 60 ,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
61 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 61 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
62 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 62 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
63 \opt{GIGABEAT_S_PAD}{\ButtonBack} 63 \opt{GIGABEAT_S_PAD}{\ButtonBack}
64 \opt{PBELL_VIBE500_PAD}{\ButtonRec} 64 \opt{PBELL_VIBE500_PAD}{\ButtonRec}
65 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew} 65 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}
diff --git a/manual/plugins/snake.tex b/manual/plugins/snake.tex
index 7505e27cb1..2c557b7e75 100644
--- a/manual/plugins/snake.tex
+++ b/manual/plugins/snake.tex
@@ -29,6 +29,7 @@ end when the snake touches either the borders of the screen or itself.
29 & Toggle Play/Pause\\ 29 & Toggle Play/Pause\\
30 % 30 %
31 \opt{SANSA_FUZEPLUS_PAD.XDUOO_X3_PAD}{\ButtonPower} 31 \opt{SANSA_FUZEPLUS_PAD.XDUOO_X3_PAD}{\ButtonPower}
32 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
32 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew} 33 \opt{SAMSUNG_YH92X_PAD,SAMSUNG_YH820_PAD}{\ButtonRew}
33 \opt{HAVEREMOTEKEYMAP}{& } 34 \opt{HAVEREMOTEKEYMAP}{& }
34 & Go to the plugin's menu\\ 35 & Go to the plugin's menu\\
diff --git a/manual/plugins/snake2.tex b/manual/plugins/snake2.tex
index bae9b7134e..d37db0fb49 100644
--- a/manual/plugins/snake2.tex
+++ b/manual/plugins/snake2.tex
@@ -31,7 +31,7 @@ into itself.
31 \opt{HAVEREMOTEKEYMAP}{& } 31 \opt{HAVEREMOTEKEYMAP}{& }
32 & Pause and resume the game\\ 32 & Pause and resume the game\\
33 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 33 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
34 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 34 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
35 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,GIGABEAT_PAD% 35 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,GIGABEAT_PAD%
36 ,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower} 36 ,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
37 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 37 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/snow.tex b/manual/plugins/snow.tex
index 13edf8af39..71430198d4 100644
--- a/manual/plugins/snow.tex
+++ b/manual/plugins/snow.tex
@@ -2,5 +2,8 @@
2\screenshot{plugins/images/ss-snow}{Have you ever seen snow falling?}{img:snow} 2\screenshot{plugins/images/ss-snow}{Have you ever seen snow falling?}{img:snow}
3This demo replicates snow falling on your screen. If you love winter, 3This demo replicates snow falling on your screen. If you love winter,
4you will love this demo. Or maybe not. 4you will love this demo. Or maybe not.
5Press \PluginCancel{} or \PluginExit{} to quit. 5Press
6\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit{}}
7\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
8to quit.
6 9
diff --git a/manual/plugins/sokoban.tex b/manual/plugins/sokoban.tex
index 5fd5cbbaa2..3f13eea6d4 100644
--- a/manual/plugins/sokoban.tex
+++ b/manual/plugins/sokoban.tex
@@ -33,7 +33,7 @@ information about the level format, see
33 \opt{HAVEREMOTEKEYMAP}{& } 33 \opt{HAVEREMOTEKEYMAP}{& }
34 & Move the ``sokoban'' up, down, left, or right\\ 34 & Move the ``sokoban'' up, down, left, or right\\
35\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 35\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
36\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 36\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
37\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,GIGABEAT_PAD,MROBE100_PAD,SANSA_E200_PAD,SANSA_C200_PAD% 37\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,GIGABEAT_PAD,MROBE100_PAD,SANSA_E200_PAD,SANSA_C200_PAD%
38 ,SANSA_CLIP_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 38 ,SANSA_CLIP_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
39\opt{SANSA_FUZE_PAD}{Long \ButtonHome} 39\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/solitaire.tex b/manual/plugins/solitaire.tex
index a6c60b3417..72c7d9db5a 100644
--- a/manual/plugins/solitaire.tex
+++ b/manual/plugins/solitaire.tex
@@ -111,7 +111,7 @@ visit
111 & Put the card on top of the remains stack on one of the final colour stacks.\\ 111 & Put the card on top of the remains stack on one of the final colour stacks.\\
112 % 112 %
113 \opt{IRIVER_H300_PAD,IRIVER_H100_PAD}{\ButtonOff} 113 \opt{IRIVER_H300_PAD,IRIVER_H100_PAD}{\ButtonOff}
114 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu{} + \ButtonSelect} 114 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
115 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD% 115 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
116 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower} 116 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD}{\ButtonPower}
117 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 117 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/star.tex b/manual/plugins/star.tex
index f9e207b70f..7c3ae105eb 100644
--- a/manual/plugins/star.tex
+++ b/manual/plugins/star.tex
@@ -107,7 +107,7 @@ could not otherwise reach. The block cannot take ``o''s.
107 \opt{HAVEREMOTEKEYMAP}{& } 107 \opt{HAVEREMOTEKEYMAP}{& }
108 & Next level \\ 108 & Next level \\
109 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 109 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
110 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu} 110 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
111 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD% 111 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
112 ,GIGABEAT_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower} 112 ,GIGABEAT_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
113 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 113 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}
diff --git a/manual/plugins/starfield.tex b/manual/plugins/starfield.tex
index 3169cd863a..2d68a0d5ac 100644
--- a/manual/plugins/starfield.tex
+++ b/manual/plugins/starfield.tex
@@ -8,7 +8,8 @@ Starfield simulation (like the classic screensaver).
8 \opt{HAVEREMOTEKEYMAP}{& } 8 \opt{HAVEREMOTEKEYMAP}{& }
9 & Increase / decrease number of stars\\ 9 & Increase / decrease number of stars\\
10 10
11 \PluginUp{} / \PluginDown 11 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginUp{} / \PluginDown}
12 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonScrollFwd{} / \ButtonScrollBack}
12 \opt{HAVEREMOTEKEYMAP}{& } 13 \opt{HAVEREMOTEKEYMAP}{& }
13 & Increase / decrease speed\\ 14 & Increase / decrease speed\\
14 \opt{lcd_color}{% 15 \opt{lcd_color}{%
@@ -16,7 +17,8 @@ Starfield simulation (like the classic screensaver).
16 \opt{HAVEREMOTEKEYMAP}{& } 17 \opt{HAVEREMOTEKEYMAP}{& }
17 & Change colours\\% 18 & Change colours\\%
18 }% 19 }%
19 \PluginCancel{} or \PluginExit 20 \nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit}
21 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
20 \opt{HAVEREMOTEKEYMAP}{& } 22 \opt{HAVEREMOTEKEYMAP}{& }
21 & Quit\\ 23 & Quit\\
22\end{btnmap} 24\end{btnmap}
diff --git a/manual/plugins/stats.tex b/manual/plugins/stats.tex
index 0dac854d68..eddad8e652 100644
--- a/manual/plugins/stats.tex
+++ b/manual/plugins/stats.tex
@@ -5,6 +5,9 @@ The stats plugin counts the directories and files
5(the total number as well as the number 5(the total number as well as the number
6of audio, playlist, image and video files) 6of audio, playlist, image and video files)
7on your \dap{}. 7on your \dap{}.
8Press \PluginCancel{} or \PluginExit{} to abort counting and 8Press
9\nopt{IPOD_4G_PAD,IPOD_3G_PAD}{\PluginCancel{} or \PluginExit{}}
10\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu}
11to abort counting and
9exit the plugin. Press it again to quit after counting has 12exit the plugin. Press it again to quit after counting has
10finished. 13finished.
diff --git a/manual/plugins/wormlet.tex b/manual/plugins/wormlet.tex
index cf81f58cb1..89724d5641 100644
--- a/manual/plugins/wormlet.tex
+++ b/manual/plugins/wormlet.tex
@@ -152,7 +152,7 @@ There are two ways to stop a running game.
152\begin{itemize} 152\begin{itemize}
153\item If you want to quit Wormlet entirely simply hit 153\item If you want to quit Wormlet entirely simply hit
154\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}% 154\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}%
155\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect}% 155\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}%
156\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}% 156\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}%
157\opt{SANSA_FUZE_PAD}{Long \ButtonHome}% 157\opt{SANSA_FUZE_PAD}{Long \ButtonHome}%
158\opt{PBELL_VIBE500_PAD}{\ButtonRec}% 158\opt{PBELL_VIBE500_PAD}{\ButtonRec}%
@@ -188,7 +188,7 @@ This freezes the game. If you hit
188button again a new game starts with the same configuration. To return to the 188button again a new game starts with the same configuration. To return to the
189games menu you can hit 189games menu you can hit
190\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}% 190\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}%
191\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu+\ButtonSelect}% 191\opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}%
192\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}% 192\opt{IAUDIO_X5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,XDUOO_X3_PAD}{\ButtonPower}%
193\opt{SANSA_FUZE_PAD}{Long \ButtonHome} 193\opt{SANSA_FUZE_PAD}{Long \ButtonHome}
194\opt{PBELL_VIBE500_PAD}{\ButtonRec}% 194\opt{PBELL_VIBE500_PAD}{\ButtonRec}%
diff --git a/manual/plugins/xobox.tex b/manual/plugins/xobox.tex
index 8633916660..c3f8377da7 100644
--- a/manual/plugins/xobox.tex
+++ b/manual/plugins/xobox.tex
@@ -36,7 +36,7 @@ To finish a level you have to section off more than 75\%.
36 \opt{HAVEREMOTEKEYMAP}{& } 36 \opt{HAVEREMOTEKEYMAP}{& }
37 & Pause\\ 37 & Pause\\
38 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} 38 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
39 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect{} + \ButtonMenu} 39 \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long \ButtonSelect}
40 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD% 40 \opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD,SANSA_C200_PAD,SANSA_CLIP_PAD%
41 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower} 41 ,GIGABEAT_PAD,MROBE100_PAD,COWON_D2_PAD,SANSA_FUZEPLUS_PAD,XDUOO_X3_PAD}{\ButtonPower}
42 \opt{SANSA_FUZE_PAD}{Long \ButtonHome} 42 \opt{SANSA_FUZE_PAD}{Long \ButtonHome}