summaryrefslogtreecommitdiffstats
path: root/mediaplayer/MediaplayerMpdBackend.h
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-02-28 13:04:45 -0500
committerScott Murray <scott.murray@konsulko.com>2022-02-28 13:04:45 -0500
commit1332cc7d0a618ee88b4d19813340665332d406ca (patch)
treefe500276505160f5fd8ba8acb46334633ed0788a /mediaplayer/MediaplayerMpdBackend.h
parent0de8ac83e6a190d5fc124587d1f9f0a7f0198ce3 (diff)
Add Bluetooth media control supportmarlin_12.93.0marlin/12.93.012.93.0
Rework to expose Bluetooth AVRCP media control in the Bluetooth class, and use that support to implement a Bluetooth backend in the Mediaplayer class. This replaces the scheme that existed with the agl-service-mediaplayer binding where it abstracted away the Bluetooth support itself. However, care has been take to make sure that the exposed API to users of libqtappfw-mediaplayer has not changed. Bug-AGL: SPEC-4231 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I76b4f75621ce0121364eea3259b074bf3067ee88
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