From faa2cb99429214de745bbc3e64e48a7432db51ae Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Sun, 18 Dec 2022 21:13:15 +0100 Subject: plugins: Improve usability of iPod keymaps - Reduce need to press multiple buttons at the same time to quit a plugin - Have "Menu" be default way to quit plugins or to access plugin menu - Fall back to (Long) "Select" or Long "Menu" in cases where Menu button isn't available (e.g. in ImageViewer and many games) out of scope: boomshine, lua_scripts, Rockpaint, Doom, Duke3D, Pacbox, Quake, Sgt-Puzzles, Wolf3D, XWorld, Minesweeper, Pixel Painter, Spacerocks Change-Id: I6d4dc7174695fe4b8ee9cbaccb21bdbfe6af5c48 --- apps/plugins/2048.c | 9 ++++++- apps/plugins/alarmclock.c | 6 +++++ apps/plugins/bounce.c | 23 ++++++++++++++--- apps/plugins/bubbles.c | 10 +++++++- apps/plugins/calendar.c | 11 ++++---- apps/plugins/chessbox/chessbox_pgn.h | 2 +- apps/plugins/clix.c | 8 +++--- apps/plugins/clock/clock.c | 10 +++++++- apps/plugins/codebuster.c | 7 ++++++ apps/plugins/cube.c | 12 +++++++-- apps/plugins/demystify.c | 20 +++++++++++++-- apps/plugins/dice.c | 7 ++++++ apps/plugins/fft/fft.c | 36 +++++++++++++++++++++------ apps/plugins/fire.c | 9 ++++++- apps/plugins/fireworks.c | 9 ++++++- apps/plugins/flipit.c | 4 +-- apps/plugins/fractals/fractal.h | 2 +- apps/plugins/imageviewer/imageviewer.c | 30 ++++++++++++++++------ apps/plugins/imageviewer/imageviewer_button.h | 6 +++-- apps/plugins/jackpot.c | 9 ++++++- apps/plugins/jewels.c | 4 +-- apps/plugins/lamp.c | 7 ++++++ apps/plugins/logo.c | 14 ++++++++++- apps/plugins/matrix.c | 9 ++++++- apps/plugins/maze.c | 15 ++++++++--- apps/plugins/mazezam.c | 4 ++- apps/plugins/metronome.c | 6 +++++ apps/plugins/mosaique.c | 11 ++++++-- apps/plugins/open_plugins.c | 1 + apps/plugins/oscilloscope.c | 10 +++++--- apps/plugins/pegbox.c | 4 +-- apps/plugins/periodic_table.c | 1 - apps/plugins/pictureflow/pictureflow.c | 3 ++- apps/plugins/pitch_detector.c | 5 ++++ apps/plugins/plasma.c | 9 +++++++ apps/plugins/robotfindskitten.c | 6 +++++ apps/plugins/rockblox.c | 3 ++- apps/plugins/rockblox1d.c | 7 ++++++ apps/plugins/rocklife.c | 6 +++++ apps/plugins/sliding_puzzle.c | 4 +-- apps/plugins/snake.c | 4 +-- apps/plugins/snake2.c | 4 +-- apps/plugins/snow.c | 8 +++++- apps/plugins/sokoban.c | 2 +- apps/plugins/solitaire.c | 2 +- apps/plugins/star.c | 4 +-- apps/plugins/starfield.c | 10 ++++++++ apps/plugins/stats.c | 10 +++++++- apps/plugins/wormlet.c | 2 +- apps/plugins/xobox.c | 4 +-- 50 files changed, 331 insertions(+), 78 deletions(-) (limited to 'apps') 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); #define KEY_DOWN PLA_DOWN #define KEY_LEFT PLA_LEFT #define KEY_RIGHT PLA_RIGHT -#define KEY_EXIT PLA_CANCEL #define KEY_UNDO PLA_SELECT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define KEY_EXIT PLA_SELECT_REPEAT +#else +#define KEY_EXIT PLA_CANCEL +#endif + /* notice how "color" is spelled :P */ #ifdef HAVE_LCD_COLOR 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) while(!quit) { button = get_button(); +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) + if (button == PLA_EXIT || button == PLA_CANCEL || button == PLA_UP) +#else if (button == PLA_EXIT || button == PLA_CANCEL) +#endif quit = true; 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 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; /* We set button maping with PLA */ -#define BOUNCE_UP PLA_UP -#define BOUNCE_UP_REPEAT PLA_UP_REPEAT -#define BOUNCE_DOWN PLA_DOWN -#define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT #ifdef HAVE_SCROLLWHEEL #define BOUNCE_LEFT PLA_SCROLL_BACK @@ -52,7 +48,22 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; #endif #define BOUNCE_QUIT PLA_EXIT + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define BOUNCE_QUIT2 PLA_UP +#define BOUNCE_DOWN PLA_LEFT +#define BOUNCE_DOWN_REPEAT PLA_LEFT_REPEAT +#define BOUNCE_UP PLA_RIGHT +#define BOUNCE_UP_REPEAT PLA_RIGHT_REPEAT +#else #define BOUNCE_QUIT2 PLA_CANCEL +#define BOUNCE_DOWN PLA_DOWN +#define BOUNCE_DOWN_REPEAT PLA_DOWN_REPEAT +#define BOUNCE_UP PLA_UP +#define BOUNCE_UP_REPEAT PLA_UP_REPEAT +#endif #define BOUNCE_MODE PLA_SELECT #define LETTER_WIDTH 11 @@ -471,6 +482,10 @@ enum plugin_status plugin_start(const void* parameter) #if (CONFIG_KEYPAD == SAMSUNG_YH92X_PAD) || \ (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) "[Rew] to stop"; +#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) + "[Menu] to stop"; #else "[Off] to stop"; #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 { #define ANGLE_STEP_REP 6 #define BUBBLES_QUIT1 PLA_EXIT -#define BUBBLES_QUIT2 PLA_CANCEL /* these are better off shooting with up */ #if (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) \ @@ -92,10 +91,19 @@ enum { #define BUBBLES_FIRE PLA_UP #define BUBBLES_FIRE_REPEAT PLA_UP_REPEAT #define BUBBLES_PAUSE PLA_SELECT +#define BUBBLES_QUIT2 PLA_CANCEL +#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define BUBBLES_FIRE PLA_SELECT +#define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT +#define BUBBLES_PAUSE PLA_DOWN +#define BUBBLES_QUIT2 PLA_UP #else #define BUBBLES_FIRE PLA_SELECT #define BUBBLES_FIRE_REPEAT PLA_SELECT_REPEAT #define BUBBLES_PAUSE PLA_UP +#define BUBBLES_QUIT2 PLA_CANCEL #endif /* 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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define CALENDAR_QUIT (BUTTON_SELECT|BUTTON_MENU) +#define CALENDAR_QUIT (BUTTON_MENU|BUTTON_REL) #define CALENDAR_SELECT (BUTTON_SELECT|BUTTON_REL) #define CALENDAR_NEXT_WEEK BUTTON_SCROLL_FWD #define CALENDAR_PREV_WEEK BUTTON_SCROLL_BACK #define CALENDAR_NEXT_DAY BUTTON_RIGHT #define CALENDAR_PREV_DAY BUTTON_LEFT -#define CALENDAR_NEXT_MONTH BUTTON_PLAY -#define CALENDAR_PREV_MONTH (BUTTON_MENU|BUTTON_REL) #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) #define CALENDAR_QUIT BUTTON_POWER @@ -1095,17 +1093,18 @@ enum plugin_status plugin_start(const void* parameter) case CALENDAR_QUIT: exit = true; break; - +#ifdef CALENDAR_NEXT_MONTH case CALENDAR_NEXT_MONTH: case CALENDAR_NEXT_MONTH | BUTTON_REPEAT: next_month(&shown, 0); break; - +#endif +#ifdef CALENDAR_PREV_MONTH case CALENDAR_PREV_MONTH: case CALENDAR_PREV_MONTH | BUTTON_REPEAT: prev_month(&shown, 0); break; - +#endif case CALENDAR_NEXT_WEEK: case CALENDAR_NEXT_WEEK | BUTTON_REPEAT: 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 @@ #define CB_PLAY (BUTTON_SELECT | BUTTON_PLAY) #define CB_LEVEL (BUTTON_SELECT | BUTTON_RIGHT) #define CB_RESTART (BUTTON_SELECT | BUTTON_LEFT) -#define CB_MENU (BUTTON_SELECT | BUTTON_MENU) +#define CB_MENU (BUTTON_SELECT | BUTTON_REPEAT) #define CB_SCROLL_UP (BUTTON_SCROLL_FWD|BUTTON_REPEAT) #define CB_SCROLL_DOWN (BUTTON_SCROLL_BACK|BUTTON_REPEAT) #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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define CLIX_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU) -#define CLIX_BUTTON_UP BUTTON_MENU -#define CLIX_BUTTON_DOWN BUTTON_PLAY +#define CLIX_BUTTON_QUIT BUTTON_MENU #define CLIX_BUTTON_SCROLL_FWD BUTTON_SCROLL_FWD #define CLIX_BUTTON_SCROLL_BACK BUTTON_SCROLL_BACK #define CLIX_BUTTON_CLICK BUTTON_SELECT @@ -921,8 +919,10 @@ static int clix_handle_game(struct clix_game_state_t* state) case CLIX_BUTTON_SCROLL_BACK: case CLIX_BUTTON_SCROLL_BACK|BUTTON_REPEAT: #endif +#ifdef CLIX_BUTTON_UP case CLIX_BUTTON_UP: case CLIX_BUTTON_UP|BUTTON_REPEAT: +#endif if( state->y == 0 || state->board[ XYPOS( state->x, state->y - 1)] == CC_BLACK @@ -938,8 +938,10 @@ static int clix_handle_game(struct clix_game_state_t* state) case CLIX_BUTTON_SCROLL_FWD: case CLIX_BUTTON_SCROLL_FWD|BUTTON_REPEAT: #endif +#ifdef CLIX_BUTTON_DOWN case CLIX_BUTTON_DOWN: case CLIX_BUTTON_DOWN|BUTTON_REPEAT: +#endif if( state->y == (BOARD_HEIGHT - 1)) state->y = 0; 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[]={ #define ACTION_COUNTER_TOGGLE PLA_SELECT #define ACTION_COUNTER_RESET PLA_SELECT_REPEAT -#define ACTION_MENU PLA_CANCEL #define ACTION_MODE_NEXT PLA_RIGHT #define ACTION_MODE_NEXT_REPEAT PLA_RIGHT_REPEAT #define ACTION_MODE_PREV PLA_LEFT #define ACTION_MODE_PREV_REPEAT PLA_LEFT_REPEAT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define ACTION_MENU PLA_UP +#else +#define ACTION_MENU PLA_CANCEL #define ACTION_SKIN_NEXT PLA_UP #define ACTION_SKIN_NEXT_REPEAT PLA_UP_REPEAT +#endif #define ACTION_SKIN_PREV PLA_DOWN #define ACTION_SKIN_PREV_REPEAT PLA_DOWN_REPEAT @@ -165,10 +171,12 @@ enum plugin_status plugin_start(const void* parameter){ case ACTION_SKIN_PREV: clock_settings_skin_next(&clock_settings); break; +#if defined(ACTION_SKIN_NEXT) && defined(ACTION_SKIN_NEXT_REPEAT) case ACTION_SKIN_NEXT_REPEAT: case ACTION_SKIN_NEXT: clock_settings_skin_previous(&clock_settings); break; +#endif case ACTION_MENU: clock_draw_restore_colors(); 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) { if (button == PLA_SELECT) break; +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) + if (button == PLA_UP) /* Menu button */ + button = PLA_CANCEL; +#endif + switch (button) { /* 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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define CUBE_QUIT (BUTTON_SELECT | BUTTON_MENU) +#define CUBE_QUIT_PRE BUTTON_MENU +#define CUBE_QUIT (BUTTON_MENU | BUTTON_REL) #define CUBE_NEXT BUTTON_RIGHT #define CUBE_PREV BUTTON_LEFT #define CUBE_INC BUTTON_SCROLL_FWD #define CUBE_DEC BUTTON_SCROLL_BACK -#define CUBE_MODE BUTTON_MENU +#define CUBE_MODE_PRE BUTTON_MENU +#define CUBE_MODE (BUTTON_MENU | BUTTON_REPEAT) #define CUBE_PAUSE BUTTON_PLAY #define CUBE_HIGHSPEED_PRE BUTTON_SELECT #define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_REL) @@ -729,6 +731,7 @@ enum plugin_status plugin_start(const void* parameter) int button; #if defined(CUBE_MODE_PRE) || \ + defined(CUBE_QUIT_PRE) || \ defined(CUBE_PAUSE_PRE) || \ defined(CUBE_HIGHSPEED_PRE) int lastbutton = BUTTON_NONE; @@ -903,6 +906,10 @@ enum plugin_status plugin_start(const void* parameter) case CUBE_RC_QUIT: #endif case CUBE_QUIT: +#ifdef CUBE_QUIT_PRE + if (lastbutton != CUBE_QUIT_PRE) + break; +#endif quit = true; break; @@ -911,6 +918,7 @@ enum plugin_status plugin_start(const void* parameter) break; } #if defined(CUBE_MODE_PRE) || \ + defined(CUBE_QUIT_PRE) || \ defined(CUBE_PAUSE_PRE) || \ defined(CUBE_HIGHSPEED_PRE) 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 @@ #define MIN_POLYGONS 1 /* Key assignement */ -#define DEMYSTIFY_QUIT PLA_CANCEL #ifdef HAVE_SCROLLWHEEL +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define DEMYSTIFY_QUIT PLA_UP +#else +#define DEMYSTIFY_QUIT PLA_CANCEL +#endif + #define DEMYSTIFY_INCREASE_SPEED PLA_SCROLL_FWD #define DEMYSTIFY_DECREASE_SPEED PLA_SCROLL_BACK #define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_SCROLL_FWD_REPEAT #define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_SCROLL_BACK_REPEAT + +#define DEMYSTIFY_ADD_POLYGON PLA_RIGHT +#define DEMYSTIFY_REMOVE_POLYGON PLA_LEFT +#define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_RIGHT_REPEAT +#define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_LEFT_REPEAT + #else + +#define DEMYSTIFY_QUIT PLA_CANCEL + #define DEMYSTIFY_INCREASE_SPEED PLA_RIGHT #define DEMYSTIFY_DECREASE_SPEED PLA_LEFT #define DEMYSTIFY_INCREASE_SPEED_REPEAT PLA_RIGHT_REPEAT #define DEMYSTIFY_DECREASE_SPEED_REPEAT PLA_LEFT_REPEAT -#endif #define DEMYSTIFY_ADD_POLYGON PLA_UP #define DEMYSTIFY_REMOVE_POLYGON PLA_DOWN #define DEMYSTIFY_ADD_POLYGON_REPEAT PLA_UP_REPEAT #define DEMYSTIFY_REMOVE_POLYGON_REPEAT PLA_DOWN_REPEAT +#endif const struct button_mapping *plugin_contexts[] = {pla_main_ctx, #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 @@ #define INITIAL_NB_DICES 1 #define INITIAL_NB_SIDES 2 /* corresponds to 6 sides in the array */ + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define DICE_QUIT PLA_UP +#else #define DICE_QUIT PLA_CANCEL +#endif #define DICE_ROLL PLA_SELECT 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 /* this set the context to use with PLA */ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; -#define FFT_PREV_GRAPH PLA_LEFT -#define FFT_NEXT_GRAPH PLA_RIGHT -#define FFT_ORIENTATION PLA_CANCEL -#define FFT_WINDOW PLA_SELECT -#define FFT_AMP_SCALE PLA_UP -#define FFT_FREQ_SCALE PLA_DOWN -#define FFT_QUIT PLA_EXIT +#define FFT_PREV_GRAPH PLA_LEFT +#define FFT_NEXT_GRAPH PLA_RIGHT +#define FFT_ORIENTATION PLA_CANCEL +#define FFT_WINDOW PLA_SELECT_REL +#define FFT_AMP_SCALE PLA_SELECT_REPEAT +#define FFT_AMP_SCALE_PRE PLA_SELECT +#define FFT_FREQ_SCALE PLA_DOWN + + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define FFT_QUIT PLA_UP +#else +#define FFT_QUIT PLA_EXIT +#endif #ifdef HAVE_LCD_COLOR #include "pluginbitmaps/fft_colors.h" @@ -1257,6 +1266,10 @@ enum plugin_status plugin_start(const void* parameter) if(!fft_setup()) return PLUGIN_ERROR; +#if defined(FFT_AMP_SCALE_PRE) + int lastbutton = BUTTON_NONE; +#endif + while(run) { long delay = fft_draw(); @@ -1300,6 +1313,10 @@ enum plugin_status plugin_start(const void* parameter) break; case FFT_AMP_SCALE: +#ifdef FFT_AMP_SCALE_PRE + if (lastbutton != FFT_AMP_SCALE_PRE) + break; +#endif if (++fft.amp_scale >= FFT_MAX_AS) fft.amp_scale = FFT_MIN_AS; @@ -1328,6 +1345,11 @@ enum plugin_status plugin_start(const void* parameter) exit_on_usb(button); break; } + +#if defined(FFT_AMP_SCALE_PRE) + if (button != BUTTON_NONE) + lastbutton = button; +#endif } 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[]= { }; #define FIRE_QUIT PLA_CANCEL -#define FIRE_QUIT2 PLA_EXIT #define FIRE_SWITCH_FLAMES_TYPE PLA_LEFT #define FIRE_SWITCH_FLAMES_MOVING PLA_RIGHT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define FIRE_QUIT2 PLA_UP +#else +#define FIRE_QUIT2 PLA_EXIT +#endif + #ifdef HAVE_SCROLLWHEEL #define FIRE_INCREASE_MULT PLA_SCROLL_FWD #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 }; /* We use PLA */ #define BTN_EXIT PLA_EXIT -#define BTN_MENU PLA_CANCEL #define BTN_FIRE PLA_SELECT #define BTN_FIRE_REPEAT PLA_SELECT_REPEAT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define BTN_MENU PLA_UP +#else +#define BTN_MENU PLA_CANCEL +#endif + /* The lowdown on source terminology: * a ROCKET is launched from the LCD bottom. * 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 @@ #define FLIPIT_DOWN BUTTON_PLAY #define FLIPIT_NEXT BUTTON_SCROLL_FWD #define FLIPIT_PREV BUTTON_SCROLL_BACK -#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_MENU) +#define FLIPIT_QUIT (BUTTON_SELECT | BUTTON_REPEAT) #define FLIPIT_SHUFFLE (BUTTON_SELECT | BUTTON_LEFT) #define FLIPIT_SOLVE (BUTTON_SELECT | BUTTON_PLAY) #define FLIPIT_STEP_BY_STEP (BUTTON_SELECT | BUTTON_RIGHT) @@ -841,7 +841,7 @@ enum plugin_status plugin_start(const void* parameter) #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) - rb->lcd_putsxy(2, 8, "[S-MENU] to stop"); + rb->lcd_putsxy(2, 8, "Long [SELECT] to stop"); rb->lcd_putsxy(2, 18, "[SELECT] toggle"); rb->lcd_putsxy(2, 28, "[S-LEFT] shuffle"); 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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define FRACTAL_QUIT (BUTTON_SELECT | BUTTON_MENU) +#define FRACTAL_QUIT (BUTTON_SELECT | BUTTON_REPEAT) #define FRACTAL_UP BUTTON_MENU #define FRACTAL_DOWN BUTTON_PLAY #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 */ static int ask_and_get_audio_buffer(const char *filename) { int button; -#if defined(IMGVIEW_ZOOM_PRE) +#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_QUIT_PRE) int lastbutton = BUTTON_NONE; #endif rb->lcd_setfont(FONT_SYSFIXED); @@ -392,6 +392,10 @@ static int ask_and_get_audio_buffer(const char *filename) #endif #ifdef IMGVIEW_QUIT case IMGVIEW_QUIT: +#ifdef IMGVIEW_QUIT_PRE + if (lastbutton != IMGVIEW_QUIT_PRE) + break; +#endif #endif case IMGVIEW_MENU: return PLUGIN_OK; @@ -424,7 +428,7 @@ static int ask_and_get_audio_buffer(const char *filename) == SYS_USB_CONNECTED) return PLUGIN_USB_CONNECTED; } -#if defined(IMGVIEW_ZOOM_PRE) +#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_QUIT_PRE) if (button != BUTTON_NONE) lastbutton = button; #endif @@ -572,14 +576,19 @@ static void pan_view_down(struct image_info *info) } /* interactively scroll around the image */ -static int scroll_bmp(struct image_info *info) +static int scroll_bmp(struct image_info *info, bool initial_frame) { static long ss_timeout = 0; int button; #if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) \ - || defined(IMGVIEW_SLIDE_SHOW_PRE) - int lastbutton = BUTTON_NONE; + || defined(IMGVIEW_SLIDE_SHOW_PRE) || defined(IMGVIEW_QUIT_PRE) + static int lastbutton; + if (initial_frame) + lastbutton = BUTTON_NONE; + +#else + (void) initial_frame; #endif if (!ss_timeout && iv_api.slideshow_enabled) @@ -745,6 +754,10 @@ static int scroll_bmp(struct image_info *info) #ifdef IMGVIEW_QUIT case IMGVIEW_QUIT: +#ifdef IMGVIEW_QUIT_PRE + if (lastbutton != IMGVIEW_QUIT_PRE) + break; +#endif return PLUGIN_OK; break; #endif @@ -756,7 +769,8 @@ static int scroll_bmp(struct image_info *info) break; } /* switch */ -#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) || defined(IMGVIEW_SLIDE_SHOW_PRE) +#if defined(IMGVIEW_ZOOM_PRE) || defined(IMGVIEW_MENU_PRE) ||\ + defined(IMGVIEW_SLIDE_SHOW_PRE) || defined(IMGVIEW_QUIT_PRE) if (button != BUTTON_NONE) lastbutton = button; #endif @@ -922,6 +936,7 @@ static int load_and_show(char* filename, struct image_info *info) /* used to loop through subimages in animated gifs */ int frame = 0; + bool initial_frame = true; do /* loop the image prepare and decoding when zoomed */ { 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) */ while (1) { - status = scroll_bmp(info); + status = scroll_bmp(info, initial_frame); + initial_frame = false; if (status == ZOOM_IN) { 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 @@ #define IMGVIEW_RIGHT BUTTON_RIGHT #define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT) #define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT) -#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_MENU) -#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_PLAY) +#define IMGVIEW_MENU_PRE BUTTON_SELECT +#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_REPEAT) +#define IMGVIEW_QUIT_PRE BUTTON_SELECT +#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_REL) #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD #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 @@ #include "lib/pluginlib_exit.h" +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define JACKPOT_QUIT PLA_UP +#else +#define JACKPOT_QUIT PLA_CANCEL +#endif const struct button_mapping* plugin_contexts[]={pla_main_ctx}; #define NB_PICTURES 9 @@ -248,7 +255,7 @@ enum plugin_status plugin_start(const void* parameter) plugin_contexts, ARRAYLEN(plugin_contexts)); switch ( action ) { - case PLA_CANCEL: + case JACKPOT_QUIT: return PLUGIN_OK; case PLA_SELECT: 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 @@ #define JEWELS_PREV BUTTON_SCROLL_BACK #define JEWELS_NEXT BUTTON_SCROLL_FWD #define JEWELS_SELECT BUTTON_SELECT -#define JEWELS_CANCEL (BUTTON_SELECT | BUTTON_MENU) +#define JEWELS_CANCEL (BUTTON_SELECT | BUTTON_REPEAT) #define HK_SELECT "SELECT" -#define HK_CANCEL "SEL + MENU" +#define HK_CANCEL "Long SELECT" #elif (CONFIG_KEYPAD == IPOD_3G_PAD) #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 }; #define LAMP_EXIT PLA_EXIT + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define LAMP_EXIT2 PLA_UP +#else #define LAMP_EXIT2 PLA_CANCEL +#endif #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[] /* We use PLA */ #define LP_QUIT PLA_EXIT -#define LP_QUIT2 PLA_CANCEL #define LP_DEC_X PLA_LEFT #define LP_DEC_X_REPEAT PLA_LEFT_REPEAT #define LP_INC_X PLA_RIGHT #define LP_INC_X_REPEAT PLA_RIGHT_REPEAT + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define LP_QUIT2 PLA_UP +#define LP_DEC_Y PLA_SCROLL_BACK +#define LP_DEC_Y_REPEAT PLA_SCROLL_BACK_REPEAT +#define LP_INC_Y PLA_SCROLL_FWD +#define LP_INC_Y_REPEAT PLA_SCROLL_FWD_REPEAT +#else +#define LP_QUIT2 PLA_CANCEL #define LP_DEC_Y PLA_DOWN #define LP_DEC_Y_REPEAT PLA_DOWN_REPEAT #define LP_INC_Y PLA_UP #define LP_INC_Y_REPEAT PLA_UP_REPEAT +#endif + enum plugin_status plugin_start(const void* parameter) { 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 @@ /* this set the context to use with PLA */ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define MATRIX_EXIT2 PLA_UP +#else +#define MATRIX_EXIT2 PLA_CANCEL +#endif + #ifdef HAVE_SCROLLWHEEL #define MATRIX_SLEEP_MORE PLA_SCROLL_BACK #define MATRIX_SLEEP_MORE_REPEAT PLA_SCROLL_BACK_REPEAT @@ -65,7 +73,6 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; #endif /* HAVE_SCROLLWHEEL */ #define MATRIX_PAUSE PLA_SELECT #define MATRIX_EXIT PLA_EXIT -#define MATRIX_EXIT2 PLA_CANCEL #define SLEEP HZ/50 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 @@ /* key assignments */ -#if (CONFIG_KEYPAD == IPOD_3G_PAD) +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) # define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT) # define MAZE_NEW_PRE BUTTON_SELECT # define MAZE_QUIT BUTTON_MENU -# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY) +# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_REL) +# define MAZE_SOLVE_PRE BUTTON_SELECT # define MAZE_RIGHT BUTTON_RIGHT # define MAZE_RIGHT_REPEAT BUTTON_RIGHT|BUTTON_REPEAT # define MAZE_LEFT BUTTON_LEFT @@ -491,7 +494,7 @@ static void maze_move_player_left(struct maze* maze) enum plugin_status plugin_start(const void* parameter) { int button; -#ifdef MAZE_NEW_PRE +#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE) int lastbutton = BUTTON_NONE; #endif int quit = 0; @@ -544,6 +547,10 @@ enum plugin_status plugin_start(const void* parameter) maze_draw(&maze, rb->screens[i]); break; case MAZE_SOLVE: +#ifdef MAZE_SOLVE_PRE + if(lastbutton != MAZE_SOLVE_PRE) + break; +#endif maze_solve(&maze); FOR_NB_SCREENS(i) maze_draw(&maze, rb->screens[i]); @@ -583,7 +590,7 @@ enum plugin_status plugin_start(const void* parameter) } break; } -#ifdef MAZE_NEW_PRE +#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE) if( button != BUTTON_NONE ) lastbutton = button; #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 @@ /* Include standard plugin macro */ -#if (CONFIG_KEYPAD == IPOD_3G_PAD) +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) # define MAZEZAM_MENU BUTTON_MENU # define MAZEZAM_RIGHT BUTTON_RIGHT # 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 #define MET_SYNC #endif +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define METRONOME_QUIT PLA_UP +#else #define METRONOME_QUIT PLA_EXIT +#endif #ifdef HAVE_SCROLLWHEEL #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 @@ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; #define MOSAIQUE_QUIT PLA_EXIT -#define MOSAIQUE_QUIT2 PLA_CANCEL -#define MOSAIQUE_SPEED PLA_UP +#define MOSAIQUE_SPEED PLA_RIGHT #define MOSAIQUE_RESTART PLA_SELECT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define MOSAIQUE_QUIT2 PLA_UP +#else +#define MOSAIQUE_QUIT2 PLA_CANCEL +#endif + enum plugin_status plugin_start(const void* parameter) { 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: } break; case ACTION_STD_CANCEL: + case ACTION_STD_MENU: { selection = -2; 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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define OSCILLOSCOPE_QUIT (BUTTON_SELECT | BUTTON_MENU) -#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_PLAY) +#define OSCILLOSCOPE_QUIT BUTTON_MENU +#define OSCILLOSCOPE_GRAPHMODE_PRE BUTTON_SELECT +#define OSCILLOSCOPE_GRAPHMODE (BUTTON_SELECT | BUTTON_REL) +#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT +#define OSCILLOSCOPE_DRAWMODE (BUTTON_SELECT | BUTTON_REPEAT) #define OSCILLOSCOPE_ADVMODE (BUTTON_SELECT | BUTTON_RIGHT) #define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT | BUTTON_LEFT) -#define OSCILLOSCOPE_GRAPHMODE BUTTON_MENU -#define OSCILLOSCOPE_PAUSE BUTTON_PLAY +#define OSCILLOSCOPE_PAUSE BUTTON_PLAY | BUTTON_REL #define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT #define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT #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 @@ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) #define PEGBOX_SELECT (BUTTON_SELECT|BUTTON_RIGHT) -#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY) +#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_REPEAT) #define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT) #define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU) #define PEGBOX_UP BUTTON_MENU @@ -74,7 +74,7 @@ #define PEGBOX_LEFT BUTTON_LEFT #define SELECT_TEXT "SELECT+RIGHT" -#define QUIT_TEXT "SELECT+PLAY" +#define QUIT_TEXT "Long SELECT" #define RESTART_TEXT "SELECT+LEFT" #define LVL_UP_TEXT "SELECT+MENU" #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) switch (button) { case PERIODIC_KEY_SELECT: - break; case PERIODIC_KEY_MENU: return PLUGIN_OK; 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[] = #elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ || (CONFIG_KEYPAD == IPOD_3G_PAD) \ || (CONFIG_KEYPAD == IPOD_4G_PAD) - {PF_QUIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU}, + {PF_MENU, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU}, + {PF_QUIT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU}, {PF_SORTING_NEXT, BUTTON_SELECT|BUTTON_MENU, BUTTON_NONE}, {PF_SORTING_PREV, BUTTON_SELECT|BUTTON_PLAY, BUTTON_NONE}, #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) break; case PLA_CANCEL: +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) + case PLA_UP: +#endif rb->pcm_stop_recording(); quit = main_menu(); 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) switch(action) { +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) + case PLA_UP: +#endif case PLA_EXIT: case PLA_CANCEL: return PLUGIN_OK; @@ -277,7 +282,11 @@ int main(void) case PLA_SCROLL_FWD: case PLA_SCROLL_FWD_REPEAT: #endif +#if (CONFIG_KEYPAD != IPOD_1G2G_PAD) \ + && (CONFIG_KEYPAD != IPOD_3G_PAD) \ + && (CONFIG_KEYPAD != IPOD_4G_PAD) case PLA_UP: +#endif case PLA_UP_REPEAT: ++plasma_frequency; 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[] = #define RFK_VERSION "v1.4142135.406" +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +# define RFK_QUIT PLA_SELECT_REPEAT +#else # define RFK_QUIT PLA_CANCEL +#endif # define RFK_RIGHT PLA_RIGHT # define RFK_LEFT PLA_LEFT # 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 @@ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define ROCKBLOX_OFF (BUTTON_MENU | BUTTON_SELECT) +#define ROCKBLOX_OFF (BUTTON_SELECT | BUTTON_REPEAT) #define ROCKBLOX_ROTATE_CCW BUTTON_SCROLL_BACK #define ROCKBLOX_ROTATE_CCW2 (BUTTON_MENU | BUTTON_REL) #define ROCKBLOX_ROTATE_CW BUTTON_SCROLL_FWD @@ -41,6 +41,7 @@ #define ROCKBLOX_RIGHT BUTTON_RIGHT #define ROCKBLOX_DOWN BUTTON_PLAY #define ROCKBLOX_RESTART (BUTTON_SELECT | BUTTON_PLAY) +#define ROCKBLOX_DROP_PRE BUTTON_SELECT #define ROCKBLOX_DROP (BUTTON_SELECT | BUTTON_REL) #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 }; #define ONEDROCKBLOX_DOWN PLA_DOWN #define ONEDROCKBLOX_DOWN_REPEAT PLA_DOWN_REPEAT #define ONEDROCKBLOX_QUIT PLA_EXIT + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define ONEDROCKBLOX_QUIT2 PLA_UP +#else #define ONEDROCKBLOX_QUIT2 PLA_CANCEL +#endif #define mrand(max) (short)(rb->rand()%max) 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 @@ #define ROCKLIFE_INIT PLA_DOWN #define ROCKLIFE_NEXT PLA_RIGHT #define ROCKLIFE_NEXT_REP PLA_RIGHT_REPEAT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define ROCKLIFE_QUIT PLA_UP +#else #define ROCKLIFE_QUIT PLA_CANCEL +#endif #define ROCKLIFE_STATUS PLA_LEFT #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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_MENU) +#define PUZZLE_QUIT (BUTTON_SELECT | BUTTON_REPEAT) #define PUZZLE_LEFT BUTTON_LEFT #define PUZZLE_RIGHT BUTTON_RIGHT #define PUZZLE_UP BUTTON_MENU @@ -848,7 +848,7 @@ enum plugin_status plugin_start( #if (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) - rb->lcd_putsxy(0, 18, "[S-MENU] to stop"); + rb->lcd_putsxy(0, 18, "Long [SELECT] to stop"); rb->lcd_putsxy(0, 28, "[S-LEFT] shuffle"); rb->lcd_putsxy(0, 38, "[S-RIGHT] change pic"); #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; #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU) +#define SNAKE_QUIT (BUTTON_SELECT|BUTTON_REPEAT) #define SNAKE_LEFT BUTTON_LEFT #define SNAKE_RIGHT BUTTON_RIGHT #define SNAKE_UP BUTTON_MENU #define SNAKE_DOWN BUTTON_PLAY -#define SNAKE_PLAYPAUSE BUTTON_SELECT +#define SNAKE_PLAYPAUSE (BUTTON_SELECT|BUTTON_REL) #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) #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 #define SNAKE2_RIGHT BUTTON_RIGHT #define SNAKE2_UP BUTTON_MENU #define SNAKE2_DOWN BUTTON_PLAY -#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) -#define SNAKE2_PLAYPAUSE BUTTON_SELECT +#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_REPEAT) +#define SNAKE2_PLAYPAUSE (BUTTON_SELECT | BUTTON_REL) #define SNAKE2_PLAYPAUSE_TEXT "Select" #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 }; /* PLA definitions */ #define SNOW_QUIT PLA_EXIT -#define SNOW_QUIT2 PLA_CANCEL +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define SNOW_QUIT2 PLA_UP +#else +#define SNOW_QUIT2 PLA_CANCEL +#endif static short particles[NUM_PARTICLES][2]; #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 @@ #define SOKOBAN_RIGHT BUTTON_RIGHT #define SOKOBAN_UP BUTTON_MENU #define SOKOBAN_DOWN BUTTON_PLAY -#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_MENU) +#define SOKOBAN_MENU (BUTTON_SELECT | BUTTON_REPEAT) #define SOKOBAN_UNDO_PRE BUTTON_SELECT #define SOKOBAN_UNDO (BUTTON_SELECT | BUTTON_REL) #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 @@ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -# define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU) +# define SOL_QUIT (BUTTON_SELECT | BUTTON_REPEAT) # define SOL_UP BUTTON_SCROLL_BACK # define SOL_DOWN BUTTON_SCROLL_FWD # 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 @@ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU) +#define STAR_QUIT (BUTTON_SELECT | BUTTON_REPEAT) #define STAR_LEFT BUTTON_LEFT #define STAR_RIGHT BUTTON_RIGHT #define STAR_UP BUTTON_MENU @@ -91,7 +91,7 @@ #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY) #define STAR_TOGGLE_CONTROL_NAME "SELECT" -#define STAR_QUIT_NAME "S + MENU" +#define STAR_QUIT_NAME "Long SELECT" #define STAR_LEVEL_UP_NAME "S >" #define STAR_LEVEL_DOWN_NAME "S <" #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 }; /* Key assignement */ #define STARFIELD_QUIT PLA_EXIT +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define STARFIELD_QUIT2 PLA_UP +#define STARFIELD_INCREASE_ZMOVE PLA_SCROLL_FWD +#define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_SCROLL_FWD_REPEAT +#define STARFIELD_DECREASE_ZMOVE PLA_SCROLL_BACK +#define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_SCROLL_BACK_REPEAT +#else #define STARFIELD_QUIT2 PLA_CANCEL #define STARFIELD_INCREASE_ZMOVE PLA_UP #define STARFIELD_INCREASE_ZMOVE_REPEAT PLA_UP_REPEAT #define STARFIELD_DECREASE_ZMOVE PLA_DOWN #define STARFIELD_DECREASE_ZMOVE_REPEAT PLA_DOWN_REPEAT +#endif #define STARFIELD_INCREASE_NB_STARS PLA_RIGHT #define STARFIELD_INCREASE_NB_STARS_REPEAT PLA_RIGHT_REPEAT #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; /* we use PLA */ #define STATS_STOP PLA_EXIT + +#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \ + || (CONFIG_KEYPAD == IPOD_3G_PAD) \ + || (CONFIG_KEYPAD == IPOD_4G_PAD) +#define STATS_STOP2 PLA_UP +#else #define STATS_STOP2 PLA_CANCEL +#endif + /* this set the context to use with PLA */ static const struct button_mapping *plugin_contexts[] = { pla_main_ctx }; @@ -149,7 +157,7 @@ static void traversedir(char* location, char* name) lasttick = *rb->current_tick; button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts, ARRAYLEN(plugin_contexts)); - if (button == STATS_STOP) { + if (button == STATS_STOP || button == STATS_STOP2) { cancel = true; break; } 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; #define BTN_DIR_LEFT BUTTON_LEFT #define BTN_DIR_RIGHT BUTTON_RIGHT #define BTN_STARTPAUSE (BUTTON_SELECT|BUTTON_REL) -#define BTN_QUIT (BUTTON_SELECT|BUTTON_MENU) +#define BTN_QUIT (BUTTON_SELECT|BUTTON_REPEAT) #define BTN_STOPRESET (BUTTON_SELECT|BUTTON_PLAY) #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 @@ (CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_1G2G_PAD) -#define QUIT (BUTTON_SELECT | BUTTON_MENU) +#define QUIT (BUTTON_SELECT | BUTTON_REPEAT) #define LEFT BUTTON_LEFT #define RIGHT BUTTON_RIGHT -#define PAUSE BUTTON_SELECT +#define PAUSE (BUTTON_SELECT | BUTTON_REL) #define MENU_UP BUTTON_SCROLL_FWD #define MENU_DOWN BUTTON_SCROLL_BACK #define UP BUTTON_MENU -- cgit v1.2.3