diff options
Diffstat (limited to 'apps/plugins/star.c')
-rw-r--r-- | apps/plugins/star.c | 314 |
1 files changed, 129 insertions, 185 deletions
diff --git a/apps/plugins/star.c b/apps/plugins/star.c index 4bb3afcbd5..0ab6dce17b 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c | |||
@@ -20,6 +20,7 @@ | |||
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | #include "plugin.h" | 21 | #include "plugin.h" |
22 | #ifdef HAVE_LCD_BITMAP | 22 | #ifdef HAVE_LCD_BITMAP |
23 | #include "lib/display_text.h" | ||
23 | 24 | ||
24 | PLUGIN_HEADER | 25 | PLUGIN_HEADER |
25 | 26 | ||
@@ -66,6 +67,11 @@ PLUGIN_HEADER | |||
66 | #define STAR_LEVEL_UP BUTTON_F3 | 67 | #define STAR_LEVEL_UP BUTTON_F3 |
67 | #define STAR_LEVEL_DOWN BUTTON_F1 | 68 | #define STAR_LEVEL_DOWN BUTTON_F1 |
68 | #define STAR_LEVEL_REPEAT BUTTON_F2 | 69 | #define STAR_LEVEL_REPEAT BUTTON_F2 |
70 | #define STAR_TOGGLE_CONTROL_NAME "ON" | ||
71 | #define STAR_QUIT_NAME "OFF" | ||
72 | #define STAR_LEVEL_UP_NAME "F3" | ||
73 | #define STAR_LEVEL_DOWN_NAME "F1" | ||
74 | #define STAR_LEVEL_REPEAT_NAME "F2" | ||
69 | 75 | ||
70 | #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD | 76 | #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD |
71 | #define STAR_QUIT BUTTON_OFF | 77 | #define STAR_QUIT BUTTON_OFF |
@@ -78,6 +84,11 @@ PLUGIN_HEADER | |||
78 | #define STAR_LEVEL_UP BUTTON_F3 | 84 | #define STAR_LEVEL_UP BUTTON_F3 |
79 | #define STAR_LEVEL_DOWN BUTTON_F1 | 85 | #define STAR_LEVEL_DOWN BUTTON_F1 |
80 | #define STAR_LEVEL_REPEAT BUTTON_F2 | 86 | #define STAR_LEVEL_REPEAT BUTTON_F2 |
87 | #define STAR_TOGGLE_CONTROL_NAME "ON/SELECT" | ||
88 | #define STAR_QUIT_NAME "OFF" | ||
89 | #define STAR_LEVEL_UP_NAME "F3" | ||
90 | #define STAR_LEVEL_DOWN_NAME "F1" | ||
91 | #define STAR_LEVEL_REPEAT_NAME "F2" | ||
81 | 92 | ||
82 | #elif CONFIG_KEYPAD == ONDIO_PAD | 93 | #elif CONFIG_KEYPAD == ONDIO_PAD |
83 | #define STAR_QUIT BUTTON_OFF | 94 | #define STAR_QUIT BUTTON_OFF |
@@ -90,6 +101,11 @@ PLUGIN_HEADER | |||
90 | #define STAR_LEVEL_UP (BUTTON_MENU | BUTTON_RIGHT) | 101 | #define STAR_LEVEL_UP (BUTTON_MENU | BUTTON_RIGHT) |
91 | #define STAR_LEVEL_DOWN (BUTTON_MENU | BUTTON_LEFT) | 102 | #define STAR_LEVEL_DOWN (BUTTON_MENU | BUTTON_LEFT) |
92 | #define STAR_LEVEL_REPEAT (BUTTON_MENU | BUTTON_UP) | 103 | #define STAR_LEVEL_REPEAT (BUTTON_MENU | BUTTON_UP) |
104 | #define STAR_TOGGLE_CONTROL_NAME "MODE" | ||
105 | #define STAR_QUIT_NAME "OFF" | ||
106 | #define STAR_LEVEL_UP_NAME "M >" | ||
107 | #define STAR_LEVEL_DOWN_NAME "M <" | ||
108 | #define STAR_LEVEL_REPEAT_NAME "M ^" | ||
93 | 109 | ||
94 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ | 110 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
95 | (CONFIG_KEYPAD == IRIVER_H300_PAD) | 111 | (CONFIG_KEYPAD == IRIVER_H300_PAD) |
@@ -103,6 +119,11 @@ PLUGIN_HEADER | |||
103 | #define STAR_LEVEL_UP (BUTTON_ON | BUTTON_RIGHT) | 119 | #define STAR_LEVEL_UP (BUTTON_ON | BUTTON_RIGHT) |
104 | #define STAR_LEVEL_DOWN (BUTTON_ON | BUTTON_LEFT) | 120 | #define STAR_LEVEL_DOWN (BUTTON_ON | BUTTON_LEFT) |
105 | #define STAR_LEVEL_REPEAT (BUTTON_ON | BUTTON_SELECT) | 121 | #define STAR_LEVEL_REPEAT (BUTTON_ON | BUTTON_SELECT) |
122 | #define STAR_TOGGLE_CONTROL_NAME "MODE/SELECT" | ||
123 | #define STAR_QUIT_NAME "OFF" | ||
124 | #define STAR_LEVEL_UP_NAME "ON + RIGHT" | ||
125 | #define STAR_LEVEL_DOWN_NAME "ON + LEFT" | ||
126 | #define STAR_LEVEL_REPEAT_NAME "ON + NAVI" | ||
106 | 127 | ||
107 | #define STAR_RC_QUIT BUTTON_RC_STOP | 128 | #define STAR_RC_QUIT BUTTON_RC_STOP |
108 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | 129 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ |
@@ -119,6 +140,11 @@ PLUGIN_HEADER | |||
119 | #define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT) | 140 | #define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT) |
120 | #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) | 141 | #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) |
121 | #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY) | 142 | #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY) |
143 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
144 | #define STAR_QUIT_NAME "S + MENU" | ||
145 | #define STAR_LEVEL_UP_NAME "S >" | ||
146 | #define STAR_LEVEL_DOWN_NAME "S <" | ||
147 | #define STAR_LEVEL_REPEAT_NAME "S + PLAY" | ||
122 | 148 | ||
123 | #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) | 149 | #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) |
124 | 150 | ||
@@ -133,6 +159,11 @@ PLUGIN_HEADER | |||
133 | #define STAR_LEVEL_DOWN_PRE BUTTON_REC | 159 | #define STAR_LEVEL_DOWN_PRE BUTTON_REC |
134 | #define STAR_LEVEL_DOWN (BUTTON_REC|BUTTON_REPEAT) | 160 | #define STAR_LEVEL_DOWN (BUTTON_REC|BUTTON_REPEAT) |
135 | #define STAR_LEVEL_REPEAT BUTTON_PLAY | 161 | #define STAR_LEVEL_REPEAT BUTTON_PLAY |
162 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
163 | #define STAR_QUIT_NAME "POWER" | ||
164 | #define STAR_LEVEL_UP_NAME "REC" | ||
165 | #define STAR_LEVEL_DOWN_NAME "REC.." | ||
166 | #define STAR_LEVEL_REPEAT_NAME "PLAY" | ||
136 | 167 | ||
137 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) | 168 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) |
138 | 169 | ||
@@ -145,13 +176,18 @@ PLUGIN_HEADER | |||
145 | #define STAR_LEVEL_UP BUTTON_VOL_UP | 176 | #define STAR_LEVEL_UP BUTTON_VOL_UP |
146 | #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN | 177 | #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN |
147 | #define STAR_LEVEL_REPEAT BUTTON_A | 178 | #define STAR_LEVEL_REPEAT BUTTON_A |
179 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
180 | #define STAR_QUIT_NAME "POWER" | ||
181 | #define STAR_LEVEL_UP_NAME "VOL UP" | ||
182 | #define STAR_LEVEL_DOWN_NAME "VOL DOWN" | ||
183 | #define STAR_LEVEL_REPEAT_NAME "A" | ||
148 | 184 | ||
149 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ | 185 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ |
150 | (CONFIG_KEYPAD == SANSA_C200_PAD) || \ | 186 | (CONFIG_KEYPAD == SANSA_C200_PAD) || \ |
151 | (CONFIG_KEYPAD == SANSA_CLIP_PAD) || \ | 187 | (CONFIG_KEYPAD == SANSA_CLIP_PAD) || \ |
152 | (CONFIG_KEYPAD == SANSA_M200_PAD) | 188 | (CONFIG_KEYPAD == SANSA_M200_PAD) |
153 | 189 | ||
154 | #define STAR_QUIT BUTTON_POWER | 190 | #define STAR_QUIT BUTTON_POWER |
155 | #define STAR_LEFT BUTTON_LEFT | 191 | #define STAR_LEFT BUTTON_LEFT |
156 | #define STAR_RIGHT BUTTON_RIGHT | 192 | #define STAR_RIGHT BUTTON_RIGHT |
157 | #define STAR_UP BUTTON_UP | 193 | #define STAR_UP BUTTON_UP |
@@ -160,11 +196,15 @@ PLUGIN_HEADER | |||
160 | #define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT) | 196 | #define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT) |
161 | #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) | 197 | #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) |
162 | #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_DOWN) | 198 | #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_DOWN) |
163 | 199 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | |
200 | #define STAR_QUIT_NAME "POWER" | ||
201 | #define STAR_LEVEL_UP_NAME "SELECT + RIGHT" | ||
202 | #define STAR_LEVEL_DOWN_NAME "SELECT + LEFT" | ||
203 | #define STAR_LEVEL_REPEAT_NAME "SELECT + DOWN" | ||
164 | 204 | ||
165 | #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) | 205 | #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) |
166 | 206 | ||
167 | #define STAR_QUIT (BUTTON_HOME|BUTTON_REPEAT) | 207 | #define STAR_QUIT (BUTTON_HOME|BUTTON_REPEAT) |
168 | #define STAR_LEFT BUTTON_LEFT | 208 | #define STAR_LEFT BUTTON_LEFT |
169 | #define STAR_RIGHT BUTTON_RIGHT | 209 | #define STAR_RIGHT BUTTON_RIGHT |
170 | #define STAR_UP BUTTON_UP | 210 | #define STAR_UP BUTTON_UP |
@@ -173,6 +213,11 @@ PLUGIN_HEADER | |||
173 | #define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT) | 213 | #define STAR_LEVEL_UP (BUTTON_SELECT | BUTTON_RIGHT) |
174 | #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) | 214 | #define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT) |
175 | #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_DOWN) | 215 | #define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_DOWN) |
216 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
217 | #define STAR_QUIT_NAME "HOME" | ||
218 | #define STAR_LEVEL_UP_NAME "SELECT + RIGHT" | ||
219 | #define STAR_LEVEL_DOWN_NAME "SELECT + LEFT" | ||
220 | #define STAR_LEVEL_REPEAT_NAME "SELECT + DOWN" | ||
176 | 221 | ||
177 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) | 222 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) |
178 | 223 | ||
@@ -185,6 +230,11 @@ PLUGIN_HEADER | |||
185 | #define STAR_LEVEL_UP (BUTTON_PLAY | BUTTON_SCROLL_UP) | 230 | #define STAR_LEVEL_UP (BUTTON_PLAY | BUTTON_SCROLL_UP) |
186 | #define STAR_LEVEL_DOWN (BUTTON_PLAY | BUTTON_SCROLL_DOWN) | 231 | #define STAR_LEVEL_DOWN (BUTTON_PLAY | BUTTON_SCROLL_DOWN) |
187 | #define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_RIGHT) | 232 | #define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_RIGHT) |
233 | #define STAR_TOGGLE_CONTROL_NAME "REW" | ||
234 | #define STAR_QUIT_NAME "POWER" | ||
235 | #define STAR_LEVEL_UP_NAME "PLAY+UP" | ||
236 | #define STAR_LEVEL_DOWN_NAME "PLAY+DOWN" | ||
237 | #define STAR_LEVEL_REPEAT_NAME "PLAY+RIGHT" | ||
188 | 238 | ||
189 | #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) | 239 | #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) |
190 | 240 | ||
@@ -197,6 +247,11 @@ PLUGIN_HEADER | |||
197 | #define STAR_LEVEL_UP BUTTON_VOL_UP | 247 | #define STAR_LEVEL_UP BUTTON_VOL_UP |
198 | #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN | 248 | #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN |
199 | #define STAR_LEVEL_REPEAT BUTTON_MENU | 249 | #define STAR_LEVEL_REPEAT BUTTON_MENU |
250 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
251 | #define STAR_QUIT_NAME "BACK" | ||
252 | #define STAR_LEVEL_UP_NAME "VOL UP" | ||
253 | #define STAR_LEVEL_DOWN_NAME "VOL DOWN" | ||
254 | #define STAR_LEVEL_REPEAT_NAME "MENU" | ||
200 | 255 | ||
201 | #elif (CONFIG_KEYPAD == MROBE100_PAD) | 256 | #elif (CONFIG_KEYPAD == MROBE100_PAD) |
202 | 257 | ||
@@ -209,6 +264,11 @@ PLUGIN_HEADER | |||
209 | #define STAR_LEVEL_UP BUTTON_PLAY | 264 | #define STAR_LEVEL_UP BUTTON_PLAY |
210 | #define STAR_LEVEL_DOWN BUTTON_MENU | 265 | #define STAR_LEVEL_DOWN BUTTON_MENU |
211 | #define STAR_LEVEL_REPEAT BUTTON_DISPLAY | 266 | #define STAR_LEVEL_REPEAT BUTTON_DISPLAY |
267 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
268 | #define STAR_QUIT_NAME "POWER" | ||
269 | #define STAR_LEVEL_UP_NAME "PLAY" | ||
270 | #define STAR_LEVEL_DOWN_NAME "MENU" | ||
271 | #define STAR_LEVEL_REPEAT_NAME "DISPLAY" | ||
212 | 272 | ||
213 | #elif CONFIG_KEYPAD == IAUDIO_M3_PAD | 273 | #elif CONFIG_KEYPAD == IAUDIO_M3_PAD |
214 | 274 | ||
@@ -221,11 +281,16 @@ PLUGIN_HEADER | |||
221 | #define STAR_LEVEL_UP (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP) | 281 | #define STAR_LEVEL_UP (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP) |
222 | #define STAR_LEVEL_DOWN (BUTTON_RC_PLAY|BUTTON_RC_VOL_DOWN) | 282 | #define STAR_LEVEL_DOWN (BUTTON_RC_PLAY|BUTTON_RC_VOL_DOWN) |
223 | #define STAR_LEVEL_REPEAT (BUTTON_RC_PLAY|BUTTON_RC_MENU) | 283 | #define STAR_LEVEL_REPEAT (BUTTON_RC_PLAY|BUTTON_RC_MENU) |
284 | #define STAR_TOGGLE_CONTROL_NAME "MODE" | ||
285 | #define STAR_QUIT_NAME "REC" | ||
286 | #define STAR_LEVEL_UP_NAME "PLAY+VOL+" | ||
287 | #define STAR_LEVEL_DOWN_NAME "PLAY+VOL-" | ||
288 | #define STAR_LEVEL_REPEAT_NAME "PLAY+MENU" | ||
224 | 289 | ||
225 | #elif (CONFIG_KEYPAD == COWOND2_PAD) | 290 | #elif (CONFIG_KEYPAD == COWOND2_PAD) |
226 | 291 | ||
227 | #define STAR_QUIT BUTTON_POWER | 292 | #define STAR_QUIT BUTTON_POWER |
228 | #define STAR_QUIT_NAME "[POWER]" | 293 | #define STAR_QUIT_NAME "POWER" |
229 | 294 | ||
230 | #elif CONFIG_KEYPAD == CREATIVEZVM_PAD | 295 | #elif CONFIG_KEYPAD == CREATIVEZVM_PAD |
231 | 296 | ||
@@ -238,6 +303,11 @@ PLUGIN_HEADER | |||
238 | #define STAR_LEVEL_UP (BUTTON_CUSTOM | BUTTON_UP) | 303 | #define STAR_LEVEL_UP (BUTTON_CUSTOM | BUTTON_UP) |
239 | #define STAR_LEVEL_DOWN (BUTTON_CUSTOM | BUTTON_DOWN) | 304 | #define STAR_LEVEL_DOWN (BUTTON_CUSTOM | BUTTON_DOWN) |
240 | #define STAR_LEVEL_REPEAT (BUTTON_CUSTOM | BUTTON_RIGHT) | 305 | #define STAR_LEVEL_REPEAT (BUTTON_CUSTOM | BUTTON_RIGHT) |
306 | #define STAR_TOGGLE_CONTROL_NAME "PLAY" | ||
307 | #define STAR_QUIT_NAME "BACK" | ||
308 | #define STAR_LEVEL_UP_NAME "CUSTOM+UP" | ||
309 | #define STAR_LEVEL_DOWN_NAME "CUSTOM+DOWN" | ||
310 | #define STAR_LEVEL_REPEAT_NAME "CUSTOM+RIGHT" | ||
241 | 311 | ||
242 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD | 312 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD |
243 | 313 | ||
@@ -250,15 +320,20 @@ PLUGIN_HEADER | |||
250 | #define STAR_LEVEL_UP BUTTON_VOL_UP | 320 | #define STAR_LEVEL_UP BUTTON_VOL_UP |
251 | #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN | 321 | #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN |
252 | #define STAR_LEVEL_REPEAT BUTTON_VIEW | 322 | #define STAR_LEVEL_REPEAT BUTTON_VIEW |
323 | #define STAR_TOGGLE_CONTROL_NAME "SELECT" | ||
324 | #define STAR_QUIT_NAME "POWER" | ||
325 | #define STAR_LEVEL_UP_NAME "VOL UP" | ||
326 | #define STAR_LEVEL_DOWN_NAME "VOL DOWN" | ||
327 | #define STAR_LEVEL_REPEAT_NAME "VIEW" | ||
253 | 328 | ||
254 | #elif (CONFIG_KEYPAD == ONDAVX747_PAD) | 329 | #elif (CONFIG_KEYPAD == ONDAVX747_PAD) |
255 | 330 | ||
256 | #define STAR_QUIT BUTTON_POWER | 331 | #define STAR_QUIT BUTTON_POWER |
257 | #define STAR_QUIT_NAME "[POWER]" | 332 | #define STAR_QUIT_NAME "POWER" |
258 | 333 | ||
259 | #elif CONFIG_KEYPAD == MROBE500_PAD | 334 | #elif CONFIG_KEYPAD == MROBE500_PAD |
260 | #define STAR_QUIT BUTTON_POWER | 335 | #define STAR_QUIT BUTTON_POWER |
261 | #define STAR_QUIT_NAME "[POWER]" | 336 | #define STAR_QUIT_NAME "POWER" |
262 | 337 | ||
263 | #else | 338 | #else |
264 | #error No keymap defined! | 339 | #error No keymap defined! |
@@ -267,7 +342,7 @@ PLUGIN_HEADER | |||
267 | #ifdef HAVE_TOUCHSCREEN | 342 | #ifdef HAVE_TOUCHSCREEN |
268 | //#ifndef STAR_QUIT | 343 | //#ifndef STAR_QUIT |
269 | //#define STAR_QUIT BUTTON_TOPLEFT | 344 | //#define STAR_QUIT BUTTON_TOPLEFT |
270 | //#define STAR_QUIT_NAME "[TOPLEFT]" | 345 | //#define STAR_QUIT_NAME "TOPLEFT" |
271 | //#endif | 346 | //#endif |
272 | #ifndef STAR_LEFT | 347 | #ifndef STAR_LEFT |
273 | #define STAR_LEFT BUTTON_MIDLEFT | 348 | #define STAR_LEFT BUTTON_MIDLEFT |
@@ -283,19 +358,19 @@ PLUGIN_HEADER | |||
283 | #endif | 358 | #endif |
284 | #ifndef STAR_TOGGLE_CONTROL | 359 | #ifndef STAR_TOGGLE_CONTROL |
285 | #define STAR_TOGGLE_CONTROL BUTTON_CENTER | 360 | #define STAR_TOGGLE_CONTROL BUTTON_CENTER |
286 | #define STAR_TOGGLE_CONTROL_NAME "[CENTER]" | 361 | #define STAR_TOGGLE_CONTROL_NAME "CENTER" |
287 | #endif | 362 | #endif |
288 | #ifndef STAR_LEVEL_UP | 363 | #ifndef STAR_LEVEL_UP |
289 | #define STAR_LEVEL_UP BUTTON_TOPLEFT | 364 | #define STAR_LEVEL_UP BUTTON_TOPLEFT |
290 | #define STAR_LEVEL_UP_NAME "[TOPLEFT]" | 365 | #define STAR_LEVEL_UP_NAME "TOPLEFT" |
291 | #endif | 366 | #endif |
292 | #ifndef STAR_LEVEL_DOWN | 367 | #ifndef STAR_LEVEL_DOWN |
293 | #define STAR_LEVEL_DOWN BUTTON_BOTTOMLEFT | 368 | #define STAR_LEVEL_DOWN BUTTON_BOTTOMLEFT |
294 | #define STAR_LEVEL_DOWN_NAME "[BOTTOMLEFT]" | 369 | #define STAR_LEVEL_DOWN_NAME "BOTTOMLEFT" |
295 | #endif | 370 | #endif |
296 | #ifndef STAR_LEVEL_REPEAT | 371 | #ifndef STAR_LEVEL_REPEAT |
297 | #define STAR_LEVEL_REPEAT BUTTON_BOTTOMRIGHT | 372 | #define STAR_LEVEL_REPEAT BUTTON_BOTTOMRIGHT |
298 | #define STAR_LEVEL_REPEAT_NAME "[BOTTOMRIGHT]" | 373 | #define STAR_LEVEL_REPEAT_NAME "BOTTOMRIGHT" |
299 | #endif | 374 | #endif |
300 | #endif | 375 | #endif |
301 | 376 | ||
@@ -539,104 +614,6 @@ static unsigned char* levels = | |||
539 | "****************"; | 614 | "****************"; |
540 | 615 | ||
541 | /** | 616 | /** |
542 | * Display text. | ||
543 | */ | ||
544 | void star_display_text(char *str, bool waitkey) | ||
545 | { | ||
546 | int chars_by_line; | ||
547 | int lines_by_screen; | ||
548 | int chars_for_line; | ||
549 | int current_line = 0; | ||
550 | int first_char_index = 0; | ||
551 | char *ptr_char; | ||
552 | char *ptr_line; | ||
553 | int i; | ||
554 | char line[255]; | ||
555 | int key; | ||
556 | bool go_on; | ||
557 | |||
558 | rb->lcd_clear_display(); | ||
559 | |||
560 | chars_by_line = LCD_WIDTH / char_width; | ||
561 | lines_by_screen = LCD_HEIGHT / char_height; | ||
562 | |||
563 | do | ||
564 | { | ||
565 | ptr_char = str + first_char_index; | ||
566 | chars_for_line = 0; | ||
567 | i = 0; | ||
568 | ptr_line = line; | ||
569 | while (i < chars_by_line) | ||
570 | { | ||
571 | switch (*ptr_char) | ||
572 | { | ||
573 | case '\t': | ||
574 | case ' ': | ||
575 | *(ptr_line++) = ' '; | ||
576 | case '\n': | ||
577 | case '\0': | ||
578 | chars_for_line = i; | ||
579 | break; | ||
580 | |||
581 | default: | ||
582 | *(ptr_line++) = *ptr_char; | ||
583 | } | ||
584 | if (*ptr_char == '\n' || *ptr_char == '\0') | ||
585 | break; | ||
586 | ptr_char++; | ||
587 | i++; | ||
588 | } | ||
589 | |||
590 | if (chars_for_line == 0) | ||
591 | chars_for_line = i; | ||
592 | |||
593 | line[chars_for_line] = '\0'; | ||
594 | |||
595 | /* test if we have cut a word. If it is the case we don't have to */ | ||
596 | /* skip the space */ | ||
597 | if (i == chars_by_line && chars_for_line == chars_by_line) | ||
598 | first_char_index += chars_for_line; | ||
599 | else | ||
600 | first_char_index += chars_for_line + 1; | ||
601 | |||
602 | /* print the line on the screen */ | ||
603 | rb->lcd_putsxy(0, current_line * char_height, line); | ||
604 | |||
605 | /* if the number of line showed on the screen is equals to the */ | ||
606 | /* maximum number of line we can show, we wait for a key pressed to */ | ||
607 | /* clear and show the remaining text. */ | ||
608 | current_line++; | ||
609 | if (current_line == lines_by_screen || *ptr_char == '\0') | ||
610 | { | ||
611 | current_line = 0; | ||
612 | rb->lcd_update(); | ||
613 | go_on = false; | ||
614 | while (waitkey && !go_on) | ||
615 | { | ||
616 | key = rb->button_get(true); | ||
617 | switch (key) | ||
618 | { | ||
619 | case STAR_QUIT: | ||
620 | case STAR_LEFT: | ||
621 | case STAR_DOWN: | ||
622 | go_on = true; | ||
623 | break; | ||
624 | |||
625 | default: | ||
626 | if (rb->default_event_handler(key) == SYS_USB_CONNECTED) | ||
627 | { | ||
628 | usb_detected = true; | ||
629 | go_on = true; | ||
630 | break; | ||
631 | } | ||
632 | } | ||
633 | } | ||
634 | rb->lcd_clear_display(); | ||
635 | } | ||
636 | } while (*ptr_char != '\0'); | ||
637 | } | ||
638 | |||
639 | /** | ||
640 | * Do a pretty transition from one level to another. | 617 | * Do a pretty transition from one level to another. |
641 | */ | 618 | */ |
642 | static void star_transition_update(void) | 619 | static void star_transition_update(void) |
@@ -986,7 +963,7 @@ static int star_run_game(int current_level) | |||
986 | if (current_level == STAR_LEVEL_COUNT) | 963 | if (current_level == STAR_LEVEL_COUNT) |
987 | { | 964 | { |
988 | rb->lcd_clear_display(); | 965 | rb->lcd_clear_display(); |
989 | star_display_text("Congratulations!", true); | 966 | rb->splash(HZ*2, "Congratulations!"); |
990 | rb->lcd_update(); | 967 | rb->lcd_update(); |
991 | 968 | ||
992 | /* There is no such level as STAR_LEVEL_COUNT so it can't be the | 969 | /* There is no such level as STAR_LEVEL_COUNT so it can't be the |
@@ -1000,6 +977,45 @@ static int star_run_game(int current_level) | |||
1000 | } | 977 | } |
1001 | 978 | ||
1002 | /** | 979 | /** |
980 | * Display help text. | ||
981 | */ | ||
982 | static bool star_help(void) | ||
983 | { | ||
984 | int button; | ||
985 | #define WORDS (sizeof help_text / sizeof (char*)) | ||
986 | static char* help_text[] = { | ||
987 | "Star", "", "Aim", "", | ||
988 | "Take", "all", "the", "stars", "to", "go", "to", "the", "next", "level.", | ||
989 | "You", "can", "toggle", "control", "with", "the", "block", "to", "use", | ||
990 | "it", "as", "a", "mobile", "wall.", "The", "block", "cannot", "take", | ||
991 | "stars.", "", "", | ||
992 | "Controls", "", | ||
993 | STAR_TOGGLE_CONTROL_NAME":", "Toggle", "Control", "", | ||
994 | STAR_QUIT_NAME":", "", "Exit", "", | ||
995 | STAR_LEVEL_DOWN_NAME":", "Prev.", "level", "", | ||
996 | STAR_LEVEL_REPEAT_NAME":", "Reset", "level", "", | ||
997 | STAR_LEVEL_UP_NAME":", "Next", "level" | ||
998 | }; | ||
999 | static struct style_text formation[]={ | ||
1000 | { 0, TEXT_CENTER|TEXT_UNDERLINE }, | ||
1001 | { 2, C_RED }, | ||
1002 | { 35, C_RED }, | ||
1003 | { -1, 0 } | ||
1004 | }; | ||
1005 | |||
1006 | if (display_text(WORDS, help_text, formation, NULL)) | ||
1007 | return true; | ||
1008 | do { | ||
1009 | button = rb->button_get(true); | ||
1010 | if ( rb->default_event_handler( button ) == SYS_USB_CONNECTED ) | ||
1011 | return true; | ||
1012 | } while( ( button == BUTTON_NONE ) | ||
1013 | || ( button & (BUTTON_REL|BUTTON_REPEAT) ) ); | ||
1014 | |||
1015 | return false; | ||
1016 | } | ||
1017 | |||
1018 | /** | ||
1003 | * Display the choice menu. | 1019 | * Display the choice menu. |
1004 | */ | 1020 | */ |
1005 | static int star_menu(void) | 1021 | static int star_menu(void) |
@@ -1010,7 +1026,7 @@ static int star_menu(void) | |||
1010 | rb->lcd_getstringsize("a", &char_width, &char_height); | 1026 | rb->lcd_getstringsize("a", &char_width, &char_height); |
1011 | 1027 | ||
1012 | MENUITEM_STRINGLIST(menu,"Star Menu",NULL,"Play","Choose Level", | 1028 | MENUITEM_STRINGLIST(menu,"Star Menu",NULL,"Play","Choose Level", |
1013 | "Information","Keys","Quit"); | 1029 | "Help", "Quit"); |
1014 | 1030 | ||
1015 | while(!menu_quit) | 1031 | while(!menu_quit) |
1016 | { | 1032 | { |
@@ -1024,80 +1040,8 @@ static int star_menu(void) | |||
1024 | NULL, 1, 1, STAR_LEVEL_COUNT, NULL ); | 1040 | NULL, 1, 1, STAR_LEVEL_COUNT, NULL ); |
1025 | break; | 1041 | break; |
1026 | case 2: | 1042 | case 2: |
1027 | star_display_text( | 1043 | if(star_help()) |
1028 | "INFO\n\n" | 1044 | usb_detected = true; |
1029 | "Take all the stars to go to the next level. " | ||
1030 | "You can toggle control with the block to " | ||
1031 | "use it as a mobile wall. The block cannot " | ||
1032 | "take stars.", true); | ||
1033 | break; | ||
1034 | case 3: | ||
1035 | #if CONFIG_KEYPAD == RECORDER_PAD | ||
1036 | star_display_text("KEYS\n\n" | ||
1037 | "[ON] Toggle Ctl.\n" | ||
1038 | "[OFF] Exit\n" | ||
1039 | "[F1] Prev. level\n" | ||
1040 | "[F2] Reset level\n" | ||
1041 | "[F3] Next level", true); | ||
1042 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
1043 | star_display_text("KEYS\n\n" | ||
1044 | "[MODE] Toggle Ctl\n" | ||
1045 | "[OFF] Exit\n" | ||
1046 | "[M <] Prev. level\n" | ||
1047 | "[M ^] Reset level\n" | ||
1048 | "[M >] Next level", true); | ||
1049 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
1050 | star_display_text("KEYS\n\n" | ||
1051 | "[MODE/NAVI] Toggle Ctrl\n" | ||
1052 | "[OFF] Exit\n" | ||
1053 | "[ON + LEFT] Prev. level\n" | ||
1054 | "[ON + NAVI] Reset level\n" | ||
1055 | "[ON + RIGHT] Next level", true); | ||
1056 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | ||
1057 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) | ||
1058 | star_display_text("KEYS\n\n" | ||
1059 | "[SELECT] Toggle Ctl\n" | ||
1060 | "[S + MENU] Exit\n" | ||
1061 | "[S <] Prev. level\n" | ||
1062 | "[S + PLAY] Reset level\n" | ||
1063 | "[S >] Next level", true); | ||
1064 | #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD | ||
1065 | star_display_text("KEYS\n\n" | ||
1066 | "[SELECT] Toggle Ctl\n" | ||
1067 | "[POWER] Exit\n" | ||
1068 | "[REC..] Prev. level\n" | ||
1069 | "[PLAY] Reset level\n" | ||
1070 | "[REC] Next level", true); | ||
1071 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
1072 | star_display_text("KEYS\n\n" | ||
1073 | "[SELECT] Toggle Control\n" | ||
1074 | "[POWER] Exit\n" | ||
1075 | "[VOL DOWN] Prev. level\n" | ||
1076 | "[A] Reset level\n" | ||
1077 | "[VOL UP] Next level", true); | ||
1078 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | ||
1079 | star_display_text("KEYS\n\n" | ||
1080 | "[REW] Toggle Ctl\n" | ||
1081 | "[POWER] Exit\n" | ||
1082 | "[PLAY+DOWN] Prev. level\n" | ||
1083 | "[PLAY+RIGHT] Reset level\n" | ||
1084 | "[PLAY+UP] Next level", true); | ||
1085 | #elif CONFIG_KEYPAD == GIGABEAT_S_PAD | ||
1086 | star_display_text("KEYS\n\n" | ||
1087 | "[SELECT] Toggle Control\n" | ||
1088 | "[BACK] Exit\n" | ||
1089 | "[VOL DOWN] Prev. level\n" | ||
1090 | "[MENU] Reset level\n" | ||
1091 | "[VOL UP] Next level", true); | ||
1092 | #endif | ||
1093 | #ifdef HAVE_TOUCHSCREEN | ||
1094 | star_display_text("KEYS\n\n" | ||
1095 | STAR_TOGGLE_CONTROL_NAME " Toggle Control\n" | ||
1096 | STAR_QUIT_NAME " Exit\n" | ||
1097 | STAR_LEVEL_DOWN_NAME " Prev. level\n" | ||
1098 | STAR_LEVEL_REPEAT_NAME " Reset level\n" | ||
1099 | STAR_LEVEL_UP_NAME " Next level", true); | ||
1100 | #endif | ||
1101 | break; | 1045 | break; |
1102 | default: | 1046 | default: |
1103 | menu_quit = true; | 1047 | menu_quit = true; |