]> git.sesse.net Git - vlc/blobdiff - modules/control/rc.c
Fix sort by artist
[vlc] / modules / control / rc.c
index 832c1ae7a762012d4212aac1d85132a3a1e0b979..200ad4957948a5f62dabc985ae10827de173d86e 100644 (file)
@@ -360,6 +360,8 @@ static void RegisterCallbacks( intf_thread_t *p_intf )
     var_AddCallback( p_intf, "add", Playlist, NULL );
     var_Create( p_intf, "playlist", VLC_VAR_VOID | VLC_VAR_ISCOMMAND );
     var_AddCallback( p_intf, "playlist", Playlist, NULL );
+    var_Create( p_intf, "sort", VLC_VAR_VOID | VLC_VAR_ISCOMMAND );
+    var_AddCallback( p_intf, "sort", Playlist, NULL );
     var_Create( p_intf, "play", VLC_VAR_VOID | VLC_VAR_ISCOMMAND );
     var_AddCallback( p_intf, "play", Playlist, NULL );
     var_Create( p_intf, "stop", VLC_VAR_VOID | VLC_VAR_ISCOMMAND );
@@ -1280,9 +1282,16 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd,
     }
     else if( !strcmp( psz_cmd, "playlist" ) )
     {
+        msg_Dbg( p_playlist, "Dumping category" );
         playlist_NodeDump( p_playlist, p_playlist->p_root_category, 0 );
+        msg_Dbg( p_playlist, "Dumping Onelevel" );
         playlist_NodeDump( p_playlist, p_playlist->p_root_onelevel, 0 );
     }
+    else if( !strcmp( psz_cmd, "sort" ))
+    {
+        playlist_RecursiveNodeSort( p_playlist, p_playlist->p_root_onelevel, 
+                                    SORT_ARTIST, ORDER_NORMAL );
+    }
     else if( !strcmp( psz_cmd, "status" ) )
     {
         if( p_playlist->p_input )