From 4bd1aacbc43da9056d56cc428735435231cc8c56 Mon Sep 17 00:00:00 2001 From: Marianne Arnold Date: Tue, 16 Oct 2007 20:44:17 +0000 Subject: Mandelbrot: make increasing/decreasing iterations on X5/M5 actually usable (the buttoncombo was not possible before) and add necessary _PRE definitions to the defines and the button loop to prevent repeating the event accidentally (on some targets there was no control about how many steps one actually zoomed out on one button 'press'). Update the menu accordingly and fill out the blanks... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15153 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/mandelbrot.c | 106 +++++++++++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 44 deletions(-) (limited to 'apps/plugins/mandelbrot.c') diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c index 3ead7e0509..a1a86c8d87 100644 --- a/apps/plugins/mandelbrot.c +++ b/apps/plugins/mandelbrot.c @@ -95,30 +95,34 @@ PLUGIN_HEADER #define MANDELBROT_RESET (BUTTON_SELECT | BUTTON_PLAY) #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD -#define MANDELBROT_QUIT BUTTON_POWER -#define MANDELBROT_UP BUTTON_UP -#define MANDELBROT_DOWN BUTTON_DOWN -#define MANDELBROT_LEFT BUTTON_LEFT -#define MANDELBROT_RIGHT BUTTON_RIGHT -#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT -#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) -#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) -#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_RIGHT) -#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_LEFT) -#define MANDELBROT_RESET BUTTON_REC +#define MANDELBROT_QUIT BUTTON_POWER +#define MANDELBROT_UP BUTTON_UP +#define MANDELBROT_DOWN BUTTON_DOWN +#define MANDELBROT_LEFT BUTTON_LEFT +#define MANDELBROT_RIGHT BUTTON_RIGHT +#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT +#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) +#define MANDELBROT_ZOOM_OUT_PRE BUTTON_SELECT +#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) +#define MANDELBROT_MAXITER_INC_PRE BUTTON_PLAY +#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_REL) +#define MANDELBROT_MAXITER_DEC_PRE BUTTON_PLAY +#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_REPEAT) +#define MANDELBROT_RESET BUTTON_REC #elif CONFIG_KEYPAD == GIGABEAT_PAD -#define MANDELBROT_QUIT BUTTON_POWER -#define MANDELBROT_UP BUTTON_UP -#define MANDELBROT_DOWN BUTTON_DOWN -#define MANDELBROT_LEFT BUTTON_LEFT -#define MANDELBROT_RIGHT BUTTON_RIGHT -#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT -#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) -#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) -#define MANDELBROT_MAXITER_INC BUTTON_VOL_UP -#define MANDELBROT_MAXITER_DEC BUTTON_VOL_DOWN -#define MANDELBROT_RESET BUTTON_A +#define MANDELBROT_QUIT BUTTON_POWER +#define MANDELBROT_UP BUTTON_UP +#define MANDELBROT_DOWN BUTTON_DOWN +#define MANDELBROT_LEFT BUTTON_LEFT +#define MANDELBROT_RIGHT BUTTON_RIGHT +#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT +#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) +#define MANDELBROT_ZOOM_OUT_PRE BUTTON_SELECT +#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) +#define MANDELBROT_MAXITER_INC BUTTON_VOL_UP +#define MANDELBROT_MAXITER_DEC BUTTON_VOL_DOWN +#define MANDELBROT_RESET BUTTON_A #elif CONFIG_KEYPAD == SANSA_E200_PAD #define MANDELBROT_QUIT BUTTON_POWER @@ -145,30 +149,32 @@ PLUGIN_HEADER #define MANDELBROT_RESET BUTTON_REC #elif CONFIG_KEYPAD == IRIVER_H10_PAD -#define MANDELBROT_QUIT BUTTON_POWER -#define MANDELBROT_UP BUTTON_SCROLL_UP -#define MANDELBROT_DOWN BUTTON_SCROLL_DOWN -#define MANDELBROT_LEFT BUTTON_LEFT -#define MANDELBROT_RIGHT BUTTON_RIGHT -#define MANDELBROT_ZOOM_IN_PRE BUTTON_PLAY -#define MANDELBROT_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) -#define MANDELBROT_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT) -#define MANDELBROT_MAXITER_INC BUTTON_FF -#define MANDELBROT_MAXITER_DEC BUTTON_REW -#define MANDELBROT_RESET (BUTTON_PLAY | BUTTON_REW) +#define MANDELBROT_QUIT BUTTON_POWER +#define MANDELBROT_UP BUTTON_SCROLL_UP +#define MANDELBROT_DOWN BUTTON_SCROLL_DOWN +#define MANDELBROT_LEFT BUTTON_LEFT +#define MANDELBROT_RIGHT BUTTON_RIGHT +#define MANDELBROT_ZOOM_IN_PRE BUTTON_PLAY +#define MANDELBROT_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) +#define MANDELBROT_ZOOM_OUT_PRE BUTTON_PLAY +#define MANDELBROT_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT) +#define MANDELBROT_MAXITER_INC BUTTON_FF +#define MANDELBROT_MAXITER_DEC BUTTON_REW +#define MANDELBROT_RESET (BUTTON_PLAY | BUTTON_REW) #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD -#define MANDELBROT_QUIT BUTTON_EQ -#define MANDELBROT_UP BUTTON_UP -#define MANDELBROT_DOWN BUTTON_DOWN -#define MANDELBROT_LEFT BUTTON_LEFT -#define MANDELBROT_RIGHT BUTTON_RIGHT -#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT -#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) -#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) -#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_RIGHT) -#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_LEFT) -#define MANDELBROT_RESET BUTTON_MODE +#define MANDELBROT_QUIT BUTTON_EQ +#define MANDELBROT_UP BUTTON_UP +#define MANDELBROT_DOWN BUTTON_DOWN +#define MANDELBROT_LEFT BUTTON_LEFT +#define MANDELBROT_RIGHT BUTTON_RIGHT +#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT +#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) +#define MANDELBROT_ZOOM_OUT_PRE BUTTON_SELECT +#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) +#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_RIGHT) +#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_LEFT) +#define MANDELBROT_RESET BUTTON_MODE #endif @@ -628,6 +634,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) return PLUGIN_OK; case MANDELBROT_ZOOM_OUT: +#ifdef MANDELBROT_ZOOM_OUT_PRE + if (lastbutton != MANDELBROT_ZOOM_OUT_PRE) + break; +#endif x_min -= x_delta; x_max += x_delta; y_min -= y_delta; @@ -690,6 +700,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) break; case MANDELBROT_MAXITER_DEC: +#ifdef MANDELBROT_MAXITER_DEC_PRE + if (lastbutton != MANDELBROT_MAXITER_DEC_PRE) + break; +#endif if (max_iter >= 15) { max_iter -= max_iter / 3; redraw = REDRAW_FULL; @@ -697,6 +711,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) break; case MANDELBROT_MAXITER_INC: +#ifdef MANDELBROT_MAXITER_INC_PRE + if (lastbutton != MANDELBROT_MAXITER_INC_PRE) + break; +#endif max_iter += max_iter / 2; redraw = REDRAW_FULL; break; -- cgit v1.2.3