vlc | branch: master | Marcel Schnirring <[email protected]> | Sat Dec 
31 14:27:58 2016 +0100| [a5aee64cc830fabba54b845af13bfa5d78029cc0] | committer: 
Rémi Denis-Courmont

core: added sort by date (prepare for playlist fix)

Prepares the core to allow sorting playlists by date.
Further, sorting by artist now decides the order of equal entries via publish 
date and album.

Signed-off-by: Rémi Denis-Courmont <[email protected]>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a5aee64cc830fabba54b845af13bfa5d78029cc0
---

 include/vlc_playlist.h |  3 ++-
 src/playlist/sort.c    | 14 ++++++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h
index 7abb184..6d33d4f 100644
--- a/include/vlc_playlist.h
+++ b/include/vlc_playlist.h
@@ -180,7 +180,8 @@ struct playlist_t
     DEF( SORT_DESCRIPTION )\
     DEF( SORT_RATING )\
     DEF( SORT_URI )\
-    DEF( SORT_DISC_NUMBER )
+    DEF( SORT_DISC_NUMBER )\
+    DEF( SORT_DATE )
 
 #define DEF( s ) s,
 enum
diff --git a/src/playlist/sort.c b/src/playlist/sort.c
index 588bd35..f241167 100644
--- a/src/playlist/sort.c
+++ b/src/playlist/sort.c
@@ -226,12 +226,22 @@ SORTFN( SORT_ALBUM, first, second )
     return i_ret;
 }
 
+SORTFN( SORT_DATE, first, second )
+{
+    int i_ret = meta_sort( first, second, vlc_meta_Date, true );
+    /* Items came from the same date: compare the albums */
+    if( i_ret == 0 )
+        i_ret = proto_SORT_ALBUM( first, second );
+
+    return i_ret;
+}
+
 SORTFN( SORT_ARTIST, first, second )
 {
     int i_ret = meta_sort( first, second, vlc_meta_Artist, false );
-    /* Items came from the same artist: compare the albums */
+    /* Items came from the same artist: compare the dates */
     if( i_ret == 0 )
-        i_ret = proto_SORT_ALBUM( first, second );
+        i_ret = proto_SORT_DATE( first, second );
 
     return i_ret;
 }

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to