[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/dataengines/nowplaying/playerinterface/mpris
From:       Alex Merry <kde () randomguy3 ! me ! uk>
Date:       2009-03-12 22:12:23
Message-ID: 1236895943.971389.18726.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 938759 by alexmerry:

Don't crash when the player doesn't implement the MPRIS interface properly (I'm \
looking at you, Dragon Player).



 M  +15 -5     mpris.cpp  


--- trunk/KDE/kdebase/workspace/plasma/dataengines/nowplaying/playerinterface/mpris/mpris.cpp \
#938758:938759 @@ -97,9 +97,15 @@
         connect(m_player, SIGNAL(StatusChange(MprisDBusStatus)),
                 this,   SLOT(stateChanged(MprisDBusStatus)));
 
-        capsChanged(m_player->GetCaps());
-        trackChanged(m_player->GetMetadata());
-        stateChanged(m_player->GetStatus());
+        QDBusReply<int> caps = m_player->GetCaps();
+        if (caps.isValid())
+            capsChanged(caps);
+        QDBusReply<QVariantMap> metadata = m_player->GetMetadata();
+        if (metadata.isValid())
+            trackChanged(metadata);
+        QDBusReply<MprisDBusStatus> status = m_player->GetStatus();
+        if (status.isValid())
+            stateChanged(status);
     }
 }
 
@@ -193,7 +199,9 @@
 int Mpris::position()
 {
     if (m_player->isValid()) {
-        return m_player->PositionGet() / 1000;
+        QDBusReply<int> positionMs = m_player->PositionGet();
+        if (positionMs.isValid())
+            return positionMs / 1000;
     }
     return 0;
 }
@@ -201,7 +209,9 @@
 float Mpris::volume()
 {
     if (m_player->isValid()) {
-        return ((float)m_player->VolumeGet()) / 100;
+        QDBusReply<int> volumePercent = m_player->VolumeGet();
+        if (volumePercent.isValid())
+            return ((float)volumePercent) / 100;
     }
     return 0;
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic