diff --git a/dataengines/mpris2/playercontainer.cpp b/dataengines/mpris2/playercontainer.cpp --- a/dataengines/mpris2/playercontainer.cpp +++ b/dataengines/mpris2/playercontainer.cpp @@ -113,6 +113,15 @@ Q_ASSERT(!busAddress.isEmpty()); Q_ASSERT(busAddress.startsWith(QLatin1String("org.mpris.MediaPlayer2."))); + // MPRIS specifies, that in case a player supports several instances, each additional + // instance after the first one is supposed to append ".instance" at the end of + // its dbus address. So instances of media players, which implement this correctly + // can have one D-Bus connection per instance and can be identified by their pids. + QDBusReply pidReply = QDBusConnection::sessionBus().interface()->servicePid(busAddress); + if (pidReply.isValid()) { + setData("InstancePid", pidReply.value()); + } + m_propsIface = new OrgFreedesktopDBusPropertiesInterface( busAddress, MPRIS2_PATH, QDBusConnection::sessionBus(), this);