[GSoC Update] Playdar Integration, Week 9/10

Andy Coder andrew.coder at gmail.com
Sun Aug 1 00:27:59 CEST 2010


Still nothing new on the Playdar front, but the Playdar collection in
Amarok has fun new things!

Since the last update, I've implemented album cover support, changed
PlaydarCollectionFactory's behavior so that the collection appears
when Playdar can be reached, even after Amarok has otherwise been
running, and is removed if Playdar becomes unreachable, and made major
improvements to PlaydarCollection's TrackProvider functionality.

Watching for a new Playdar service, at this point, involves some
unfortunate polling, but since Playdar's core doesn't broadcast its
presence in any way yet, it's the only way I've found to do it.  I'd
feel better about this if a user could opt in/out of the Playdar
plugin.  Has there been any consideration of a configuration for
Collections like we currently have for internet services?  That seems
like it might be a good idea, especially with all the new Collections
being worked on this summer.

The new TrackProvider functionality I'm much happier with.  It takes
advantage of a playdar:// url scheme that encodes the artist/album
names and title of the track, so that PlaydarTracks which are saved in
a playlist can be resolved later, (though I've only tested this using
the default playlist, other playlists don't seem to work differently).
 There's a first run at this in my gitorious clone, but I've been
having trouble pushing to it, so it's not quite up-to-date.  In the
most recent revision, I changed the behavior of MetaProxy::Track, but
this doesn't seem to affect any other users of proxy tracks, since it
only changes the behavior when constructed with Track( url ) or Track(
url, false ), and all existing uses seem to be Track( url, true ).
The changes make MetaProxy::Track ask any new TrackProviders or
Collections for a track when the CollectionManager::instance() signals
that they're available, and stops it from immediately asking the
CollectionManager for a track, which causes a nasty cycle if the
CollectionManager provide a MetaProxy::Track, which in turns asks for
a new track immediately, (and so on).

 - Andy Coder


More information about the Amarok-devel mailing list