summaryrefslogtreecommitdiffstats
path: root/mediaplayer/MediaplayerMpdBackend.h
diff options
context:
space:
mode:
Diffstat (limited to 'mediaplayer/MediaplayerMpdBackend.h')
-rw-r--r--mediaplayer/MediaplayerMpdBackend.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/mediaplayer/MediaplayerMpdBackend.h b/mediaplayer/MediaplayerMpdBackend.h
index b181fda..4b8d74c 100644
--- a/mediaplayer/MediaplayerMpdBackend.h
+++ b/mediaplayer/MediaplayerMpdBackend.h
@@ -23,9 +23,10 @@
#include <QTimer>
#include <QMutex>
#include <mpd/client.h>
+#include "MediaplayerBackend.h"
#include "mediaplayer.h"
-class MediaplayerMpdBackend : public QObject
+class MediaplayerMpdBackend : public MediaplayerBackend
{
Q_OBJECT
@@ -33,6 +34,9 @@ public:
explicit MediaplayerMpdBackend(Mediaplayer *player, QQmlContext *context, QObject * parent = Q_NULLPTR);
virtual ~MediaplayerMpdBackend();
+ void start();
+ void refresh_metadata();
+
void play();
void pause();
void previous();
@@ -45,7 +49,15 @@ public:
void loop(QString);
signals:
- void start(void);
+ void startHandler(void);
+ void metadataUpdate(QVariantMap metadata);
+ void positionMetadataUpdate(QVariantMap metadata);
+
+private slots:
+ void connectionKeepaliveTimeout(void);
+ void songPositionTimeout(void);
+ void updatePlaybackState(int queue_pos, int song_pos_ms, bool state);
+ void updateMetadata(QVariantMap metadata);
private:
Mediaplayer *m_player;
@@ -63,10 +75,8 @@ private:
QThread m_handlerThread;
-private slots:
- void connectionKeepaliveTimeout(void);
- void songPositionTimeout(void);
- void updatePlaybackState(int queue_pos, int song_pos_ms, bool state);
+ // Cached metadata to simplify refresh requests (e.g. on source switch)
+ QVariantMap m_cached_metadata;
};
#endif // MEDIAPLAYER_MPD_BACKEND_H