summaryrefslogtreecommitdiffstats
path: root/src/qml/qmlplayerproxy.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qmlplayerproxy.h')
-rw-r--r--src/qml/qmlplayerproxy.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/qml/qmlplayerproxy.h b/src/qml/qmlplayerproxy.h
new file mode 100644
index 0000000000..13f72485eb
--- /dev/null
+++ b/src/qml/qmlplayerproxy.h
@@ -0,0 +1,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