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
28class MetaData;
29class Album;
30class Artist;
31
32class MetaDataList;
33class AlbumList;
34class ArtistList;
35
36namespace 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
The AlbumList class.
Definition: Album.h:100
The Album class.
Definition: Album.h:41
ArtistList.
Definition: Artist.h:77
The Artist class.
Definition: Artist.h:38
The MetaDataList class.
Definition: MetaDataList.h:37
The MetaData class.
Definition: MetaData.h:47
SortOrder
The SortOrder enum.
Definition: Sortorder.h:32