summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-07-01 11:06:23 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-07-01 11:06:23 +0000
commitc4c52f82091e1dd117d232df4efecece185fc958 (patch)
tree96119a44c00a3fbd7193d8962c276f9e55832632
parent53b8c995218647321e0e6d6a421af1ae9fa24710 (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.c45
-rw-r--r--apps/wps.c21
-rw-r--r--apps/wps.h2
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