diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-07-16 21:10:15 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-07-16 21:10:15 +0000 |
| commit | a13d96b5ee95affa653df4a3c4a1f11a98faf00c (patch) | |
| tree | 85ba74d5f5bb21f7611ed0786eba4233a91ed42b | |
| parent | e7be48896471d6c5aa29ca670f8770bffadfadfc (diff) | |
| download | qmmp-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
| -rw-r--r-- | src/plugins/General/mpris/player2object.cpp | 43 |
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"); |
