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
