diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-01 11:06:23 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-01 11:06:23 +0000 |
commit | c4c52f82091e1dd117d232df4efecece185fc958 (patch) | |
tree | 96119a44c00a3fbd7193d8962c276f9e55832632 | |
parent | 53b8c995218647321e0e6d6a421af1ae9fa24710 (diff) |
WPS screen now handles USB detection
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1282 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/tree.c | 45 | ||||
-rw-r--r-- | apps/wps.c | 21 | ||||
-rw-r--r-- | apps/wps.h | 2 |
3 files changed, 48 insertions, 20 deletions
diff --git a/apps/tree.c b/apps/tree.c index b7f18fa829..a6308b4391 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -256,6 +256,7 @@ bool dirbrowse(char *root) char buf[255]; int i; int button; + int rc; memcpy(currdir,root,sizeof(currdir)); numentries = showdir(root, start); @@ -341,7 +342,13 @@ bool dirbrowse(char *root) mpeg_play(buf); } lcd_stop_scroll(); - wps_show(); + rc = wps_show(); + if(rc == SYS_USB_CONNECTED) + { + /* Force a re-read of the root directory */ + strcpy(currdir, "/"); + lastdir[0] = 0; + } } restore = true; break; @@ -391,27 +398,31 @@ bool dirbrowse(char *root) case BUTTON_ON: if ( play_mode ) { lcd_stop_scroll(); - wps_show(); + rc = wps_show(); + if(rc == SYS_USB_CONNECTED) + { + /* Force a re-read of the root directory */ + strcpy(currdir, "/"); + lastdir[0] = 0; + } restore = true; } break; #ifndef SIMULATOR - case SYS_USB_CONNECTED: - /* Tell the USB thread that we are safe */ - DEBUGF("dirbrowse got SYS_USB_CONNECTED\n"); - usb_acknowledge(SYS_USB_CONNECTED_ACK); - - usb_display_info(); - - /* Wait until the USB cable is extracted again */ - usb_wait_for_disconnect(&button_queue); - - /* Force a re-read of the root directory */ - restore = 1; - strcpy(currdir, "/"); - lastdir[0] = 0; - break; + case SYS_USB_CONNECTED: + /* Tell the USB thread that we are safe */ + DEBUGF("dirbrowse got SYS_USB_CONNECTED\n"); + usb_acknowledge(SYS_USB_CONNECTED_ACK); + + /* Wait until the USB cable is extracted again */ + usb_wait_for_disconnect(&button_queue); + + /* Force a re-read of the root directory */ + restore = true; + strcpy(currdir, "/"); + lastdir[0] = 0; + break; #endif } diff --git a/apps/wps.c b/apps/wps.c index 25ce735066..cad10538fb 100644 --- a/apps/wps.c +++ b/apps/wps.c @@ -30,6 +30,7 @@ #include "settings.h" #include "wps.h" #include "mpeg.h" +#include "usb.h" #define LINE_Y 1 /* initial line */ @@ -112,7 +113,7 @@ static void draw_screen(struct mp3entry* id3) } /* demonstrates showing different formats from playtune */ -void wps_show(void) +int wps_show(void) { static bool playing = true; struct mp3entry* id3 = mpeg_current_track(); @@ -159,7 +160,7 @@ void wps_show(void) for ( i=0;i<5;i++ ) { switch ( button_get(false) ) { case BUTTON_ON: - return; + return 0; #ifdef HAVE_RECORDER_KEYPAD case BUTTON_PLAY: @@ -205,6 +206,22 @@ void wps_show(void) #endif mpeg_stop(); break; + +#ifndef SIMULATOR + case SYS_USB_CONNECTED: + /* Tell the USB thread that we are safe */ + DEBUGF("dirbrowse got SYS_USB_CONNECTED\n"); + usb_acknowledge(SYS_USB_CONNECTED_ACK); + + usb_display_info(); + + /* Wait until the USB cable is extracted again */ + usb_wait_for_disconnect(&button_queue); + + /* Signal to our caller that we have been in USB mode */ + return SYS_USB_CONNECTED; + break; +#endif } sleep(HZ/10); } diff --git a/apps/wps.h b/apps/wps.h index 5a7d81693b..4b4e63efc5 100644 --- a/apps/wps.h +++ b/apps/wps.h @@ -21,6 +21,6 @@ #include "id3.h" #include "playlist.h" -void wps_show(void); +int wps_show(void); #endif |