From 0e027bd90c4f0c2aa42c087a1957b42a58e93270 Mon Sep 17 00:00:00 2001 From: Kevin Ferrare Date: Fri, 30 Jun 2006 16:43:47 +0000 Subject: 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 --- apps/plugins/battery_test.c | 7 ++++++- apps/plugins/bounce.c | 24 +++++++++++++++--------- apps/plugins/brickmania.c | 11 +++++++++++ apps/plugins/bubbles.c | 10 ++++++++-- apps/plugins/calculator.c | 5 +++++ apps/plugins/chessbox/chessbox.c | 8 ++++++++ apps/plugins/chip8.c | 5 +++++ apps/plugins/clock.c | 27 ++++++++++++++++++++++++++- apps/plugins/cube.c | 4 ++++ apps/plugins/demystify.c | 7 +++++++ apps/plugins/dice.c | 6 +++++- apps/plugins/fire.c | 5 +++++ apps/plugins/flipit.c | 5 +++++ apps/plugins/grayscale.c | 6 +++++- apps/plugins/jewels.c | 7 +++++++ apps/plugins/jpeg.c | 9 +++++++-- apps/plugins/mandelbrot.c | 5 +++++ apps/plugins/midiplay.c | 6 +++++- apps/plugins/minesweeper.c | 9 ++++++++- apps/plugins/mosaique.c | 5 +++++ apps/plugins/oscilloscope.c | 4 ++++ apps/plugins/plasma.c | 6 ++++++ apps/plugins/pong.c | 7 ++++++- apps/plugins/sliding_puzzle.c | 5 +++++ apps/plugins/snake.c | 11 +++++++++++ apps/plugins/snake2.c | 4 ++++ apps/plugins/snow.c | 9 ++++++++- apps/plugins/sokoban.c | 5 +++++ apps/plugins/solitaire.c | 13 ++++++++++++- apps/plugins/spacerocks.c | 7 ++++++- apps/plugins/splitedit.c | 15 ++++++++++++--- apps/plugins/star.c | 7 +++++++ apps/plugins/starfield.c | 7 +++++++ apps/plugins/stopwatch.c | 6 ++++++ apps/plugins/text_editor.c | 5 +++++ apps/plugins/viewer.c | 5 +++++ apps/plugins/vu_meter.c | 5 +++++ apps/plugins/wormlet.c | 5 +++++ apps/plugins/xobox.c | 5 +++++ 39 files changed, 276 insertions(+), 26 deletions(-) diff --git a/apps/plugins/battery_test.c b/apps/plugins/battery_test.c index 0d38b3281c..cbea016d13 100644 --- a/apps/plugins/battery_test.c +++ b/apps/plugins/battery_test.c @@ -41,6 +41,7 @@ PLUGIN_HEADER #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 @@ enum plugin_status loop(void) 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 b69f64ee85..c0c757c009 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c @@ -52,6 +52,8 @@ PLUGIN_HEADER #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 @@ static int scrollit(void) 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 b5d0e47445..2bd01e74ed 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -32,6 +32,8 @@ PLUGIN_HEADER #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 @@ int game_menu(int when) return 3; } break; +#ifdef RC_QUIT + case RC_QUIT: +#endif case QUIT: return 3; break; @@ -1062,6 +1067,9 @@ int help(int when) 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 @@ int game_loop(void) 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 05e618e525..f2676f7ff1 100755 --- a/apps/plugins/bubbles.c +++ b/apps/plugins/bubbles.c @@ -64,6 +64,8 @@ PLUGIN_HEADER #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 @@ static int bubbles_handlebuttons(struct game_context* bb, bool animblock, 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 @@ static int bubbles(struct game_context* bb) { 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 0cce1860cb..5194f9127b 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -134,6 +134,8 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 edebbf234b..5f2ed9a467 100644 --- a/apps/plugins/chessbox/chessbox.c +++ b/apps/plugins/chessbox/chessbox.c @@ -73,6 +73,8 @@ PLUGIN_HEADER #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 @@ void cb_wt_callback ( void ) { 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 @@ struct cb_command cb_getcommand (void) { 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 2a70369523..3facd04be1 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c @@ -976,6 +976,8 @@ STATIC void chip8 (void) #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 @@ static void chip8_keyboard(void) 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 81caafcf53..756a83dd16 100644 --- a/apps/plugins/clock.c +++ b/apps/plugins/clock.c @@ -155,6 +155,8 @@ PLUGIN_HEADER #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 @@ bool help_screen(void) 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 @@ void settings_screen(void) 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 @@ void confirm_reset(void) #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 @@ void general_settings(void) 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 @@ void select_mode(void) 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 @@ void counter_settings(void) } break; +#ifdef EXIT_RC_BUTTON + case EXIT_RC_BUTTON +#endif case EXIT_BUTTON: current = counting_up; if(current != original) @@ -2947,6 +2966,9 @@ void main_menu(void) } 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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 1db8b24b9c..c7f7b63243 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -82,6 +82,7 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 e86482f837..4ebb6496ca 100644 --- a/apps/plugins/demystify.c +++ b/apps/plugins/demystify.c @@ -51,6 +51,10 @@ PLUGIN_HEADER #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 @@ int plugin_main(void) 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 7d4745ed00..c20b3853a8 100644 --- a/apps/plugins/dice.c +++ b/apps/plugins/dice.c @@ -87,6 +87,8 @@ use stop to exit #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { 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 e0663622e3..7e0c3ba4f5 100644 --- a/apps/plugins/fire.c +++ b/apps/plugins/fire.c @@ -49,6 +49,8 @@ static unsigned char draw_buffer[8*LCD_WIDTH]; #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 @@ int main(void) 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 164949b6dd..4cc7959349 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c @@ -52,6 +52,8 @@ PLUGIN_HEADER #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 @@ static bool flipit_loop(void) { 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 182c081446..162f8d7b21 100644 --- a/apps/plugins/grayscale.c +++ b/apps/plugins/grayscale.c @@ -51,6 +51,8 @@ PLUGIN_HEADER #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 @@ int main(void) 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 02cb8e0b36..02516d72e9 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c @@ -51,6 +51,7 @@ PLUGIN_HEADER #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 @@ static int jewels_main(struct game_context* bj) { break; #ifdef JEWELS_CANCEL +#ifdef JEWELS_RC_CANCEL + case JEWELS_RC_CANCEL: +#endif case JEWELS_CANCEL: return BJ_QUIT; #endif @@ -1415,6 +1419,9 @@ static int jewels_main(struct game_context* bj) { 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 c36eb8a0ee..5656aee7eb 100644 --- a/apps/plugins/jpeg.c +++ b/apps/plugins/jpeg.c @@ -74,6 +74,7 @@ PLUGIN_HEADER #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 @@ int scroll_bmp(struct t_disp* pdisp) #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 @@ int load_and_show(char* filename) 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 ac33e906de..bd0994a5ba 100644 --- a/apps/plugins/mandelbrot.c +++ b/apps/plugins/mandelbrot.c @@ -66,6 +66,8 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 4da4f05ccd..1cdc438d88 100644 --- a/apps/plugins/midiplay.c +++ b/apps/plugins/midiplay.c @@ -40,6 +40,8 @@ PLUGIN_HEADER #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 @@ int midimain(void * filename) 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 bdb6fd70f5..0b4f57106d 100644 --- a/apps/plugins/minesweeper.c +++ b/apps/plugins/minesweeper.c @@ -71,6 +71,8 @@ PLUGIN_HEADER #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 @@ int minesweeper(void) 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 @@ int minesweeper(void) 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 7f3dc65aad..b1f148100b 100644 --- a/apps/plugins/mosaique.c +++ b/apps/plugins/mosaique.c @@ -53,6 +53,8 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 3c20d39500..bd8b949ec6 100644 --- a/apps/plugins/oscilloscope.c +++ b/apps/plugins/oscilloscope.c @@ -62,6 +62,7 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 d8be446afb..e2738eceab 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c @@ -67,6 +67,9 @@ static int plasma_frequency; #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 @@ int main(void) 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 adba3f5379..421ae0295c 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -57,6 +57,7 @@ PLUGIN_HEADER #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 @@ int keys(struct pong *p) 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 8ae2cb8abf..085db8708d 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c @@ -45,6 +45,8 @@ PLUGIN_HEADER #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 @@ static int puzzle_loop(void) 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 3d12b67cce..55b3cbf18a 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -55,6 +55,8 @@ PLUGIN_HEADER #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 @@ void game_pause (void) { 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 @@ void game (void) { 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 @@ void game_init(void) { 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 7fdf24e2a6..f3dc4bed94 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -181,6 +181,7 @@ PLUGIN_HEADER #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 @@ void game (void) 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 80429326bf..bde8be883c 100644 --- a/apps/plugins/snow.c +++ b/apps/plugins/snow.c @@ -47,6 +47,9 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 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 93f7b7edbb..6dfbdc6df6 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c @@ -70,6 +70,8 @@ extern const fb_data sokoban_tiles[]; #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 @@ static bool sokoban_loop(void) 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 45d56950ec..56990beeb3 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -109,6 +109,8 @@ static struct plugin_api* rb; #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 @@ int solitaire_help(void){ #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 @@ int solitaire_menu(unsigned char when_n) 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 @@ int solitaire(void){ 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 c865af69b1..32ab4bdcda 100755 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -65,6 +65,8 @@ static struct plugin_api* rb; /* global api struct pointer */ #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 @@ enum plugin_status start_game(void) 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 927c00008d..fa5ff8e35f 100644 --- a/apps/plugins/splitedit.c +++ b/apps/plugins/splitedit.c @@ -56,7 +56,7 @@ PLUGIN_HEADER #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 @@ static int copy_file( 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 @@ static void save_editor(struct mp3entry *mp3, int splittime) break; } break; - +#ifdef SPLITEDIT_RC_QUIT + case SPLITEDIT_RC_QUIT: +#endif case SPLITEDIT_QUIT: exit_request = true; break; @@ -1171,6 +1177,9 @@ unsigned long splitedit_editor(struct mp3entry * mp3_to_split, 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 5c89a795c8..10bc3fd6af 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -95,6 +95,7 @@ PLUGIN_HEADER #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 @@ static int star_run_game(void) 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 @@ static int star_menu(void) 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 388d59bb9d..64c2b34588 100644 --- a/apps/plugins/starfield.c +++ b/apps/plugins/starfield.c @@ -51,6 +51,10 @@ static struct plugin_api* rb; /* global api struct pointer */ #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 @@ int plugin_main(void) 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 0aff7e2843..d8204e4082 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -63,6 +63,9 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { /* 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 f98194b151..5abd48485f 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) @@ -461,6 +463,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) #ifdef TEXT_EDITOR_CANCEL_PRE if (last_button != TEXT_EDITOR_CANCEL_PRE) break; +#endif +#ifdef TEXT_EDITOR_RC_CANCEL + case TEXT_EDITOR_RC_CANCEL: #endif if (changed) { diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c index 4e72aa13bf..9c60fd155f 100644 --- a/apps/plugins/viewer.c +++ b/apps/plugins/viewer.c @@ -110,6 +110,8 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) 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 d903f97146..d97c834363 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c @@ -58,6 +58,8 @@ PLUGIN_HEADER #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 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) { 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 e4efa8ff28..6a4a5d28f8 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c @@ -83,6 +83,8 @@ PLUGIN_HEADER #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 @@ static int run(void) 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 a4200f01a1..3ae9e22c1e 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -31,6 +31,8 @@ PLUGIN_HEADER #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 @@ static int game_menu (void) case RIGHT: quit = true; break; +#ifdef RC_QUIT + case RC_QUIT: +#endif case QUIT: selection = MENU_QUIT; quit = true; -- cgit v1.2.3