summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorMarianne Arnold <pixelma@rockbox.org>2007-10-16 20:44:17 +0000
committerMarianne Arnold <pixelma@rockbox.org>2007-10-16 20:44:17 +0000
commit4bd1aacbc43da9056d56cc428735435231cc8c56 (patch)
treee25cf958cf7ef62aa69238ab999e89bf111b202a /apps/plugins
parentd9b1f4065513096321cfbbd88f77c964969047db (diff)
downloadrockbox-4bd1aacbc43da9056d56cc428735435231cc8c56.zip
rockbox-4bd1aacbc43da9056d56cc428735435231cc8c56.tar.gz
rockbox-4bd1aacbc43da9056d56cc428735435231cc8c56.tar.bz2
rockbox-4bd1aacbc43da9056d56cc428735435231cc8c56.tar.xz
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
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/mandelbrot.c106
1 files changed, 62 insertions, 44 deletions
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 3ead7e0..a1a86c8 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;