summaryrefslogtreecommitdiffstats
path: root/apps/root_menu.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-01-11 04:03:17 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-01-11 04:03:17 +0000
commitb84fe020a5bc497cee9b88eb782c2d4a9b7be711 (patch)
treea8cf8514d1b5cb641fa5aa32e7a689bce003a917 /apps/root_menu.c
parent6d871d53a3f089071e4cfdc91a98e05615aa608a (diff)
downloadrockbox-b84fe020a5bc497cee9b88eb782c2d4a9b7be711.tar.gz
rockbox-b84fe020a5bc497cee9b88eb782c2d4a9b7be711.tar.bz2
rockbox-b84fe020a5bc497cee9b88eb782c2d4a9b7be711.zip
use the playback PLAYBACK_EVENT_TRACK_CHANGE instead of the WPS to keep track of the current track (for follow playlist)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19747 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/root_menu.c')
-rw-r--r--apps/root_menu.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/root_menu.c b/apps/root_menu.c
index 07bd4939e0..5c4abf6522 100644
--- a/apps/root_menu.c
+++ b/apps/root_menu.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include "config.h"
+#include "appevents.h"
#include "menu.h"
#include "root_menu.h"
#include "lang.h"
@@ -75,6 +76,12 @@ struct root_items {
static int last_screen = GO_TO_ROOT; /* unfortunatly needed so we can resume
or goto current track based on previous
screen */
+static char current_track_path[MAX_PATH];
+static void rootmenu_track_changed_callback(void* param)
+{
+ struct mp3entry *id3 = (struct mp3entry *)param;
+ strncpy(current_track_path, id3->path, MAX_PATH);
+}
static int browser(void* param)
{
int ret_val;
@@ -96,9 +103,9 @@ static int browser(void* param)
filter = global_settings.dirfilter;
if (global_settings.browse_current &&
last_screen == GO_TO_WPS &&
- wps_state.current_track_path[0])
+ current_track_path[0])
{
- strcpy(folder, wps_state.current_track_path);
+ strcpy(folder, current_track_path);
}
#ifdef HAVE_HOTSWAP /* quick hack to stop crashing if you try entering
the browser from the menu when you were in the card
@@ -506,7 +513,7 @@ void root_menu(void)
if (global_settings.start_in_screen == 0)
next_screen = (int)global_status.last_screen;
else next_screen = global_settings.start_in_screen - 2;
-
+ add_event(PLAYBACK_EVENT_TRACK_CHANGE, false, rootmenu_track_changed_callback);
#ifdef HAVE_RTC_ALARM
if ( rtc_check_alarm_started(true) )
{