Commit Digest Progress Report

Nikolaj Hald Nielsen nhnfreespirit at gmail.com
Tue Nov 13 10:27:44 CET 2007


Ok, here goes:



Album grouping in the new playlist.

Earlier this year, Ian Monroe (
http://amarok.kde.org/blog/categories/4-eean ) did a lot of exciting
work on laying down the basics of a new kind of playlist for Amarok2
as a part of his Google Summer of Code project. The new playlist aims
at being much more graphical in its expression, and allow for greater
customizability of the info displayed for each track. Also, the old
column based playlist required a large amount of horizontal space, and
one of the goals o the new design was to make the playlist less wide.
One response we heard quite a bit in connection with the development
screenshots we posted, was the each track in the new playlist took up
too much vertical space. So in an attempt to overcome this problem in
many use cases. I experimented a bit with displaying an an album as a
cohesive group. This has the advantage that you only need to show the
information common to all the tracks in the album once, allowing each
track to take up much less space.

Upon posting the first, quote rough, preview screenshots of this, some
people were inspired to come up with graphical mockups of how this
could be made to look. One of these (
http://kde-look.org/content/show.php/My+amarok+playlist?content=66926
) was so good that we decided to try and use it as a base for the
general look of the new playlist.

Doing the actual code for keeping tracks of album groups when moving,
adding and deleting content took a few tries to get right, but the
result is turning out quite promising. I have created the following
video showing the current state. Keep in mind that this is still under
quite heavy development :-)

http://www.youtube.com/watch?v=969uv4nP3LM



Scriptable service:

One of my long running pet projects ( that has been rewritten a few
times by now ) is the scriptable service framework. As I started
working on a general framework for adding services to Amarok2 ( the
framework that currently hosts the Magnatune, Jamendo, Mp3tunes and
Shutcasts services ), I started playing with the idea of letting
people add their own services and content using scripts. This would
allow people to add content that we either do not have the time or
resources to add to Amarok ourselves, or content that is too "narrow"
to warrant the inclusion in the default installation. Or, and this is
the part that really excites me, great content and services that we
have simply not thought of!

The basic idea behind the scriptable services is that you run a script
to create a service. The newly created service then calls back the
script to add he root content elements when the service is activated.
Each element is created with the knowledge of what it needs to tell
the script to have it populate that node when it is expanded. In this
way, everything is lazy loaded as needed and the framework really does
not care how the script gets its content ( or even if it is a script
or a remote application ).

This is a bit abstract, and unfortunately, I do not have any
screenshots I can show currently. Also, as it is not something that is
in the "must have" list for Amarok2, it might not be included in the
first coming version. But it is definitely something I will continue
to play with.




Hope this will do

- Nikolaj


More information about the Amarok-promo mailing list