diff options
author | Justin Heiner <jheiner@rockbox.org> | 2002-08-13 07:08:58 +0000 |
---|---|---|
committer | Justin Heiner <jheiner@rockbox.org> | 2002-08-13 07:08:58 +0000 |
commit | 953a74ad11fe5eda1608ba59e32f8f76ffeb6a15 (patch) | |
tree | d5290a61163cc613ff30c3488bfcce6d873f7c1b /apps/wps.c | |
parent | 80b5edc9bcf10a8b37cbe2969e42685e99f138a3 (diff) | |
download | rockbox-953a74ad11fe5eda1608ba59e32f8f76ffeb6a15.tar.gz rockbox-953a74ad11fe5eda1608ba59e32f8f76ffeb6a15.zip |
Fixed problems in display of Keylock/Mute. Added ID3 Info screen to Player WPS. Access through Menu+ON. Navigate with LEFT/RIGHT
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1695 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/wps.c')
-rw-r--r-- | apps/wps.c | 182 |
1 files changed, 157 insertions, 25 deletions
diff --git a/apps/wps.c b/apps/wps.c index 46dbe83b6c..35d6901210 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -171,9 +171,127 @@ static void draw_screen(struct mp3entry* id3) | |||
171 | lcd_update(); | 171 | lcd_update(); |
172 | } | 172 | } |
173 | 173 | ||
174 | int player_id3_show(void) | ||
175 | { | ||
176 | int button; | ||
177 | int menu_pos = 0; | ||
178 | int menu_max = 6; | ||
179 | bool menu_changed = true; | ||
180 | char scroll_text[MAX_PATH]; | ||
181 | struct mp3entry* id3 = NULL; | ||
182 | |||
183 | lcd_stop_scroll(); | ||
184 | lcd_clear_display(); | ||
185 | lcd_puts(0, 0, "-ID3 Info- "); | ||
186 | lcd_puts(0, 1, "--Screen-- "); | ||
187 | sleep(HZ*1.5); | ||
188 | |||
189 | while(1) | ||
190 | { | ||
191 | id3 = mpeg_current_track(); | ||
192 | button = button_get(false); | ||
193 | |||
194 | switch(button) | ||
195 | { | ||
196 | case BUTTON_LEFT: | ||
197 | menu_changed = true; | ||
198 | if(menu_pos > 0) | ||
199 | menu_pos--; | ||
200 | else | ||
201 | menu_pos = menu_max; | ||
202 | break; | ||
203 | |||
204 | case BUTTON_RIGHT: | ||
205 | menu_changed = true; | ||
206 | if(menu_pos < menu_max) | ||
207 | menu_pos++; | ||
208 | else | ||
209 | menu_pos = 0; | ||
210 | break; | ||
211 | |||
212 | case BUTTON_REPEAT: | ||
213 | break; | ||
214 | |||
215 | case BUTTON_STOP: | ||
216 | case BUTTON_PLAY: | ||
217 | lcd_stop_scroll(); | ||
218 | return(0); | ||
219 | break; | ||
220 | |||
221 | #ifndef SIMULATOR | ||
222 | case SYS_USB_CONNECTED: | ||
223 | /* Tell the USB thread that we are safe */ | ||
224 | DEBUGF("wps got SYS_USB_CONNECTED\n"); | ||
225 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | ||
226 | |||
227 | /* Wait until the USB cable is extracted again */ | ||
228 | usb_wait_for_disconnect(&button_queue); | ||
229 | |||
230 | /* Signal to our caller that we have been in USB mode */ | ||
231 | return SYS_USB_CONNECTED; | ||
232 | break; | ||
233 | #endif | ||
234 | |||
235 | } | ||
236 | |||
237 | switch(menu_pos) | ||
238 | { | ||
239 | case 0: | ||
240 | lcd_puts(0, 0, "Title"); | ||
241 | snprintf(scroll_text,sizeof(scroll_text), "%s", | ||
242 | id3->title); | ||
243 | break; | ||
244 | case 1: | ||
245 | lcd_puts(0, 0, "Artist"); | ||
246 | snprintf(scroll_text,sizeof(scroll_text), "%s", | ||
247 | id3->artist); | ||
248 | break; | ||
249 | case 2: | ||
250 | lcd_puts(0, 0, "Album"); | ||
251 | snprintf(scroll_text,sizeof(scroll_text), "%s", | ||
252 | id3->album); | ||
253 | break; | ||
254 | case 3: | ||
255 | lcd_puts(0, 0, "Length"); | ||
256 | snprintf(scroll_text,sizeof(scroll_text), "%d:%02d", | ||
257 | id3->length / 60000, | ||
258 | id3->length % 60000 / 1000 ); | ||
259 | break; | ||
260 | case 4: | ||
261 | lcd_puts(0, 0, "Bitrate"); | ||
262 | snprintf(scroll_text,sizeof(scroll_text), "%d kbps", | ||
263 | id3->bitrate); | ||
264 | break; | ||
265 | case 5: | ||
266 | lcd_puts(0, 0, "Frequency"); | ||
267 | snprintf(scroll_text,sizeof(scroll_text), "%d kHz", | ||
268 | id3->frequency); | ||
269 | break; | ||
270 | case 6: | ||
271 | lcd_puts(0, 0, "Path"); | ||
272 | snprintf(scroll_text,sizeof(scroll_text), "%s", | ||
273 | id3->path); | ||
274 | break; | ||
275 | } | ||
276 | |||
277 | if(menu_changed == true) | ||
278 | { | ||
279 | menu_changed = false; | ||
280 | lcd_stop_scroll(); | ||
281 | lcd_clear_display(); | ||
282 | lcd_puts_scroll(0, 1, scroll_text); | ||
283 | } | ||
284 | |||
285 | status_draw(); | ||
286 | lcd_update(); | ||
287 | yield(); | ||
288 | } | ||
289 | |||
290 | } | ||
291 | |||
174 | void display_keylock_text(bool locked) | 292 | void display_keylock_text(bool locked) |
175 | { | 293 | { |
176 | lcd_scroll_pause(); | 294 | lcd_stop_scroll(); |
177 | lcd_clear_display(); | 295 | lcd_clear_display(); |
178 | 296 | ||
179 | #ifdef HAVE_LCD_CHARCELLS | 297 | #ifdef HAVE_LCD_CHARCELLS |
@@ -194,12 +312,11 @@ void display_keylock_text(bool locked) | |||
194 | #endif | 312 | #endif |
195 | 313 | ||
196 | sleep(HZ); | 314 | sleep(HZ); |
197 | lcd_scroll_resume(); | ||
198 | } | 315 | } |
199 | 316 | ||
200 | void display_mute_text(bool muted) | 317 | void display_mute_text(bool muted) |
201 | { | 318 | { |
202 | lcd_scroll_pause(); | 319 | lcd_stop_scroll(); |
203 | lcd_clear_display(); | 320 | lcd_clear_display(); |
204 | 321 | ||
205 | #ifdef HAVE_LCD_CHARCELLS | 322 | #ifdef HAVE_LCD_CHARCELLS |
@@ -220,7 +337,6 @@ void display_mute_text(bool muted) | |||
220 | #endif | 337 | #endif |
221 | 338 | ||
222 | sleep(HZ); | 339 | sleep(HZ); |
223 | lcd_scroll_resume(); | ||
224 | } | 340 | } |
225 | 341 | ||
226 | /* demonstrates showing different formats from playtune */ | 342 | /* demonstrates showing different formats from playtune */ |
@@ -372,35 +488,22 @@ int wps_show(void) | |||
372 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 488 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
373 | break; | 489 | break; |
374 | 490 | ||
375 | #ifdef HAVE_RECORDER_KEYPAD | 491 | case BUTTON_MENU | BUTTON_ON: |
376 | case BUTTON_F1 | BUTTON_UP: | ||
377 | #else | ||
378 | case BUTTON_MENU | BUTTON_UP: | ||
379 | #endif | ||
380 | if (keys_locked) | 492 | if (keys_locked) |
381 | { | 493 | { |
382 | display_keylock_text(keys_locked); | 494 | display_keylock_text(keys_locked); |
383 | draw_screen(id3); | 495 | draw_screen(id3); |
384 | break; | 496 | break; |
385 | } | 497 | } |
498 | int retval; | ||
386 | dont_go_to_menu = true; | 499 | dont_go_to_menu = true; |
387 | 500 | lcd_stop_scroll(); | |
388 | if(global_settings.muted == false) | 501 | retval = player_id3_show(); |
389 | { | 502 | if(retval == SYS_USB_CONNECTED) |
390 | global_settings.muted = true; | 503 | return SYS_USB_CONNECTED; |
391 | mpeg_sound_set(SOUND_VOLUME, 0); | 504 | draw_screen(id3); |
392 | display_mute_text(global_settings.muted); | ||
393 | draw_screen(id3); | ||
394 | } | ||
395 | else | ||
396 | { | ||
397 | global_settings.muted = false; | ||
398 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | ||
399 | display_mute_text(global_settings.muted); | ||
400 | draw_screen(id3); | ||
401 | } | ||
402 | break; | 505 | break; |
403 | 506 | ||
404 | case BUTTON_MENU: | 507 | case BUTTON_MENU: |
405 | lcd_icon(ICON_PARAM, true); | 508 | lcd_icon(ICON_PARAM, true); |
406 | menu_button_is_down = true; | 509 | menu_button_is_down = true; |
@@ -427,6 +530,35 @@ int wps_show(void) | |||
427 | } | 530 | } |
428 | break; | 531 | break; |
429 | #endif | 532 | #endif |
533 | |||
534 | #ifdef HAVE_RECORDER_KEYPAD | ||
535 | case BUTTON_F1: | BUTTON_UP: | ||
536 | #else | ||
537 | case BUTTON_MENU | BUTTON_UP: | ||
538 | #endif | ||
539 | if(keys_locked) | ||
540 | { | ||
541 | display_keylock_text(keys_locked); | ||
542 | draw_screen(id3); | ||
543 | break; | ||
544 | } | ||
545 | dont_go_to_menu = true; | ||
546 | |||
547 | if(global_settings.muted == false) | ||
548 | { | ||
549 | global_settings.muted = true; | ||
550 | mpeg_sound_set(SOUND_VOLUME, 0); | ||
551 | display_mute_text(global_settings.muted); | ||
552 | draw_screen(id3); | ||
553 | } | ||
554 | else | ||
555 | { | ||
556 | global_settings.muted = false; | ||
557 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | ||
558 | display_mute_text(global_settings.muted); | ||
559 | draw_screen(id3); | ||
560 | } | ||
561 | break; | ||
430 | 562 | ||
431 | #ifdef HAVE_RECORDER_KEYPAD | 563 | #ifdef HAVE_RECORDER_KEYPAD |
432 | case BUTTON_F1 | BUTTON_DOWN: | 564 | case BUTTON_F1 | BUTTON_DOWN: |