1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Jens Arnold 2005-02-11 19:48:52 +00:00
parent d352b2d2bc
commit b021f78eca
2 changed files with 50 additions and 17 deletions

View file

@ -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

View file

@ -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;
@ -82,25 +100,32 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
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