Rockbox

Tasklist

FS#4771 - ipod playlist plugin

Attached to Project: Rockbox
Opened by Kevin Mark (KevinMark) - Saturday, 04 March 2006, 20:52 GMT
Last edited by Jonathan Gordon (jdgordon) - Thursday, 02 August 2007, 12:40 GMT
Task Type Patches
Category
Status Closed
Assigned To No-one
Operating System iPod Nano
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

This plugin will read in the playlists from the iTunesDB file on an iPod. The user can then select a playlist to play. It writes a /.iPlay.m3u file and loads it into the current_playlist and starts playing.

plugin.[hc] have been modified to include playlist_create to support this plugin.
This task depends upon

Closed by  Jonathan Gordon (jdgordon)
Thursday, 02 August 2007, 12:40 GMT
Reason for closing:  Out of Date
Comment by Kevin Mark (KevinMark) - Sunday, 05 March 2006, 04:37 GMT
I was unable to build with the original MAX_TRACKS for the other iPods. Unfortunately, I had to lower it to 2000 tracks to get it to build. I will have to take another approach (probably a 2-pass approach through iTunesDB) to avoid hitting memory limits for iPods with more than 2000 tracks. Here's the new iPlay.c with the 2000 track limit. It has still only been tested on a 4 GB nano.
Comment by Dave Chapman (linuxstb) - Tuesday, 07 March 2006, 10:03 GMT
I've also been unable to build this for any target other than the Nano.

Using a statically declared buffer doesn't feel the right way to approach this. You can use the rb->plugin_get_audio_buffer() function which will return a pointer to the approximately 30MB audio buffer, and an integer telling you how big that buffer is. You could then either just load the itunesdb file into that buffer, and process it directly (without copying), or dynamically allocate your arrays in that buffer.

Comment by Kevin Mark (KevinMark) - Thursday, 16 March 2006, 19:19 GMT
Here's a new version using the audio buffer. It seems to build alright for other iPod targets but I have no way of testing it on those other targets.

You'll still need the plugin.c and plugin.h patches above to add the playlist_create() call to the api. What's the best way to get this added to the api, so I don't have to worry about it anymore? Should I open another patch?

Any comments greatly appreciated!
(application/octet-stream)    iPlay.c (16.5 KiB)
Comment by Josh Powell (Josh) - Thursday, 16 March 2006, 20:32 GMT
Seems to be working fine on my 30GB 5G. ~3000 song library.
Comment by Dave (david_dl) - Thursday, 23 March 2006, 07:25 GMT
This may be interesting (if you haven't already seen it)

http://libitunesdb.sourceforge.net/
Comment by Yorick (Xedonn) - Monday, 24 July 2006, 18:11 GMT
This is a very promising plugin, but sadly it doesn't seem too up to date anymore, the plugin.h patch returns several errors for me, I'm hoping there will be some more experienced programmer around to update it. Keep up the great work, don't let this fantastic plugin freeze!
Comment by Pradeep (pradeepmr) - Tuesday, 25 July 2006, 11:33 GMT
I have been using this plugin from some time. When i was checking the code changes,i could see that original idea was storing all the playlists in a directory iPlay, which is commented. Any issues with that approach ? Since i am using in that way without any problems.
Comment by Jonathan Singh (Jon_) - Monday, 07 August 2006, 07:04 GMT
Hello, i'm having some problem trying to patch that one patch the other one patches properly....

$ patch < iplay_plugin_h.patch
patching file plugin.h
Hunk #1 FAILED at 98.
Hunk #2 FAILED at 473.
2 out of 2 hunks FAILED -- saving rejects to file plugin.h.rej

Loading...