From acc4df92bc6475800cc1ff949064b287ccf6a32d Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Wed, 17 May 2017 17:43:18 +0300 Subject: [PATCH] fix invalid mpris parser MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In some cases it causes the error like: Error message "Интерфейс «(null)» для пути /org/mpris/MediaPlayer2 объекта не найден" (for example deadbeef was affected). Suggested patch should fix this issue and seems to be working with at least deadbeef and qmmp mpris engines. --- sources/extsysmonsources/playersource.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sources/extsysmonsources/playersource.cpp b/sources/extsysmonsources/playersource.cpp index b8a0ec1..17d90bc 100644 --- a/sources/extsysmonsources/playersource.cpp +++ b/sources/extsysmonsources/playersource.cpp @@ -73,8 +73,10 @@ QString PlayerSource::getAutoMpris() const { QDBusMessage listServices = QDBusConnection::sessionBus().interface()->call( QDBus::BlockWithGui, "ListNames"); - if (listServices.arguments().isEmpty()) + if (listServices.arguments().isEmpty()) { + qCWarning(LOG_ESS) << "Could not find any DBus service"; return ""; + } QStringList arguments = listServices.arguments().first().toStringList(); for (auto &arg : arguments) { @@ -353,7 +355,7 @@ QVariantHash PlayerSource::getPlayerMprisInfo(const QString &_mpris) const = QVariantList({"org.mpris.MediaPlayer2.Player", "Metadata"}); QDBusMessage request = QDBusMessage::createMethodCall( QString("org.mpris.MediaPlayer2.%1").arg(_mpris), - "/org/mpris/MediaPlayer2", "", "Get"); + "/org/mpris/MediaPlayer2", "org.freedesktop.DBus.Properties", "Get"); request.setArguments(args); QDBusMessage response = bus.call(request, QDBus::BlockWithGui, REQUEST_TIMEOUT);