From d0b0090e951668f9160632c5c30b9f1e0d0aa5a0 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 13 Dec 2014 19:27:07 +0100 Subject: do not listen for every d-bus owner change rather, just update the current mpris service when a signal comes in; seems much more efficient. --- daemon/musicmanager.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'daemon/musicmanager.h') diff --git a/daemon/musicmanager.h b/daemon/musicmanager.h index 88c46c3..89e5fd7 100644 --- a/daemon/musicmanager.h +++ b/daemon/musicmanager.h @@ -3,6 +3,7 @@ #include #include +#include #include "watchconnector.h" class MusicManager : public QObject, protected QDBusContext @@ -14,22 +15,22 @@ public: explicit MusicManager(WatchConnector *watch, QObject *parent = 0); private: - void musicControl(WatchConnector::MusicControl operation); void switchToService(const QString &service); - void setMprisMetadata(const QVariantMap &data); + void fetchMetadataFromService(); + void sendCurrentMprisMetadata(); + void callMprisMethod(const QString &method); private slots: - void handleServiceRegistered(const QString &service); - void handleServiceUnregistered(const QString &service); - void handleServiceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner); + void handleMusicControl(WatchConnector::MusicControl operation); + void handleMprisServiceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner); void handleMprisPropertiesChanged(const QString &interface, const QMap &changed, const QStringList &invalidated); void handleWatchConnected(); private: WatchConnector *watch; - - QVariantMap _curMetadata; + QDBusServiceWatcher *_watcher; QString _curService; + QVariantMap _curMetadata; }; #endif // MUSICMANAGER_H -- cgit v1.2.3