summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-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
50 files changed, 331 insertions, 78 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