Miam-Player  0.8.0
A nice music player
mbrelease.h
Go to the documentation of this file.
1 #ifndef MBRELEASE_H
2 #define MBRELEASE_H
3 
4 #include <QMap>
5 #include <QObject>
6 
8 
9 namespace MusicBrainz {
10 
14 class MIAMACOUSTID_LIBRARY Artist : public QObject
15 {
16  Q_OBJECT
17 public:
18  QString id;
19  QString name;
20 
22  Artist(QObject *parent = nullptr) : QObject(parent) {}
23 
25  Artist(const Artist &other);
26 
28  virtual ~Artist() {}
29 
30  Artist& operator=(const Artist& other);
31 };
32 
33 inline bool operator==(Artist const &a1, Artist const &a2)
34 {
35  return a1.id.compare(a2.id) == 0;
36 }
37 
38 
42 class Track : public QObject
43 {
44  Q_OBJECT
45 public:
46  QString id;
47  int position;
48  int number;
49  int length;
50  QString title;
52 
54  Track(QObject *parent = nullptr) : QObject(parent), artist(new Artist(this)) {}
55 
57  Track(const Track &other);
58 
60  virtual ~Track() {}
61 
62  Track& operator=(const Track& other);
63 };
64 
65 inline bool operator==(Track const &d1, Track const &d2)
66 {
67  return d1.id.compare(d2.id) == 0;
68 }
69 
70 
74 class Release : public QObject
75 {
76  Q_OBJECT
77 public:
78  QString id;
79  QString releaseGroupId;
81  QString title;
82  QString country;
83  int year;
84  QString format;
85  int disc;
86  QMap<QString, Track> tracks;
88 
90  Release(QObject *parent = nullptr) : QObject(parent) {}
91 
93  virtual ~Release() {}
94 
96  Release(const Release &mbRelease);
97 
98  Release& operator=(const Release& other);
99 
100  Track track(const QString &filename) const;
101 };
102 
103 inline bool operator==(Release const &d1, Release const &d2)
104 {
105  return d1.id.compare(d2.id) == 0;
106 }
107 
108 }
109 
111 Q_DECLARE_METATYPE(MusicBrainz::Track)
112 Q_DECLARE_METATYPE(MusicBrainz::Artist)
113 Q_DECLARE_METATYPE(MusicBrainz::Release)
114 
115 #endif // MBRELEASE_H
Artist(QObject *parent=nullptr)
Definition: mbrelease.h:22
QString name
Definition: mbrelease.h:19
int year
Definition: mbrelease.h:83
int length
Definition: mbrelease.h:49
The Artist class.
Definition: mbrelease.h:14
QMap< QString, Track > tracks
Definition: mbrelease.h:86
#define MIAMACOUSTID_LIBRARY
Definition: miamacoustid_global.hpp:8
QString releaseGroupId
Definition: mbrelease.h:79
Artist * artist
Definition: mbrelease.h:51
int number
Definition: mbrelease.h:48
QString id
Definition: mbrelease.h:78
The Track class.
Definition: mbrelease.h:42
int disc
Definition: mbrelease.h:85
QString country
Definition: mbrelease.h:82
QString title
Definition: mbrelease.h:50
virtual ~Artist()
Definition: mbrelease.h:28
QString id
Definition: mbrelease.h:18
Definition: mbrelease.h:9
QString title
Definition: mbrelease.h:81
virtual ~Track()
Definition: mbrelease.h:60
Track(QObject *parent=nullptr)
Definition: mbrelease.h:54
Artist artist
Definition: mbrelease.h:87
QString id
Definition: mbrelease.h:46
QString format
Definition: mbrelease.h:84
int position
Definition: mbrelease.h:47
Release(QObject *parent=nullptr)
Definition: mbrelease.h:90
int trackCount
Definition: mbrelease.h:80
bool operator==(Artist const &a1, Artist const &a2)
Definition: mbrelease.h:33
virtual ~Release()
Definition: mbrelease.h:93
The Release class.
Definition: mbrelease.h:74