summaryrefslogtreecommitdiff
path: root/apps/wps.c
diff options
context:
space:
mode:
authorJustin Heiner <jheiner@rockbox.org>2002-08-13 07:08:58 +0000
committerJustin Heiner <jheiner@rockbox.org>2002-08-13 07:08:58 +0000
commit953a74ad11fe5eda1608ba59e32f8f76ffeb6a15 (patch)
treed5290a61163cc613ff30c3488bfcce6d873f7c1b /apps/wps.c
parent80b5edc9bcf10a8b37cbe2969e42685e99f138a3 (diff)
downloadrockbox-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.c182
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
174int 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
174void display_keylock_text(bool locked) 292void 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
200void display_mute_text(bool muted) 317void 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: