As promised, here is once again a small update of what I have been spending the last week of Amarok hacking doing.
This week I have generally been diving a bit deeper into the Amarok and even kdelibs code to debug some pretty serious issues. The KIO system is in a bit better shape than it was at the beginning of the week, thanks to KDE dev. Thiago, and as I use this intensively for the services, Magnatune not least of which, this is really good news.
Other cool stuff that has happened over the week:
- SVG artwork. Our new artist Lee really came through for us this week with a load of new scalable vector graphics (SVG's) that has been integrated into Amarok. I worked on the main tool bar and the new service list backgrounds while
Mark pulled some cool hacks with manipulating SVG's in real time to achieve a nice smooth animation of the new sidebar buttons. This new artwork can be seen in the screenshots below.
- SVG caching. It turns out that when you use as many SVG images as we do now, propper caching becomes very important. So I spent the better part of a day caching everything I could get my hands on, to great effect. Performance is much better in most cases now. We still do have some issues with the cache emptying itself every once in a while, causing lag as everything needs to be re-rendered, but this concern is shared with the plasma crew, so hopefully a solution is in the works.
- Playlist performance. Our new playlist had a nasty habit of recursively redrawing itself causing 100% constant cpu load as soon as any tracks were added to it. This was fixed.
- Service Framework / mp3tunes service. As the KIO issues had been keeping me from doing more real work on the dynamic fetching aspects of the service framework, I figured now would be a good time. The results of this is that the service framework is now much more usable for writing almost any kind of service imaginable. As a proof of concept I finished up the mp3tunes oboe locker service that I have had lying around for a while, and actually got it working perfectly in the space of just a few hours. Browsing and streaming from the locker inside Amarok is cooool!
- Playlist loader. One piece of code that had not yet been ported was the old playlist loader. This is needed in order to load any kind of playlist file as well as listen to many streaming radio stations. I have spent all day today ripping the old one apart and building a new, hopefully much simpler version. The new one currently only supports local and remote m3u and pls files, but at least it is working!

This was also the last ingredient needed to make listening to shoutcast stations possible in Amarok2!
I guess these are the highlights. And now, onto the moment you have all been waiting for, screenies!!!
Over and out!
It’s good to be subscribed to lots of different mailing lists, just for the absolutely wonderful pockets of air which exist around all the traffic. On the kde-imaging mailing list there was a thread about image resizing algorithms. My interest was piked and it paid off - the video explains a dynamic image resizing technique by removing paths of least enery. This is probably done by some complicated Fourier transform, and the results are phenomenal. Resize an image by removing redundant parts of the image, not by making everything smaller. Furthermore, this technique can be also used to remove particular elements of an image by applying negative energy weights to an area. Fascinating!