Acton Dev

Sharing projects and stuff

New website teaser :p

New website teaser :p

plus an awesome tune


Playing with processing

Playing with processing

Circular Media Player 0.9.7

Happy new year!! ๐Ÿ™‚

Circular Media Player got ported from Qt 4.8 to Qt 5.
This fixed the annoying “phonon error” when some tracks could not play. Now all tracks can play.

However, there are some issues now. First of all, the library support is broken for now, i have to rebuild the taglib (taglib is used to read the local mp3 tags when adding files in the library).
Secondly, when i compiled it using the microsoft compiler (msvc), in windows xp the application had no sound/playback. I fixed this by compiling the application with mingw instead of msvc (the release 0.9.7 is built with mingw) but now i just noticed that the application freezes of you try to play an old track (if the url of the mp3 in the history is no longer valid the application just freezes) – in the msvc build this was not a problem.

So i have to find a way to fix the playback in windows xp with the msvc build, or fix the invalid url issue with the mingw build…. or just abandon windows xp support :p … will see.

Circular Media Player 0.9.4

+New search modes: album, similar tracks (and quick access by right click->search-> album or similar tracks)

+multiple select on tables! so drag the down (or over an existing node)

+show loading dots when waiting for a network reply

+when hovering, draw a background over node text (improves readability)

+right click -> search on google (useful! ๐Ÿ™‚ )



Circular Media Player 0.9.3

+Shuffle mode (plays forever a random track that exists in the windowโ€ฆ getting related automatically gets disabled) (options->shuffle)
+moving nodes changes.. reorder nodes on mouse release
+new options under options->preferences
+new svg image handling (better for theming)


Qt C++ : order a QList of objects depending on the value returned of an object function

template <class Type, typename Func>
static QList<Type> orderList(QList<Type> list, Func func, bool ascending = true ){
    int count = list.count();
//buble sorting
    for(int i=count-2; i>=0; i--){
        for(int j=0; j<=i; j++){
                if( func( > func( && ascending ){
                    Type temp =;
                    list.replace(j+1, temp);
            else if( func( < func( ){
                Type temp =;
                list.replace(j+1, temp);
    return list;


and usage (inside tools.h i have my helper functions):

m_list = Tools::orderList(m_forwardsRelatedList, std::mem_fun(&Node::angleOffset));

Where m_list is a QList<Node*> and Node::angleOffset() (non static, public member function of class Node) returns a number.
So i now can sort the list, having the Node* objects sorted depending on the value returned by angleOffset() function !

Circular Media Player 0.9.2

#Fix: better handling vkontakte requests for source, now sending requests every 0.5 sec
+ animating circles movement
+ Shift+click a node to enqueue all the previous nodes
+ Help-> Shortcuts dialog

Circular Media Player 0.9.1

#FIX: fixed for no auto selecting source, eve though sources were founded ( right click -> sources had sources)

+right click -> search artist top track, search tag top tracks: click and in the tab online the search will be made

+testing: new app icon, help-> about dialog

Circular Media Player 0.9

+save/load playlist under File menu (plus auto save when closing, so when opening the application remembers its previous state)

+keyboard shortcuts:
space for play/pause
โ€œ, .โ€ for next/prev (buttons which when shifted are areย  < >)
โ€œ+ or =โ€ and โ€œ-โ€ for zooming in and out (a must for laptops with no mouse wheel strip on the touchpad)

+better behavior on sources: now right click track -> sources can list multiple local sources, plus a descriptive header is added

Circular Media Player 0.8.5

New feature: albums!!!
Enqueue all tracks (or just one) from the same album