Sayonara Player
src
Utils
MetaData
Album.h
1
/* Album.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
#ifndef HEADER_ALBUM_H_
22
#define HEADER_ALBUM_H_
23
24
#include "Utils/MetaData/LibraryItem.h"
25
#include "Utils/Library/Sortorder.h"
26
#include <QMetaType>
27
#include <deque>
28
29
class
QVariant;
30
class
QStringList;
31
class
Album
;
32
33
Q_DECLARE_METATYPE(
Album
)
34
35
39
class
Album
:
40
public
LibraryItem
41
{
42
PIMPL(
Album
)
43
44
public
:
45
Album
();
46
Album
(
const
Album
& other);
47
Album
(
Album
&& other) noexcept ;
48
49
Album
& operator=(
const
Album
& other);
50
Album
& operator=(
Album
&& other) noexcept;
51
bool
operator==(
const
Album
& other)
const
;
52
53
~
Album
();
54
55
AlbumId id()
const
;
56
void
setId(
const
AlbumId&
id
);
57
58
QString name()
const
;
59
void
setName(
const
QString& name);
60
61
QStringList artists()
const
;
62
void
setArtists(
const
QStringList& artists);
63
64
QString albumArtist()
const
;
65
void
setAlbumArtist(
const
QString& albumArtist);
66
67
QStringList pathHint()
const
;
68
void
setPathHint(
const
QStringList& paths);
69
70
Seconds durationSec()
const
;
71
void
setDurationSec(
const
Seconds& sec);
72
73
TrackNum songcount()
const
;
74
void
setSongcount(
const
TrackNum& songs);
75
76
Year year()
const
;
77
void
setYear(
const
Year& year);
78
79
Disc disccount()
const
;
80
81
Rating rating()
const
;
82
void
setRating(
const
Rating& rating);
83
84
bool
isSampler()
const
;
85
86
QList<Disc>
discnumbers()
const
;
87
void
setDiscnumbers(
const
QList<Disc>
& discnumbers);
88
89
static
QVariant toVariant(
const
Album
& album);
90
static
bool
fromVariant(
const
QVariant& v,
Album
& album);
91
QString toString()
const
;
92
};
93
94
99
class
AlbumList
:
public
std::deque<Album>
100
{
101
using
Parent=std::deque<Album>;
102
103
public
:
104
bool
contains(AlbumId albumId)
const
;
105
106
int
count()
const
;
107
AlbumList
& operator <<(
const
Album
& album);
108
Album
first()
const
;
109
Album
& operator[](
int
idx);
110
const
Album
& operator[](
int
idx)
const
;
111
112
AlbumList
& appendUnique(
const
AlbumList
& other);
113
AlbumList
& appendUnique(
AlbumList
&& other) noexcept;
114
115
void
sort(::
Library::SortOrder
so);
116
};
117
118
#endif //HEADER_ALBUM_H_
119
120
Album
The Album class.
Definition:
Album.h:41
QList
Definition:
EngineUtils.h:33
AlbumList
The AlbumList class.
Definition:
Album.h:100
LibraryItem
The LibraryItem class.
Definition:
LibraryItem.h:65
Library::SortOrder
SortOrder
The SortOrder enum.
Definition:
Sortorder.h:32
Generated on Wed Jan 6 2021 00:00:00 for Sayonara Player by
1.8.20