Monday, 5 August 2013

GSoC - Week 7

This week, I've been working on exposing Amarok's playlist management and dynamic playlists.
The playlist interface pretty much mirrors the internal Amarok hierarchy, exposing three components- the playlist manager, playlist-providers and the playlist objects themselves.
No synced playlists for now though.

The dynamic playlist is, however, a whole different beast. What I want for the dynamic playlists is to have a scriptable bias, besides exposing the existing biases. As far as the existing biases are concerned, I was able to expose them via a single class using some Qt meta-magic:

  const QString command = QString(
                                "function %1( a, b, c, d  )"
                                "{"
                                "    return new Bias( %2, a, b, c, d );"
                                "}"
                                 )
                                .arg( biasEnum.valueToKey( type ) )
                                .arg( type );
  engine->evaluate( command );

The dynamic playlists bits are still underway, but feel free to try the other stuff on my personal branch on quickgit.kde.org.

Yeah, no pretty pictures this week- very little of my current work directly affects the UI, though I could probably throw in some class diagrams or lolcats the next time round depending on popular demand [read weekly view-stats].

On a related note, I'm embarrassed to admit I didn't know about the QtScript debugger. It's pretty modular too, so the script console is about to go an overhaul ( which would probably render quite a bit of the existing code redundant ).

No comments:

Post a Comment