blob: 13f72485eb4b83deb1dfa4d9a439eb529f88339d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#include <QColor>
#include <QObject>
#include <QPointer>
#include <QString>
#include <QUrl>
#include "mixer/basetrackplayer.h"
#include "track/track.h"
namespace mixxx {
namespace skin {
namespace qml {
class QmlPlayerProxy : public QObject {
Q_OBJECT
Q_PROPERTY(QString artist READ getArtist WRITE setArtist NOTIFY artistChanged)
Q_PROPERTY(QString title READ getTitle WRITE setTitle NOTIFY titleChanged)
Q_PROPERTY(QString album READ getAlbum WRITE setAlbum NOTIFY albumChanged)
Q_PROPERTY(QString albumArtist READ getAlbumArtist WRITE setAlbumArtist
NOTIFY albumArtistChanged)
Q_PROPERTY(QString genre READ getGenre STORED false NOTIFY genreChanged)
Q_PROPERTY(QString composer READ getComposer WRITE setComposer NOTIFY composerChanged)
Q_PROPERTY(QString grouping READ getGrouping WRITE setGrouping NOTIFY groupingChanged)
Q_PROPERTY(QString year READ getYear WRITE setYear NOTIFY yearChanged)
Q_PROPERTY(QString trackNumber READ getTrackNumber WRITE setTrackNumber
NOTIFY trackNumberChanged)
Q_PROPERTY(QString trackTotal READ getTrackTotal WRITE setTrackTotal NOTIFY trackTotalChanged)
Q_PROPERTY(QString comment READ getComment WRITE setComment NOTIFY commentChanged)
Q_PROPERTY(QString keyText READ getKeyText WRITE setKeyText NOTIFY keyTextChanged)
Q_PROPERTY(QColor color READ getColor WRITE setColor NOTIFY colorChanged)
Q_PROPERTY(QUrl coverArtUrl READ getCoverArtUrl NOTIFY coverArtUrlChanged)
Q_PROPERTY(QUrl trackLocationUrl READ getTrackLocationUrl NOTIFY trackLocationUrlChanged)
public:
explicit QmlPlayerProxy(BaseTrackPlayer* pTrackPlayer, QObject* parent = nullptr);
QString getTrack() const;
QString getTitle() const;
QString getArtist() const;
QString getAlbum() const;
QString getAlbumArtist() const;
QString getGenre() const;
QString getComposer() const;
QString getGrouping() const;
QString getYear() const;
QString getTrackNumber() const;
QString getTrackTotal() const;
QString getComment() const;
QString getKeyText() const;
QColor getColor() const;
QUrl getCoverArtUrl() const;
QUrl getTrackLocationUrl() const;
/// Needed for interacting with the raw track player object.
BaseTrackPlayer* internalTrackPlayer() const {
return m_pTrackPlayer;
}
Q_INVOKABLE void loadTrackFromLocation(const QString& trackLocation);
Q_INVOKABLE void loadTrackFromLocationUrl(const QUrl& trackLocationUrl);
public slots:
void slotTrackLoaded(TrackPointer pTrack);
void slotLoadingTrack(TrackPointer pNewTrack, TrackPointer pOldTrack);
void slotTrackChanged();
void setArtist(const QString& artist);
void setTitle(const QString& title);
void setAlbum(const QString& album);
void setAlbumArtist(const QString& albumArtist);
void setComposer(const QString& composer);
void setGrouping(const QString& grouping);
void setYear(const QString& year);
void setTrackNumber(const QString& trackNumber);
void setTrackTotal(const QString& trackTotal);
void setComment(const QString& comment);
void setKeyText(const QString& keyText);
void setColor(const QColor& color);
signals:
void trackLoading();
void trackLoaded();
void trackUnloaded();
void trackChanged();
void cloneFromGroup(const QString& group);
void albumChanged();
void titleChanged();
void artistChanged();
void albumArtistChanged();
void genreChanged();
void composerChanged();
void groupingChanged();
void yearChanged();
void trackNumberChanged();
void trackTotalChanged();
void commentChanged();
void keyTextChanged();
void colorChanged();
void coverArtUrlChanged();
void trackLocationUrlChanged();
void loadTrackFromLocationRequested(const QString& trackLocation);
private:
QPointer<BaseTrackPlayer> m_pTrackPlayer;
TrackPointer m_pCurrentTrack;
};
} // namespace qml
} // namespace skin
} // namespace mixxx
|