summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-02-11 19:48:52 +0000
committerJens Arnold <amiconn@rockbox.org>2005-02-11 19:48:52 +0000
commitb021f78eca39719ca4a8a164e00f9e327805cba0 (patch)
treea9ddaf9266de8af49a0bd450c42a5a2cec1ec11f /apps
parentd352b2d2bce82c618243e31777f82e724e732550 (diff)
Mosaique now working on the player, using the player graphics library.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5918 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/SOURCES4
-rw-r--r--apps/plugins/mosaique.c61
2 files changed, 49 insertions, 16 deletions
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index a14bb96cac..63dbefc945 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -6,6 +6,7 @@ favorites.c
firmware_flash.c
helloworld.c
metronome.c
+mosaique.c
rockbox_flash.c
search.c
sort.c
@@ -22,7 +23,6 @@ grayscale.c
jpeg.c
mandelbrot.c
minesweeper.c
-mosaique.c
oscillograph.c
oscilloscope.c
pong.c
@@ -57,7 +57,7 @@ wormlet.c
#ifdef HAVE_LCD_CHARCELLS /* Player model only */
euroconverter.c
jackpot.c
-nim.c
+nim.c
#endif /* #ifdef HAVE_LCD_CHARCELLS */
#ifndef HAVE_MMC
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index a1649dc7a0..af5f4d1c01 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -17,11 +17,15 @@
*
**************************************************************************/
#include "plugin.h"
+#include "playergfx.h"
#ifdef HAVE_LCD_BITMAP
-
#define LARGE ((LCD_WIDTH - 2) / 2)
#define HAUT ((LCD_HEIGHT - 2) / 2)
+#else
+#define LARGE 9
+#define HAUT 6
+#endif
/* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD
@@ -29,11 +33,15 @@
#define MOSAIQUE_SPEED BUTTON_F1
#define MOSAIQUE_RESTART BUTTON_PLAY
+#elif CONFIG_KEYPAD == PLAYER_PAD
+#define MOSAIQUE_QUIT BUTTON_STOP
+#define MOSAIQUE_SPEED BUTTON_MENU
+#define MOSAIQUE_RESTART BUTTON_PLAY
+
#elif CONFIG_KEYPAD == ONDIO_PAD
#define MOSAIQUE_QUIT BUTTON_OFF
-#define MOSAIQUE_SPEED BUTTON_LEFT
-#define MOSAIQUE_SPEED2 BUTTON_RIGHT
-#define MOSAIQUE_RESTART BUTTON_MENU
+#define MOSAIQUE_SPEED BUTTON_MENU
+#define MOSAIQUE_RESTART BUTTON_RIGHT
#elif CONFIG_KEYPAD == IRIVER_H100_PAD
#define MOSAIQUE_QUIT BUTTON_OFF
@@ -53,7 +61,17 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
TEST_PLUGIN_API(api);
(void)parameter;
+#ifdef HAVE_LCD_BITMAP
rb->lcd_clear_display();
+#else
+ if (!pgfx_init(rb, 4, 2))
+ {
+ rb->splash(HZ*2, true, "Old LCD :(");
+ return PLUGIN_OK;
+ }
+ pgfx_display(3, 0);
+ pgfx_clear_display();
+#endif
while (1) {
x+=sx;
@@ -81,26 +99,33 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
y = -y;
sy = -sy;
}
-
+
+#ifdef HAVE_LCD_BITMAP
rb->lcd_invertrect(LARGE-x, HAUT-y, 2*x+1, 1);
rb->lcd_invertrect(LARGE-x, HAUT+y, 2*x+1, 1);
rb->lcd_invertrect(LARGE-x, HAUT-y+1, 1, 2*y-1);
rb->lcd_invertrect(LARGE+x, HAUT-y+1, 1, 2*y-1);
-
rb->lcd_update();
+#else
+ pgfx_invertrect(LARGE-x, HAUT-y, 2*x+1, 1);
+ pgfx_invertrect(LARGE-x, HAUT+y, 2*x+1, 1);
+ pgfx_invertrect(LARGE-x, HAUT-y+1, 1, 2*y-1);
+ pgfx_invertrect(LARGE+x, HAUT-y+1, 1, 2*y-1);
+ pgfx_update();
+#endif
+
rb->sleep(HZ/timer);
button = rb->button_get(false);
switch (button)
{
case MOSAIQUE_QUIT:
-
+#ifdef HAVE_LCD_CHARCELLS
+ pgfx_release();
+#endif
return PLUGIN_OK;
-
+
case MOSAIQUE_SPEED:
-#ifdef MOSAIQUE_SPEED2
- case MOSAIQUE_SPEED2:
-#endif
timer = timer+5;
if (timer>20)
timer=5;
@@ -108,20 +133,28 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
case MOSAIQUE_RESTART:
- sx = rb->rand()%20+1;
- sy = rb->rand()%20+1;
+ sx = rb->rand() % (HAUT/2) + 1;
+ sy = rb->rand() % (HAUT/2) + 1;
x=0;
y=0;
+#ifdef HAVE_LCD_BITMAP
rb->lcd_clear_display();
+#else
+ pgfx_clear_display();
+#endif
break;
default:
if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
+ {
+#ifdef HAVE_LCD_CHARCELLS
+ pgfx_release();
+#endif
return PLUGIN_USB_CONNECTED;
+ }
break;
}
}
}
-#endif