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

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

SVN commit 938760 by alexmerry:

Backport r938759: don't crash when a player doesn't implement the MPRIS interface \
properly.



 M  +15 -5     mpris.cpp  


--- branches/KDE/4.2/kdebase/workspace/plasma/dataengines/nowplaying/playerinterface/mpris/mpris.cpp \
#938759:938760 @@ -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