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 firmware_flash.c
helloworld.c helloworld.c
metronome.c metronome.c
mosaique.c
rockbox_flash.c rockbox_flash.c
search.c search.c
sort.c sort.c
@ -22,7 +23,6 @@ grayscale.c
jpeg.c jpeg.c
mandelbrot.c mandelbrot.c
minesweeper.c minesweeper.c
mosaique.c
oscillograph.c oscillograph.c
oscilloscope.c oscilloscope.c
pong.c pong.c
@ -57,7 +57,7 @@ wormlet.c
#ifdef HAVE_LCD_CHARCELLS /* Player model only */ #ifdef HAVE_LCD_CHARCELLS /* Player model only */
euroconverter.c euroconverter.c
jackpot.c jackpot.c
nim.c nim.c
#endif /* #ifdef HAVE_LCD_CHARCELLS */ #endif /* #ifdef HAVE_LCD_CHARCELLS */
#ifndef HAVE_MMC #ifndef HAVE_MMC

View file

@ -17,11 +17,15 @@
* *
**************************************************************************/ **************************************************************************/
#include "plugin.h" #include "plugin.h"
#include "playergfx.h"
#ifdef HAVE_LCD_BITMAP #ifdef HAVE_LCD_BITMAP
#define LARGE ((LCD_WIDTH - 2) / 2) #define LARGE ((LCD_WIDTH - 2) / 2)
#define HAUT ((LCD_HEIGHT - 2) / 2) #define HAUT ((LCD_HEIGHT - 2) / 2)
#else
#define LARGE 9
#define HAUT 6
#endif
/* variable button definitions */ /* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD #if CONFIG_KEYPAD == RECORDER_PAD
@ -29,11 +33,15 @@
#define MOSAIQUE_SPEED BUTTON_F1 #define MOSAIQUE_SPEED BUTTON_F1
#define MOSAIQUE_RESTART BUTTON_PLAY #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 #elif CONFIG_KEYPAD == ONDIO_PAD
#define MOSAIQUE_QUIT BUTTON_OFF #define MOSAIQUE_QUIT BUTTON_OFF
#define MOSAIQUE_SPEED BUTTON_LEFT #define MOSAIQUE_SPEED BUTTON_MENU
#define MOSAIQUE_SPEED2 BUTTON_RIGHT #define MOSAIQUE_RESTART BUTTON_RIGHT
#define MOSAIQUE_RESTART BUTTON_MENU
#elif CONFIG_KEYPAD == IRIVER_H100_PAD #elif CONFIG_KEYPAD == IRIVER_H100_PAD
#define MOSAIQUE_QUIT BUTTON_OFF #define MOSAIQUE_QUIT BUTTON_OFF
@ -53,7 +61,17 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
TEST_PLUGIN_API(api); TEST_PLUGIN_API(api);
(void)parameter; (void)parameter;
#ifdef HAVE_LCD_BITMAP
rb->lcd_clear_display(); 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) { while (1) {
x+=sx; x+=sx;
@ -81,26 +99,33 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
y = -y; y = -y;
sy = -sy; 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, 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_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(); 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); rb->sleep(HZ/timer);
button = rb->button_get(false); button = rb->button_get(false);
switch (button) switch (button)
{ {
case MOSAIQUE_QUIT: case MOSAIQUE_QUIT:
#ifdef HAVE_LCD_CHARCELLS
return PLUGIN_OK; pgfx_release();
case MOSAIQUE_SPEED:
#ifdef MOSAIQUE_SPEED2
case MOSAIQUE_SPEED2:
#endif #endif
return PLUGIN_OK;
case MOSAIQUE_SPEED:
timer = timer+5; timer = timer+5;
if (timer>20) if (timer>20)
timer=5; timer=5;
@ -108,20 +133,28 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
case MOSAIQUE_RESTART: case MOSAIQUE_RESTART:
sx = rb->rand()%20+1; sx = rb->rand() % (HAUT/2) + 1;
sy = rb->rand()%20+1; sy = rb->rand() % (HAUT/2) + 1;
x=0; x=0;
y=0; y=0;
#ifdef HAVE_LCD_BITMAP
rb->lcd_clear_display(); rb->lcd_clear_display();
#else
pgfx_clear_display();
#endif
break; break;
default: default:
if (rb->default_event_handler(button) == SYS_USB_CONNECTED) if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
{
#ifdef HAVE_LCD_CHARCELLS
pgfx_release();
#endif
return PLUGIN_USB_CONNECTED; return PLUGIN_USB_CONNECTED;
}
break; break;
} }
} }
} }
#endif