To avoid having to use the main unit when accidentally launching a plugin from the remote, plugins now support remote quit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10157 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/plugins/battery_test.c b/apps/plugins/battery_test.c
index 0d38b32..cbea016 100644
--- a/apps/plugins/battery_test.c
+++ b/apps/plugins/battery_test.c
@@ -41,6 +41,7 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define BATTERY_TEST_QUIT BUTTON_OFF
+#define BATTERY_TEST_RC_QUIT BUTTON_RC_STOP
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
#define BATTERY_TEST_QUIT BUTTON_PLAY
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
@@ -123,7 +124,11 @@
rb->button_clear_queue();
button = rb->button_get_w_tmo(HZ * buffersize / 16000 - HZ*10);
- if (button == BATTERY_TEST_QUIT)
+ if (button == BATTERY_TEST_QUIT
+#ifdef BATTERY_TEST_RC_QUIT
+ || button == BATTERY_TEST_RC_QUIT
+#endif
+ )
return PLUGIN_OK;
if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index b69f64e..c0c757c 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -52,6 +52,8 @@
#define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL)
#define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL)
+#define BOUNCE_RC_QUIT (BUTTON_RC_STOP | BUTTON_REL)
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define BOUNCE_UP BUTTON_SCROLL_BACK
@@ -337,15 +339,19 @@
while(1)
{
b = rb->button_get_w_tmo(HZ/10);
- if ( b == BOUNCE_QUIT )
- return 0;
-
- if ( b == BOUNCE_MODE )
- return 1;
-
- if ( rb->default_event_handler(b) == SYS_USB_CONNECTED )
- return -1;
-
+ switch(b)
+ {
+#ifdef BOUNCE_RC_QUIT
+ case BOUNCE_RC_QUIT :
+#endif
+ case BOUNCE_QUIT :
+ return 0;
+ case BOUNCE_MODE :
+ return 1;
+ default:
+ if ( rb->default_event_handler(b) == SYS_USB_CONNECTED )
+ return -1;
+ }
rb->lcd_clear_display();
for(i=0, yy=y, xx=x; i< LETTERS_ON_SCREEN; i++) {
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index b5d0e47..2bd01e7 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -32,6 +32,8 @@
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
+#define RC_QUIT BUTTON_RC_STOP
+
/* Only iPod have scroll events */
#define SCROLL_FWD(x) (0)
#define SCROLL_BACK(x) (0)
@@ -971,6 +973,9 @@
return 3;
}
break;
+#ifdef RC_QUIT
+ case RC_QUIT:
+#endif
case QUIT:
return 3;
break;
@@ -1062,6 +1067,9 @@
button=rb->button_get(true);
switch (button) {
+#ifdef RC_QUIT
+ case RC_QUIT:
+#endif
case QUIT:
switch (game_menu(when)) {
case 0:
@@ -1810,6 +1818,9 @@
con_game=0;
}
break;
+#ifdef RC_QUIT
+ case RC_QUIT:
+#endif
case QUIT:
switch(game_menu(1)) {
case 0:
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c
index 05e618e..f2676f7 100755
--- a/apps/plugins/bubbles.c
+++ b/apps/plugins/bubbles.c
@@ -64,6 +64,8 @@
#define BUBBLES_SELECT BUTTON_SELECT
#define BUBBLES_RESUME BUTTON_MODE
+#define BUBBLES_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define BUBBLES_LEFT BUTTON_SCROLL_BACK
#define BUBBLES_RIGHT BUTTON_SCROLL_FWD
@@ -2407,7 +2409,9 @@
return BB_END;
}
break;
-
+#ifdef BUBBLES_RC_QUIT
+ case BUBBLES_RC_QUIT:
+#endif
case BUBBLES_QUIT: /* end the game */
return BB_END;
@@ -2534,7 +2538,9 @@
bb->level = startlevel;
startgame = true;
break;
-
+#ifdef BUBBLES_RC_QUIT
+ case BUBBLES_RC_QUIT:
+#endif
case BUBBLES_QUIT: /* quit program */
if(showscores) {
showscores = false;
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 0cce186..5194f91 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -134,6 +134,8 @@
#define CALCULATOR_OPERATORS BUTTON_MODE
#define CALCULATOR_CLEAR BUTTON_REC
+#define CALCULATOR_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
@@ -1402,6 +1404,9 @@
case CALCULATOR_DOWN | BUTTON_REPEAT:
moveButton();
break;
+#ifdef CALCULATOR_RC_QUIT
+ case CALCULATOR_RC_QUIT:
+#endif
case CALCULATOR_QUIT:
calStatus = cal_exit;
printResult();
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index edebbf2..5f2ed9a 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -73,6 +73,8 @@
#define CB_RESTART BUTTON_REC
#define CB_QUIT BUTTON_OFF
+#define CB_RC_QUIT BUTTON_RC_STOP
+
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
#define CB_SELECT BUTTON_SELECT
#define CB_UP BUTTON_UP
@@ -280,6 +282,9 @@
wt_command = COMMAND_NOP;
button = rb->button_get(false);
switch (button) {
+#ifdef CB_RC_QUIT
+ case CB_RC_QUIT:
+#endif
case CB_QUIT:
wt_command = COMMAND_QUIT;
timeout = true;
@@ -486,6 +491,9 @@
while ( true ) {
button = rb->button_get(true);
switch (button) {
+#ifdef CB_RC_QUIT
+ case CB_RC_QUIT:
+#endif
case CB_QUIT:
result.type = COMMAND_QUIT;
return result;
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 2a70369..3facd04 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -976,6 +976,8 @@
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_DOWN
+#define CHIP8_RC_OFF BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define CHIP8_OFF BUTTON_MENU
@@ -1106,6 +1108,9 @@
int button = rb->button_get(false);
switch (button)
{
+#ifdef CHIP8_RC_OFF
+ case CHIP8_RC_OFF:
+#endif
case CHIP8_OFF: /* Abort Emulator */
chip8_running = 0;
break;
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c
index 81caafc..756a83d 100644
--- a/apps/plugins/clock.c
+++ b/apps/plugins/clock.c
@@ -155,6 +155,8 @@
#define CHANGE_UP_BUTTON BUTTON_RIGHT
#define CHANGE_DOWN_BUTTON BUTTON_LEFT
+#define EXIT_RC_BUTTON BUTTON_RC_STOP
+
#define YESTEXT "Select/Navi"
#define NAVI_BUTTON_TEXT_LEFT "LEFT"
#define NAVI_BUTTON_TEXT_RIGHT "RIGHT"
@@ -1778,6 +1780,9 @@
switch(rb->button_get_w_tmo(HZ/4))
{
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON:
+#endif
case EXIT_BUTTON:
done = true;
break;
@@ -2061,7 +2066,9 @@
case CHANGE_UP_BUTTON:
change_setting(cursorpos-1, 1, false);
break;
-
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON:
case MENU_BUTTON:
done = true;
@@ -2107,6 +2114,9 @@
#endif
case CHANGE_DOWN_BUTTON:
case CHANGE_UP_BUTTON:
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON:
ask_reset_done = true;
break;
@@ -2148,6 +2158,9 @@
switch(rb->button_get_w_tmo(HZ/4))
{
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON:
case MENU_BUTTON:
if(settings.general[general_savesetting] == 2)
@@ -2495,6 +2508,9 @@
done = true;
break;
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON:
case CHANGE_DOWN_BUTTON:
done = true;
@@ -2825,6 +2841,9 @@
}
break;
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON:
current = counting_up;
if(current != original)
@@ -2947,6 +2966,9 @@
}
break;
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON:
case CHANGE_DOWN_BUTTON:
#ifdef ALT_MENU_BUTTON
@@ -3065,6 +3087,9 @@
button = rb->button_get_w_tmo(HZ/10);
switch (button)
{
+#ifdef EXIT_RC_BUTTON
+ case EXIT_RC_BUTTON
+#endif
case EXIT_BUTTON: /* save and exit */
cleanup(NULL);
return PLUGIN_OK;
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 1db8b24..c7f7b63 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -82,6 +82,7 @@
#define CUBE_PAUSE (BUTTON_ON | BUTTON_REL)
#define CUBE_HIGHSPEED BUTTON_SELECT
+#define CUBE_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define CUBE_QUIT BUTTON_MENU
@@ -773,6 +774,9 @@
t_disp = DISP_TIME;
break;
+#ifdef CUBE_RC_QUIT
+ case CUBE_RC_QUIT:
+#endif
case CUBE_QUIT:
exit = true;
break;
diff --git a/apps/plugins/demystify.c b/apps/plugins/demystify.c
index e86482f..4ebb649 100644
--- a/apps/plugins/demystify.c
+++ b/apps/plugins/demystify.c
@@ -51,6 +51,10 @@
#define DEMYSTIFY_REMOVE_POLYGON BUTTON_DOWN
#define DEMYSTIFY_INCREASE_SPEED BUTTON_RIGHT
#define DEMYSTIFY_DECREASE_SPEED BUTTON_LEFT
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
+ (CONFIG_KEYPAD == IRIVER_H300_PAD)
+#define DEMYSTIFY_RC_QUIT BUTTON_RC_STOP
+#endif
#endif
#define DEFAULT_WAIT_TIME 3
@@ -315,6 +319,9 @@
button = rb->button_get(false);
switch(button)
{
+#ifdef DEMYSTIFY_RC_QUIT
+ case DEMYSTIFY_RC_QUIT :
+#endif
case (DEMYSTIFY_QUIT):
cleanup(NULL);
return PLUGIN_OK;
diff --git a/apps/plugins/dice.c b/apps/plugins/dice.c
index 7d4745e..c20b385 100644
--- a/apps/plugins/dice.c
+++ b/apps/plugins/dice.c
@@ -87,6 +87,8 @@
#define DICE_BUTTON_LEFT BUTTON_LEFT
#define DICE_BUTTON_RIGHT BUTTON_RIGHT
+#define DICE_BUTTON_RC_OFF BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD)
#define DICE_BUTTON_UP BUTTON_SCROLL_FWD
#define DICE_BUTTON_DOWN BUTTON_SCROLL_BACK
@@ -205,7 +207,9 @@
print_dice(dice, total);
}
break;
-
+#ifdef DICE_BUTTON_RC_OFF
+ case DICE_BUTTON_RC_OFF:
+#endif
case DICE_BUTTON_OFF:
selected = EXIT;
break;
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c
index e066362..7e0c3ba 100644
--- a/apps/plugins/fire.c
+++ b/apps/plugins/fire.c
@@ -49,6 +49,8 @@
#define FIRE_INCREASE_MULT BUTTON_UP
#define FIRE_DECREASE_MULT BUTTON_DOWN
+#define FIRE_RC_QUIT BUTTON_RC_STOP
+
#elif CONFIG_KEYPAD == RECORDER_PAD
#define FIRE_QUIT BUTTON_OFF
#define FIRE_SWITCH_FLAMES_TYPE BUTTON_ON
@@ -357,6 +359,9 @@
switch(button)
{
+#ifdef FIRE_RC_QUIT
+ case FIRE_RC_QUIT :
+#endif
case(FIRE_QUIT):
cleanup(NULL);
return PLUGIN_OK;
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 164949b..4cc7959 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -52,6 +52,8 @@
#define FLIPIT_TOGGLE_PRE BUTTON_SELECT
#define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL)
+#define FLIPIT_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
@@ -336,6 +338,9 @@
while(true) {
button = rb->button_get(true);
switch (button) {
+#ifdef FLIPIT_RC_QUIT
+ case FLIPIT_RC_QUIT:
+#endif
case FLIPIT_QUIT:
/* get out of here */
return PLUGIN_OK;
diff --git a/apps/plugins/grayscale.c b/apps/plugins/grayscale.c
index 182c081..162f8d7 100644
--- a/apps/plugins/grayscale.c
+++ b/apps/plugins/grayscale.c
@@ -51,6 +51,8 @@
#define GRAYSCALE_RIGHT BUTTON_RIGHT
#define GRAYSCALE_OFF BUTTON_OFF
+#define GRAYSCALE_RC_OFF BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define GRAYSCALE_SHIFT (BUTTON_SELECT | BUTTON_REL)
#define GRAYSCALE_UP BUTTON_MENU
@@ -315,7 +317,9 @@
gray_scroll_down(scroll_amount); /* scroll down */
gray_update();
break;
-
+#ifdef GRAYSCALE_RC_OFF
+ case GRAYSCALE_RC_OFF:
+#endif
case GRAYSCALE_OFF:
cleanup(NULL);
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 02cb8e0..02516d7 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -51,6 +51,7 @@
#define JEWELS_SELECT BUTTON_SELECT
#define JEWELS_CANCEL BUTTON_OFF
+#define JEWELS_RC_CANCEL BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define JEWELS_SCROLLWHEEL
#define JEWELS_UP BUTTON_MENU
@@ -1234,6 +1235,9 @@
break;
#ifdef JEWELS_CANCEL
+#ifdef JEWELS_RC_CANCEL
+ case JEWELS_RC_CANCEL:
+#endif
case JEWELS_CANCEL:
return BJ_QUIT;
#endif
@@ -1415,6 +1419,9 @@
break;
#ifdef JEWELS_CANCEL
+#ifdef JEWELS_RC_CANCEL
+ case JEWELS_RC_CANCEL:
+#endif
case JEWELS_CANCEL: /* end game */
return BJ_END;
break;
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index c36eb8a..5656aee 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -74,6 +74,7 @@
#define JPEG_PREVIOUS BUTTON_ON
#endif
#define JPEG_MENU BUTTON_OFF
+#define JPEG_RC_MENU BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define JPEG_ZOOM_IN BUTTON_SCROLL_FWD
@@ -2287,7 +2288,9 @@
#endif
return ZOOM_OUT;
break;
-
+#ifdef JPEG_RC_MENU
+ case JPEG_RC_MENU:
+#endif
case JPEG_MENU:
#ifdef USEGSLIB
gray_show(false); /* switch off grayscale overlay */
@@ -2559,7 +2562,9 @@
rb->plugin_get_audio_buffer(&buf_images_size);
/*try again this file, now using the audio buffer */
return PLUGIN_OTHER;
-
+#ifdef JPEG_RC_MENU
+ case JPEG_RC_MENU:
+#endif
case JPEG_MENU:
return PLUGIN_OK;
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index ac33e90..bd0994a 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -66,6 +66,8 @@
#define MANDELBROT_MAXITER_DEC (BUTTON_ON | BUTTON_LEFT)
#define MANDELBROT_RESET BUTTON_REC
+#define MANDELBROT_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define MANDELBROT_QUIT (BUTTON_SELECT | BUTTON_MENU)
@@ -516,6 +518,9 @@
button = rb->button_get(true);
switch (button) {
+#ifdef MANDELBROT_RC_QUIT
+ case MANDELBROT_RC_QUIT:
+#endif
case MANDELBROT_QUIT:
#ifdef USEGSLIB
gray_release();
diff --git a/apps/plugins/midiplay.c b/apps/plugins/midiplay.c
index 4da4f05..1cdc438 100644
--- a/apps/plugins/midiplay.c
+++ b/apps/plugins/midiplay.c
@@ -40,6 +40,8 @@
#define BTN_UP BUTTON_UP
#define BTN_DOWN BUTTON_DOWN
+#define BTN_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define BTN_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define BTN_RIGHT BUTTON_RIGHT
@@ -300,7 +302,9 @@
tick();
break;
}
-
+#ifdef BTN_RC_QUIT
+ case BTN_RC_QUIT:
+#endif
case BTN_QUIT:
quit=1;
}
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index bdb6fd7..0b4f571 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -71,6 +71,8 @@
#define MINESWP_RIGHT (BUTTON_ON | BUTTON_RIGHT)
#define MINESWP_LEFT (BUTTON_ON | BUTTON_LEFT)
+#define MINESWP_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define MINESWP_UP BUTTON_SCROLL_BACK
@@ -506,7 +508,9 @@
case MINESWP_START:/* start playing */
i = 1;
break;
-
+#ifdef MINESWP_RC_QUIT
+ case MINESWP_RC_QUIT:
+#endif
case MINESWP_QUIT:/* quit program */
return MINESWEEPER_QUIT;
@@ -580,6 +584,9 @@
button = rb->button_get(true);
switch(button){
/* quit minesweeper (you really shouldn't use this button ...) */
+#ifdef MINESWP_RC_QUIT
+ case MINESWP_RC_QUIT:
+#endif
case MINESWP_QUIT:
return MINESWEEPER_QUIT;
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 7f3dc65..b1f1481 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -53,6 +53,8 @@
#define MOSAIQUE_SPEED BUTTON_MODE
#define MOSAIQUE_RESTART BUTTON_ON
+#define MOSAIQUE_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define MOSAIQUE_QUIT BUTTON_MENU
@@ -136,6 +138,9 @@
button = rb->button_get(false);
switch (button)
{
+#ifdef MOSAIQUE_RC_QUIT
+ case MOSAIQUE_RC_QUIT:
+#endif
case MOSAIQUE_QUIT:
MYLCD(set_drawmode)(DRMODE_SOLID);
#ifdef HAVE_LCD_CHARCELLS
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 3c20d39..bd8b949 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -62,6 +62,7 @@
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
+#define OSCILLOSCOPE_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define OSCILLOSCOPE_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_PLAY)
@@ -583,6 +584,9 @@
button = rb->button_get(paused);
switch (button)
{
+#ifdef OSCILLOSCOPE_RC_QUIT
+ case OSCILLOSCOPE_RC_QUIT:
+#endif
case OSCILLOSCOPE_QUIT:
exit = true;
break;
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index d8be446..e2738ec 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -67,6 +67,9 @@
#define PLASMA_QUIT BUTTON_OFF
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
+#define PLASMA_RC_QUIT BUTTON_RC_STOP
+#endif
#endif
#ifdef HAVE_LCD_COLOR
@@ -283,6 +286,9 @@
switch(button)
{
+#ifdef PLASMA_RC_QUIT
+ case PLASMA_RC_QUIT:
+#endif
case(PLASMA_QUIT):
cleanup(NULL);
return PLUGIN_OK;
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index adba3f5..421ae02 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -57,6 +57,7 @@
#define PONG_LEFT_DOWN BUTTON_DOWN
#define PONG_RIGHT_UP BUTTON_ON
#define PONG_RIGHT_DOWN BUTTON_MODE
+#define PONG_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
@@ -298,7 +299,11 @@
while(end > *rb->current_tick) {
key = rb->button_get_w_tmo(end - *rb->current_tick);
- if(key & PONG_QUIT)
+ if(key & PONG_QUIT
+#ifdef PONG_RC_QUIT
+ || key & PONG_RC_QUIT
+#endif
+ )
return 0; /* exit game NOW */
if(key & PONG_LEFT_DOWN) /* player left goes down */
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 8ae2cb8..085db87 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -45,6 +45,8 @@
#define PUZZLE_SHUFFLE BUTTON_SELECT
#define PUZZLE_PICTURE BUTTON_ON
+#define PUZZLE_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_MENU)
@@ -291,6 +293,9 @@
while(true) {
button = rb->button_get(true);
switch (button) {
+#ifdef PUZZLE_RC_QUIT
+ case PUZZLE_RC_QUIT:
+#endif
case PUZZLE_QUIT:
/* get out of here */
return PLUGIN_OK;
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 3d12b67..55b3cbf 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -55,6 +55,8 @@
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_ON
+#define SNAKE_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU)
@@ -219,6 +221,9 @@
while (1) {
button=rb->button_get(true);
switch (button) {
+#ifdef SNAKE_RC_QUIT
+ case SNAKE_RC_QUIT:
+#endif
case SNAKE_QUIT:
dead=1;
return;
@@ -275,6 +280,9 @@
case BUTTON_LEFT:
if (dir!=1) dir=3;
break;
+#ifdef SNAKE_RC_QUIT
+ case SNAKE_RC_QUIT:
+#endif
case SNAKE_QUIT:
dead=1;
return;
@@ -336,6 +344,9 @@
if (level>1)
level--;
break;
+#ifdef SNAKE_RC_QUIT
+ case SNAKE_RC_QUIT:
+#endif
case SNAKE_QUIT:
dead=1;
return;
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 7fdf24e..f3dc4be 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -181,6 +181,7 @@
#define SNAKE2_PLAYPAUSE BUTTON_ON
#define SNAKE2_PLAYPAUSE_TEXT "Play"
+#define SNAKE2_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define SNAKE2_UP BUTTON_MENU
@@ -1134,6 +1135,9 @@
if (dir != EAST) set_direction(WEST);
break;
+#ifdef SNAKE2_RC_QUIT
+ case SNAKE2_RC_QUIT:
+#endif
case SNAKE2_QUIT:
dead=1;
return;
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 8042932..bde8be8 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -47,6 +47,9 @@
#define SNOW_QUIT BUTTON_A
#else
#define SNOW_QUIT BUTTON_OFF
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
+#define SNOW_RC_QUIT BUTTON_RC_STOP
+#endif
#endif
static short particles[NUM_PARTICLES][2];
@@ -189,7 +192,11 @@
button = rb->button_get(false);
- if (button == SNOW_QUIT)
+ if (button == SNOW_QUIT
+#ifdef SNOW_RC_QUIT
+ || button == SNOW_RC_QUIT
+#endif
+ )
{
#ifdef HAVE_LCD_CHARCELLS
pgfx_release();
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 93f7b7e..6dfbdc6 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -70,6 +70,8 @@
#define SOKOBAN_LEVEL_DOWN BUTTON_REC
#define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT
+#define SOKOBAN_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define SOKOBAN_UP BUTTON_MENU
@@ -563,6 +565,9 @@
switch(button)
{
+#ifdef SOKOBAN_RC_QUIT
+ case SOKOBAN_RC_QUIT:
+#endif
case SOKOBAN_QUIT:
/* get out of here */
#ifdef HAVE_LCD_COLOR /* reset background color */
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 45d5695..56990be 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -109,6 +109,8 @@
#define SOL_OPT BUTTON_ON
#define SOL_REM BUTTON_REC
+#define SOL_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU)
@@ -463,7 +465,9 @@
#endif
rb->splash(HZ*2, true, HELP_SOL_REM2CUR);
break;
-
+#ifdef SOL_RC_QUIT
+ case SOL_RC_QUIT:
+#endif
case SOL_QUIT:
return HELP_QUIT;
@@ -600,6 +604,10 @@
case SOL_OPT:
return MENU_OPT;
#endif
+
+#ifdef SOL_RC_QUIT
+ case SOL_RC_QUIT:
+#endif
case SOL_QUIT:
return MENU_QUIT;
@@ -1460,6 +1468,9 @@
break;
/* Show the menu */
+#ifdef SOL_RC_QUIT
+ case SOL_RC_QUIT:
+#endif
case SOL_QUIT:
#if LCD_DEPTH>1
rb->lcd_set_background(LCD_DEFAULT_BG);
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index c865af6..32ab4bd 100755
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -65,6 +65,8 @@
#define AST_FIRE BUTTON_SELECT
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
+#define AST_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
#define AST_PAUSE BUTTON_PLAY
#define AST_QUIT BUTTON_POWER
@@ -1531,7 +1533,10 @@
else if(game_state == PAUSE_MODE)
game_state = PLAY_MODE;
break;
-
+
+#ifdef AST_RC_QUIT
+ case AST_RC_QUIT:
+#endif
case(AST_QUIT):
if(game_state == ATTRACT_MODE)
return PLUGIN_OK;
diff --git a/apps/plugins/splitedit.c b/apps/plugins/splitedit.c
index 927c000..fa5ff8e 100644
--- a/apps/plugins/splitedit.c
+++ b/apps/plugins/splitedit.c
@@ -56,7 +56,7 @@
#define SPLITEDIT_SPEED150 (BUTTON_REC | BUTTON_RIGHT)
#define SPLITEDIT_MENU_RUN BUTTON_RIGHT
-
+#define SPLITEDIT_RC_QUIT BUTTON_RC_STOP
#endif
#define BMPHEIGHT 7
@@ -593,7 +593,11 @@
button = rb->button_get(false);
- if (button == SPLITEDIT_QUIT) {
+ if (button == SPLITEDIT_QUIT
+#ifdef SPLITEDIT_RC_QUIT
+ || button == SPLITEDIT_RC_QUIT:
+#endif
+ ) {
rb->splash(0, true, "Aborting copy.");
rb->button_get(true);
rb->button_get(true);
@@ -887,7 +891,9 @@
break;
}
break;
-
+#ifdef SPLITEDIT_RC_QUIT
+ case SPLITEDIT_RC_QUIT:
+#endif
case SPLITEDIT_QUIT:
exit_request = true;
break;
@@ -1171,6 +1177,9 @@
update_icons();
break;
+#ifdef SPLITEDIT_RC_QUIT
+ case SPLITEDIT_RC_QUIT:
+#endif
case SPLITEDIT_QUIT:
exit_request = true;
break;
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 5c89a79..10bc3fd 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -95,6 +95,7 @@
#define STAR_LEVEL_REPEAT (BUTTON_MODE | BUTTON_UP)
#define STAR_MENU_RUN BUTTON_RIGHT
+#define STAR_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
@@ -687,6 +688,9 @@
key = rb->button_get(true);
switch (key)
{
+#ifdef STAR_RC_QUIT
+ case STAR_RC_QUIT:
+#endif
case STAR_QUIT:
return 0;
@@ -905,6 +909,9 @@
key = rb->button_get(false);
switch (key)
{
+#ifdef STAR_RC_QUIT
+ case STAR_RC_QUIT:
+#endif
case STAR_QUIT:
return PLUGIN_OK;
case STAR_UP:
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 388d59b..64c2b34 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -51,6 +51,10 @@
#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
+#define STARFIELD_RC_QUIT BUTTON_RC_STOP
+#endif
+
#endif
#define LCD_CENTER_X (LCD_WIDTH/2)
@@ -252,6 +256,9 @@
starfield_del_stars(&starfield, STARFIELD_INCREASE_STEP);
t_disp=MSG_DISP_TIME;
break;
+#ifdef STARFIELD_RC_QUIT
+ case STARFIELD_RC_QUIT:
+#endif
case(STARFIELD_QUIT):
case(SYS_USB_CONNECTED):
rb->backlight_set_timeout(rb->global_settings->backlight_timeout);
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 0aff7e2..d8204e4 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -63,6 +63,9 @@
#define STOPWATCH_LAP_TIMER BUTTON_ON
#define STOPWATCH_SCROLL_UP BUTTON_RIGHT
#define STOPWATCH_SCROLL_DOWN BUTTON_LEFT
+
+#define STOPWATCH_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
#define STOPWATCH_QUIT BUTTON_MENU
@@ -200,6 +203,9 @@
{
/* exit */
+#ifdef STOPWATCH_RC_QUIT
+ case STOPWATCH_RC_QUIT:
+#endif
case STOPWATCH_QUIT:
done = true;
break;
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c
index f98194b..5abd484 100644
--- a/apps/plugins/text_editor.c
+++ b/apps/plugins/text_editor.c
@@ -35,6 +35,8 @@
#define TEXT_EDITOR_DELETE BUTTON_REC
#define TEXT_EDITOR_ITEM_MENU BUTTON_MODE
+#define TEXT_EDITOR_RC_CANCEL BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
#define TEXT_EDITOR_SELECT_PRE BUTTON_SELECT
#define TEXT_EDITOR_SELECT ( BUTTON_SELECT | BUTTON_REL)
@@ -462,6 +464,9 @@
if (last_button != TEXT_EDITOR_CANCEL_PRE)
break;
#endif
+#ifdef TEXT_EDITOR_RC_CANCEL
+ case TEXT_EDITOR_RC_CANCEL:
+#endif
if (changed)
{
int m;
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 4e72aa1..9c60fd1 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -110,6 +110,8 @@
#define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT)
#define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT)
+#define VIEWER_RC_QUIT BUTTON_RC_STOP
+
/* iPods with the 4G pad */
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD)
@@ -1368,6 +1370,9 @@
break;
#endif
+#ifdef VIEWER_RC_QUIT
+ case VIEWER_RC_QUIT:
+#endif
case VIEWER_QUIT:
viewer_exit(NULL);
done = true;
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index d903f97..d97c834 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -58,6 +58,8 @@
#define VUMETER_UP BUTTON_UP
#define VUMETER_DOWN BUTTON_DOWN
+#define VUMETER_RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_4G_PAD)
#define VUMETER_QUIT BUTTON_MENU
@@ -521,6 +523,9 @@
button = rb->button_get_w_tmo(1);
switch (button)
{
+#ifdef VUMETER_RC_QUIT
+ case VUMETER_RC_QUIT:
+#endif
case VUMETER_QUIT:
save_settings();
return PLUGIN_OK;
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index e4efa8f..6a4a5d2 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -83,6 +83,8 @@
#define BTN_QUIT (BUTTON_SELECT|BUTTON_MENU)
#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_PLAY)
+#define BTN_RC_QUIT BUTTON_RC_STOP
+
#define PLAYERS_TEXT "Menu/Play"
#define WORMS_TEXT "Left/Right"
@@ -1487,6 +1489,9 @@
else
paused = true;
break;
+#ifdef BTN_RC_QUIT
+ case BTN_RC_QUIT:
+#endif
case BTN_QUIT:
return 2; /* back to menu */
break;
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index a4200f0..3ae9e22 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -31,6 +31,8 @@
#define DOWN BUTTON_DOWN
#define SELECT BUTTON_SELECT
+#define RC_QUIT BUTTON_RC_STOP
+
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_4G_PAD)
@@ -729,6 +731,9 @@
case RIGHT:
quit = true;
break;
+#ifdef RC_QUIT
+ case RC_QUIT:
+#endif
case QUIT:
selection = MENU_QUIT;
quit = true;