Sayonara Player
Loading...
Searching...
No Matches
Sortorder.h
1/* Sortorder.h */
2
3/* Copyright (C) 2011-2024 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#ifndef SORTORDER_H_
22#define SORTORDER_H_
23
24#include <variant>
25
26namespace Library
27{
28 enum class ArtistSortorder :
29 unsigned char
30 {
31 NoSorting = 0,
32 NameAsc,
33 NameDesc,
34 TrackcountAsc,
35 TrackcountDesc,
36 Last
37 };
38
39 enum class AlbumSortorder :
40 unsigned char
41 {
42 NoSorting = 0,
43 NameAsc,
44 NameDesc,
45 YearAsc,
46 YearDesc,
47 TracksAsc,
48 TracksDesc,
49 DurationAsc,
50 DurationDesc,
51 RatingAsc,
52 RatingDesc,
53 CreationDateAsc,
54 CreationDateDesc,
55 AlbumArtistAsc,
56 AlbumArtistDesc,
57 Last
58 };
59
60 enum class TrackSortorder :
61 unsigned char
62 {
63 NoSorting = 0,
64 TrackNumberAsc,
65 TrackNumberDesc,
66 TitleAsc,
67 TitleDesc,
68 ArtistAsc,
69 ArtistDesc,
70 AlbumAsc,
71 AlbumDesc,
72 AlbumArtistAsc,
73 AlbumArtistDesc,
74 YearAsc,
75 YearDesc,
76 LengthAsc,
77 LengthDesc,
78 BitrateAsc,
79 BitrateDesc,
80 SizeAsc,
81 SizeDesc,
82 DiscnumberAsc,
83 DiscnumberDesc,
84 RatingAsc,
85 RatingDesc,
86 FilenameAsc,
87 FilenameDesc,
88 FiletypeAsc,
89 FiletypeDesc,
90 DateModifiedAsc,
91 DateModifiedDesc,
92 DateAddedAsc,
93 DateAddedDesc,
94 GenresAsc,
95 GenresDesc,
96 Last
97 };
98
99 using VariableSortorder = std::variant<AlbumSortorder, ArtistSortorder, TrackSortorder>;
100}
101
102#endif