summaryrefslogtreecommitdiff
path: root/apps/plugins/mosaique.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/mosaique.c')
-rw-r--r--apps/plugins/mosaique.c61
1 files changed, 47 insertions, 14 deletions
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 @@
17 * 17 *
18 **************************************************************************/ 18 **************************************************************************/
19#include "plugin.h" 19#include "plugin.h"
20#include "playergfx.h"
20 21
21#ifdef HAVE_LCD_BITMAP 22#ifdef HAVE_LCD_BITMAP
22
23#define LARGE ((LCD_WIDTH - 2) / 2) 23#define LARGE ((LCD_WIDTH - 2) / 2)
24#define HAUT ((LCD_HEIGHT - 2) / 2) 24#define HAUT ((LCD_HEIGHT - 2) / 2)
25#else
26#define LARGE 9
27#define HAUT 6
28#endif
25 29
26/* variable button definitions */ 30/* variable button definitions */
27#if CONFIG_KEYPAD == RECORDER_PAD 31#if CONFIG_KEYPAD == RECORDER_PAD
@@ -29,11 +33,15 @@
29#define MOSAIQUE_SPEED BUTTON_F1 33#define MOSAIQUE_SPEED BUTTON_F1
30#define MOSAIQUE_RESTART BUTTON_PLAY 34#define MOSAIQUE_RESTART BUTTON_PLAY
31 35
36#elif CONFIG_KEYPAD == PLAYER_PAD
37#define MOSAIQUE_QUIT BUTTON_STOP
38#define MOSAIQUE_SPEED BUTTON_MENU
39#define MOSAIQUE_RESTART BUTTON_PLAY
40
32#elif CONFIG_KEYPAD == ONDIO_PAD 41#elif CONFIG_KEYPAD == ONDIO_PAD
33#define MOSAIQUE_QUIT BUTTON_OFF 42#define MOSAIQUE_QUIT BUTTON_OFF
34#define MOSAIQUE_SPEED BUTTON_LEFT 43#define MOSAIQUE_SPEED BUTTON_MENU
35#define MOSAIQUE_SPEED2 BUTTON_RIGHT 44#define MOSAIQUE_RESTART BUTTON_RIGHT
36#define MOSAIQUE_RESTART BUTTON_MENU
37 45
38#elif CONFIG_KEYPAD == IRIVER_H100_PAD 46#elif CONFIG_KEYPAD == IRIVER_H100_PAD
39#define MOSAIQUE_QUIT BUTTON_OFF 47#define MOSAIQUE_QUIT BUTTON_OFF
@@ -53,7 +61,17 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
53 TEST_PLUGIN_API(api); 61 TEST_PLUGIN_API(api);
54 (void)parameter; 62 (void)parameter;
55 63
64#ifdef HAVE_LCD_BITMAP
56 rb->lcd_clear_display(); 65 rb->lcd_clear_display();
66#else
67 if (!pgfx_init(rb, 4, 2))
68 {
69 rb->splash(HZ*2, true, "Old LCD :(");
70 return PLUGIN_OK;
71 }
72 pgfx_display(3, 0);
73 pgfx_clear_display();
74#endif
57 while (1) { 75 while (1) {
58 76
59 x+=sx; 77 x+=sx;
@@ -81,26 +99,33 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
81 y = -y; 99 y = -y;
82 sy = -sy; 100 sy = -sy;
83 } 101 }
84 102
103#ifdef HAVE_LCD_BITMAP
85 rb->lcd_invertrect(LARGE-x, HAUT-y, 2*x+1, 1); 104 rb->lcd_invertrect(LARGE-x, HAUT-y, 2*x+1, 1);
86 rb->lcd_invertrect(LARGE-x, HAUT+y, 2*x+1, 1); 105 rb->lcd_invertrect(LARGE-x, HAUT+y, 2*x+1, 1);
87 rb->lcd_invertrect(LARGE-x, HAUT-y+1, 1, 2*y-1); 106 rb->lcd_invertrect(LARGE-x, HAUT-y+1, 1, 2*y-1);
88 rb->lcd_invertrect(LARGE+x, HAUT-y+1, 1, 2*y-1); 107 rb->lcd_invertrect(LARGE+x, HAUT-y+1, 1, 2*y-1);
89
90 rb->lcd_update(); 108 rb->lcd_update();
109#else
110 pgfx_invertrect(LARGE-x, HAUT-y, 2*x+1, 1);
111 pgfx_invertrect(LARGE-x, HAUT+y, 2*x+1, 1);
112 pgfx_invertrect(LARGE-x, HAUT-y+1, 1, 2*y-1);
113 pgfx_invertrect(LARGE+x, HAUT-y+1, 1, 2*y-1);
114 pgfx_update();
115#endif
116
91 rb->sleep(HZ/timer); 117 rb->sleep(HZ/timer);
92 118
93 button = rb->button_get(false); 119 button = rb->button_get(false);
94 switch (button) 120 switch (button)
95 { 121 {
96 case MOSAIQUE_QUIT: 122 case MOSAIQUE_QUIT:
97 123#ifdef HAVE_LCD_CHARCELLS
124 pgfx_release();
125#endif
98 return PLUGIN_OK; 126 return PLUGIN_OK;
99 127
100 case MOSAIQUE_SPEED: 128 case MOSAIQUE_SPEED:
101#ifdef MOSAIQUE_SPEED2
102 case MOSAIQUE_SPEED2:
103#endif
104 timer = timer+5; 129 timer = timer+5;
105 if (timer>20) 130 if (timer>20)
106 timer=5; 131 timer=5;
@@ -108,20 +133,28 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
108 133
109 case MOSAIQUE_RESTART: 134 case MOSAIQUE_RESTART:
110 135
111 sx = rb->rand()%20+1; 136 sx = rb->rand() % (HAUT/2) + 1;
112 sy = rb->rand()%20+1; 137 sy = rb->rand() % (HAUT/2) + 1;
113 x=0; 138 x=0;
114 y=0; 139 y=0;
140#ifdef HAVE_LCD_BITMAP
115 rb->lcd_clear_display(); 141 rb->lcd_clear_display();
142#else
143 pgfx_clear_display();
144#endif
116 break; 145 break;
117 146
118 147
119 default: 148 default:
120 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) 149 if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
150 {
151#ifdef HAVE_LCD_CHARCELLS
152 pgfx_release();
153#endif
121 return PLUGIN_USB_CONNECTED; 154 return PLUGIN_USB_CONNECTED;
155 }
122 break; 156 break;
123 } 157 }
124 } 158 }
125} 159}
126 160
127#endif