aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/mpris
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-07-16 21:10:15 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-07-16 21:10:15 +0000
commita13d96b5ee95affa653df4a3c4a1f11a98faf00c (patch)
tree85ba74d5f5bb21f7611ed0786eba4233a91ed42b /src/plugins/General/mpris
parente7be48896471d6c5aa29ca670f8770bffadfadfc (diff)
downloadqmmp-a13d96b5ee95affa653df4a3c4a1f11a98faf00c.tar.gz
qmmp-a13d96b5ee95affa653df4a3c4a1f11a98faf00c.tar.bz2
qmmp-a13d96b5ee95affa653df4a3c4a1f11a98faf00c.zip
mpris: fixed playback startup detection (#1053)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9432 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/mpris')
-rw-r--r--src/plugins/General/mpris/player2object.cpp43
1 files changed, 10 insertions, 33 deletions
diff --git a/src/plugins/General/mpris/player2object.cpp b/src/plugins/General/mpris/player2object.cpp
index b26a2c9d5..666c9511e 100644
--- a/src/plugins/General/mpris/player2object.cpp
+++ b/src/plugins/General/mpris/player2object.cpp
@@ -283,42 +283,19 @@ void Player2Object::Stop()
void Player2Object::emitPropertiesChanged()
{
- QList<QByteArray> changedProps;
- if(m_props["CanGoNext"] != canGoNext())
- changedProps << "CanGoNext";
- if(m_props["CanGoPrevious"] != canGoPrevious())
- changedProps << "CanGoPrevious";
- if(m_props["CanPause"] != canPause())
- changedProps << "CanPause";
- if(m_props["CanPlay"] != canPlay())
- changedProps << "CanPlay";
- if(m_props["CanSeek"] != canSeek())
- changedProps << "CanSeek";
- if(m_props["LoopStatus"] != loopStatus())
- changedProps << "LoopStatus";
- if(m_props["MaximumRate"] != maximumRate())
- changedProps << "MaximumRate";
- if(m_props["MinimumRate"] != minimumRate())
- changedProps << "MinimumRate";
- if(m_props["PlaybackStatus"] != playbackStatus())
- changedProps << "PlaybackStatus";
- if(m_props["Rate"] != rate())
- changedProps << "Rate";
- if(m_props["Shuffle"] != shuffle())
- changedProps << "Shuffle";
- if(m_props["Volume"] != volume())
- changedProps << "Volume";
- if(m_props["Metadata"] != metadata())
- changedProps << "Metadata";
-
- if(changedProps.isEmpty())
- return;
-
+ QMap<QString, QVariant> prevProps = m_props;
syncProperties();
QVariantMap map;
- for(const QByteArray &name : qAsConst(changedProps))
- map.insert(name, m_props.value(name));
+ QMap<QString, QVariant>::const_iterator it;
+ for (it = m_props.constBegin(); it != m_props.constEnd(); ++it)
+ {
+ if(it.value() != prevProps.value(it.key()))
+ map.insert(it.key(), it.value());
+ }
+
+ if(map.isEmpty())
+ return;
QDBusMessage msg = QDBusMessage::createSignal("/org/mpris/MediaPlayer2",
"org.freedesktop.DBus.Properties", "PropertiesChanged");