- Status Closed
- Percent Complete
- Task Type Patches
- Category
- Assigned To No-one
- Operating System iPod Nano
- Severity Low
- Priority Very Low
- Reported Version
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#4771 - ipod playlist plugin
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.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
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.
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.
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!
Seems to be working fine on my 30GB 5G. ~3000 song library.
This may be interesting (if you haven’t already seen it)
http://libitunesdb.sourceforge.net/
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!
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.
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