Rockbox

Tasklist

FS#1401 - Dynamic playlists

Attached to Project: Rockbox
Opened by Hardeep Sidhu (hardeeps) - Friday, 30 May 2003, 08:01 GMT
Last edited by Björn Stenberg (zagor) - Friday, 04 July 2003, 08:30 GMT
Task Type Patches
Category
Status Closed
Assigned To No-one
Operating System
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

Attached patch implements dynamic playlists -- Individual tracks, directories (non-recursive) and playlists can be:
1) Inserted - added after current playing track
2) Appended - added to end of playlist
3) Queued - same as inserted except track is deleted after it has been played
4) Queue appended - queued at end of playlist

into the current playing playlist from the ON+PLAY menu. The number of tracks that can be added is limited by the max playlist size. Support has also been added for deleting tracks from the playlist although it's currently only used internally for removing queued tracks (it'll be more useful once a playlist viewer is implemented). Finally, the current dynamic playlist (excluding queued tracks) can be saved to disk (playlist options->save dynamic playlist).

Implementation details:
The majority of the changes are in the playlist code but there are minor changes throughout the app modules. Highlights include:
- The queue file has been replaced with a playlist control file (/.rockbox/.playlist_control) that contains all the commands applied to the playlist (see comments in playlist.c for description of commands and format of file).
- The only resume info now stored in the config block is the resume index and offset as everything else is saved in the control file.
- Several new APIs have been added to the playlist module and a few others have been changed/removed (NOTE: the bookmarking patch is currently incompatible with this patch because of the changes).
- A playlist menu has been created off of the main menu. It currently contains "Create Playlist" and "Save Dynamic Playlist".
- Insert/Append/Queue added to ON+PLAY menu for mpa and m3u files as well as directories.
- I've attached a separate patch for the uisimulator changes required. This patch is incomplete as, even though everything builds, it outputs warnings and hasn't been tested except for win32.

A lot of the credit should go to ricII as the implementation is based on his original design.
This task depends upon

Closed by  Björn Stenberg (zagor)
Friday, 04 July 2003, 08:30 GMT
Reason for closing:  Accepted
Comment by Hardeep Sidhu (hardeeps) - Friday, 30 May 2003, 09:44 GMT

Fixed a resume bug.
Comment by Anonymous Submitter - Friday, 30 May 2003, 09:44 GMT

Yes! Just what I've been waiting for, I was actually going to
start coding my own system this weekend, but looks like you
beat me too it :D

Comment by Hardeep Sidhu (hardeeps) - Saturday, 31 May 2003, 18:04 GMT

By popular request, added support for recursive insertion of directories. This can be enabled/disabled from Playlist Options->Insert Directories Recursively.

Small update to simulator patch so that msvc project properly builds.
Comment by Hardeep Sidhu (hardeeps) - Monday, 02 June 2003, 21:34 GMT

Uploaded dynamic_playlist4.diff which contains the following
changes:
- Directories are now sorted before being inserted. Sort order
is same as tree browser (alphabetical with directories before
mp3s in case of recursive insertion).
- Moved insert/append ahead of queue (personal preference).
- Updated to latest CVS.
Comment by Hardeep Sidhu (hardeeps) - Tuesday, 03 June 2003, 17:06 GMT

Uploaded dynamic_playlist5.diff which contains the following changes:
- Users can now insert a track or directory before play has started. Play will begin as soon as insert completes.

Note: This is the last feature I intend to include in this patch... only bug fixes remain.
Comment by Eric Linenberg (elinenbe) - Thursday, 05 June 2003, 12:03 GMT

please update for use with latest CVS.
Comment by Hardeep Sidhu (hardeeps) - Thursday, 05 June 2003, 16:15 GMT

Uploaded dynamic_playlist6.diff which updates to latest CVS.
Comment by Eric Linenberg (elinenbe) - Thursday, 05 June 2003, 22:34 GMT

please update for use with latest CVS.
Comment by Eric Linenberg (elinenbe) - Thursday, 05 June 2003, 22:38 GMT

please ignore my last comment. I hit refresh on my browser
after work.
Comment by Huw Smith (huwsy) - Friday, 06 June 2003, 18:44 GMT

pls submit to cvs. (in my oppinion its much better than the
current playlist/queue system.)
Comment by Hardeep Sidhu (hardeeps) - Saturday, 07 June 2003, 17:00 GMT

Uploaded dynamic_playlist7.diff which contains the following changes:
- Fixed a bug when deleting track from position 0.
- Fixed a bug that could result in a queued track incorrectly repeating if repeat-mode was all and playlist consisted primarily of queued tracks.
Comment by Hardeep Sidhu (hardeeps) - Wednesday, 11 June 2003, 05:32 GMT

Uploaded dynamic_playlist8.diff which contains the following changes:
- Added insert first/queue first options to ON+PLAY menu which will insert track/dir/m3u immediately after current playing track, no matter what other tracks have been inserted/queued.
- Added default name when saving playlist (/dynamic.m3u).
- Updated to latest CVS.
Comment by Hardeep Sidhu (hardeeps) - Sunday, 15 June 2003, 06:46 GMT

Uploaded dynamic_playlist9.diff which contains the following changes:
- Fixed a serious bug when inserting a playlist while a playlist is playing that could result in a system hang.
- Fixed a bug that could result in tracks being inserted in wrong place when using a combination of insert/insert first.
- Fixed a bug that was forcing a directory load even when save playlist was cancelled.
- Small change to how directories/playlists are inserted to avoid possible silent play at the end of a track.
- Changed resume logic to allow for comments at the beginning of the control file.
Comment by Hardeep Sidhu (hardeeps) - Sunday, 22 June 2003, 23:01 GMT

Uploaded dynamic_playlist10.diff which contains the
following changes:
- Fixed a bug with recursive directory insert where
directories beginning with "." were not being inserted
- Added version parameter to playlist control file for
future updates
- Misc. cleanup
Comment by Hardeep Sidhu (hardeeps) - Friday, 27 June 2003, 04:34 GMT

Uploaded dynamic_playlist11.diff which contains the
following changes:
- Updated to latest CVS
- Misc. cleanup
Comment by Hardeep Sidhu (hardeeps) - Monday, 30 June 2003, 04:00 GMT

Uploaded dynamic_playlist12.diff and
dynamic_playlist_simulator3.diff which updates to latest CVS.
Comment by Hardeep Sidhu (hardeeps) - Monday, 30 June 2003, 16:16 GMT

Uploaded dynamic_playlist13.diff which contains the
following changes:
- Created "Playlist" sub-menu off of ON+PLAY menu and moved
all playlist options there.
- Renamed "Append" and "Queue Append" to "Insert Last" and
"Queue Last"
- Minor update to latest CVS

Loading...