Framework for Playlists

Maximilian Kossick mkossick at gmx.de
Thu Aug 16 20:08:22 CEST 2007


On Thursday 16 August 2007, Bart Cerneels wrote:
> Hi all
>
> I've been pondering how to properly manage Meta::Playlists within
> Amarok and I'm conflicted.
>
> Most Playlists will contain Meta::Tracks that come from a Collection,
> and those Playlists should be provided by the Collection.
> When mediadevices are implemented as Collections (that is the plan
> right), they will deliver the Playlists populated with tracks in it's
> own Collection.
> Dynamic and smart Playlists will not be created by a Collection but
> will use Tracks from the available Collections.
> These points suggest that adding Playlists to the Collection Framework
> is a good idea. It seems to me there are technical hurdles though.
> Everything in a collection is tight together using Tracks, there is no
> way of going straight from Artist to Albums for instance, you have to
> use a Track. So unless we add a Meta::PlaylistList to every Track
> there is no easy way of querying for Playlists. There are other
> problems to, like PodcastEpisodes and Streams showing up in the
> CollectionBrowser unless they are specifically excluded.

Adding an albums() method to Meta::Artist is a good idea, especially because 
Meta::Album already has an albumArtist() method. Albums and Artists are a 
special case, I don't think it makes sense to add similar methods to Genre, 
Year and Composer because I can't see a real need for them...just use 
QueryMaker instead.

I don't think that the collection architecture is the right tool for podcasts 
and a stream directory like shoutcast (DAAP and stores like magnatune are 
different) You can write another framework which fits your need better than 
the current collection framework. You only have to be able to provide 
Meta::Track objects, because the engine can only play those.


> Another way might be a PlaylistManager where portable devices,
> internal functions, scripts, etc register Playlists they create. These
> Playlists don't have to be tight to a Collection at all (but they have
> to be able to use them) and so those Tracks won't pollute the
> CollectionBrowser. I guess creating a PlaylistProvider abstract base
> class is the way to do this, looks an awful lot like Collection
> though.

Well, as mentioned above, playlists (and podcasts) don't belong in the 
collection browser. It is only useful to put them there to get the 
development started more easily.

I can't really comment on the PlaylistManager, because I don't really 
understand what you want to do with it. I'm sorry that I can't be IRC a lot 
at the moment, but maybe you can explain it in more detail in another e-mail.

> I'm undecided about the best solution but I believe the #2 will be the
> easiest to implement.
>
> I'm sure you guys have ideas about this, let me hear them.
>
> Stecchino

Max
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/amarok-devel/attachments/20070816/5a3c59bc/attachment.pgp 


More information about the Amarok-devel mailing list