Sayonara Player
MetaDataSorting.h
1 /* MetaDataSorting.h */
2 
3 /* Copyright (C) 2011-2017 Lucio Carreras
4  *
5  * This file is part of sayonara player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 
22 
23 #ifndef METADATASORTING_H
24 #define METADATASORTING_H
25 
26 #include "Utils/Library/Sortorder.h"
27 
28 class MetaData;
29 class Album;
30 class Artist;
31 
32 class MetaDataList;
33 class AlbumList;
34 class ArtistList;
35 
36 namespace MetaDataSorting
37 {
38  bool TracksByTrackNumAsc(const MetaData& md1, const MetaData& md2);
39  bool TracksByTrackNumDesc(const MetaData& md1, const MetaData& md2);
40 
41  bool TracksByDiscnumberAsc(const MetaData& md1, const MetaData& md2);
42  bool TracksByDiscnumberDesc(const MetaData& md1, const MetaData& md2);
43 
44  bool TracksByTitleAsc(const MetaData& md1, const MetaData& md2);
45  bool TracksByTitleDesc(const MetaData& md1, const MetaData& md2);
46 
47  bool TracksByAlbumAsc(const MetaData& md1, const MetaData& md2);
48  bool TracksByAlbumDesc(const MetaData& md1, const MetaData& md2);
49 
50  bool TracksByArtistAsc(const MetaData& md1, const MetaData& md2);
51  bool TracksByArtistDesc(const MetaData& md1, const MetaData& md2);
52 
53  bool TracksByAlbumArtistAsc(const MetaData& md1, const MetaData& md2);
54  bool TracksByAlbumArtistDesc(const MetaData& md1, const MetaData& md2);
55 
56  bool TracksByYearAsc(const MetaData& md1, const MetaData& md2);
57  bool TracksByYearDesc(const MetaData& md1, const MetaData& md2);
58 
59  bool TracksByLengthAsc(const MetaData& md1, const MetaData& md2);
60  bool TracksByLengthDesc(const MetaData& md1, const MetaData& md2);
61 
62  bool TracksByBitrateAsc(const MetaData& md1, const MetaData& md2);
63  bool TracksByBitrateDesc(const MetaData& md1, const MetaData& md2);
64 
65  bool TracksByFilesizeAsc(const MetaData& md1, const MetaData& md2);
66  bool TracksByFilesizeDesc(const MetaData& md1, const MetaData& md2);
67 
68 
69  bool TracksByRatingAsc(const MetaData& md1, const MetaData& md2);
70  bool TracksByRatingDesc(const MetaData& md1, const MetaData& md2);
71 
72  bool ArtistByNameAsc(const Artist& artist1, const Artist& artist2);
73  bool ArtistByNameDesc(const Artist& artist1, const Artist& artist2);
74  bool ArtistByTrackCountAsc(const Artist& artist1, const Artist& artist2);
75  bool ArtistByTrackCountDesc(const Artist& artist1, const Artist& artist2);
76 
77  bool AlbumByNameAsc(const Album& album1, const Album& album2);
78  bool AlbumByNameDesc(const Album& album1, const Album& album2);
79  bool AlbumByYearAsc(const Album& album1, const Album& album2);
80  bool AlbumByYearDesc(const Album& album1, const Album& album2);
81  bool AlbumByDurationAsc(const Album& album1, const Album& album2);
82  bool AlbumByDurationDesc(const Album& album1, const Album& album2);
83  bool AlbumByTracksAsc(const Album& album1, const Album& album2);
84  bool AlbumByTracksDesc(const Album& album1, const Album& album2);
85  bool AlbumByRatingAsc(const Album& album1, const Album& album2);
86  bool AlbumByRatingDesc(const Album& album1, const Album& album2);
87 
88  void sort_metadata(MetaDataList& v_md, Library::SortOrder);
89  void sort_albums(AlbumList& v_md, Library::SortOrder);
90  void sort_artists(ArtistList& v_md, Library::SortOrder);
91 }
92 
93 #endif // METADATASORTING_H
The MetaData class.
Definition: MetaData.h:48
The MetaDataList class.
Definition: MetaDataList.h:38
The AlbumList class.
Definition: Album.h:85
ArtistList.
Definition: Artist.h:69
The Album class.
Definition: Album.h:38
The Artist class.
Definition: Artist.h:35
Definition: MetaDataSorting.h:36