summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorHardeep Sidhu <dyp@pobox.com>2005-06-25 04:46:25 +0000
committerHardeep Sidhu <dyp@pobox.com>2005-06-25 04:46:25 +0000
commit74d082c03892ae551cf4a72bb27af91fe8e1ed28 (patch)
tree227ede22869e6aa2e4f919a38cc3638ee0d76cfe /firmware
parent1224d578e8ef250cacc86ba3e97408446867baa6 (diff)
downloadrockbox-74d082c03892ae551cf4a72bb27af91fe8e1ed28.tar.gz
rockbox-74d082c03892ae551cf4a72bb27af91fe8e1ed28.zip
Added new shuffle repeat mode that reshuffles playlist before repeating. Also added new shuffled insert mode that randomly inserts selected track(s) somewhere between current track and end of playlist.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6861 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/mpeg.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index e4ea8d67e7..092447fe2d 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -862,14 +862,15 @@ static void stop_playing(void)
static void update_playlist(void)
{
- int index;
- struct trackdata *track;
-
if (num_tracks_in_memory() > 0)
{
- track = get_trackdata(0);
- index = playlist_next(track->id3.index);
- track->id3.index = index;
+ struct trackdata *track = get_trackdata(0);
+ track->id3.index = playlist_next(track->id3.index);
+ }
+ else
+ {
+ /* End of playlist */
+ playlist_next(playlist_amount());
}
}
@@ -1189,6 +1190,9 @@ static void mpeg_thread(void)
if (new_file(1) < 0) {
DEBUGF("No more files to play\n");
filling = false;
+
+ update_playlist();
+ current_track_counter++;
} else {
/* Make it read more data */
filling = true;