Sayonara Player
MetaDataSorting.h
1 /* MetaDataSorting.h */
2 
3 /* Copyright (C) 2011-2020 Michael Lugmair (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  bool TracksByFiletypeAsc(const MetaData& md1, const MetaData& md2);
69  bool TracksByFiletypeDesc(const MetaData& md1, const MetaData& md2);
70 
71  bool TracksByRatingAsc(const MetaData& md1, const MetaData& md2);
72  bool TracksByRatingDesc(const MetaData& md1, const MetaData& md2);
73 
74  bool TracksByAddedDateAsc(const MetaData& md1, const MetaData& md2);
75  bool TracksByAddedDateDesc(const MetaData& md1, const MetaData& md2);
76  bool TracksByModifiedDateAsc(const MetaData& md1, const MetaData& md2);
77  bool TracksByModifiedDateDesc(const MetaData& md1, const MetaData& md2);
78 
79  bool ArtistByNameAsc(const Artist& artist1, const Artist& artist2);
80  bool ArtistByNameDesc(const Artist& artist1, const Artist& artist2);
81  bool ArtistByTrackCountAsc(const Artist& artist1, const Artist& artist2);
82  bool ArtistByTrackCountDesc(const Artist& artist1, const Artist& artist2);
83 
84  bool AlbumByArtistNameAsc(const Album& album1, const Album& album2);
85  bool AlbumByArtistNameDesc(const Album& album1, const Album& album2);
86  bool AlbumByNameAsc(const Album& album1, const Album& album2);
87  bool AlbumByNameDesc(const Album& album1, const Album& album2);
88  bool AlbumByYearAsc(const Album& album1, const Album& album2);
89  bool AlbumByYearDesc(const Album& album1, const Album& album2);
90  bool AlbumByDurationAsc(const Album& album1, const Album& album2);
91  bool AlbumByDurationDesc(const Album& album1, const Album& album2);
92  bool AlbumByTracksAsc(const Album& album1, const Album& album2);
93  bool AlbumByTracksDesc(const Album& album1, const Album& album2);
94  bool AlbumByRatingAsc(const Album& album1, const Album& album2);
95  bool AlbumByRatingDesc(const Album& album1, const Album& album2);
96 
97  void sortMetadata(MetaDataList& v_md, Library::SortOrder);
98  void sortAlbums(AlbumList& v_md, Library::SortOrder);
99  void sortArtists(ArtistList& v_md, Library::SortOrder);
100 
101  void setIgnoreArticle(bool b);
102 }
103 
104 
105 #endif // METADATASORTING_H
ArtistList
ArtistList.
Definition: Artist.h:77
MetaDataList
The MetaDataList class.
Definition: MetaDataList.h:37
Album
The Album class.
Definition: Album.h:41
Artist
The Artist class.
Definition: Artist.h:38
AlbumList
The AlbumList class.
Definition: Album.h:100
MetaData
The MetaData class.
Definition: MetaData.h:47
Library::SortOrder
SortOrder
The SortOrder enum.
Definition: Sortorder.h:32