diff options
Diffstat (limited to 'apps/plugins/mosaique.c')
-rw-r--r-- | apps/plugins/mosaique.c | 61 |
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 | ||