diff options
| author | 2009-01-04 23:57:17 +0000 | |
|---|---|---|
| committer | 2009-01-04 23:57:17 +0000 | |
| commit | ddcb116f6994c91433d3d3f2605806e905bccba6 (patch) | |
| tree | 2a249423450ebc592a5dc9a2616c8960690ef4d8 /src/modules | |
| parent | reworked patch for #335 (diff) | |
| download | KVIrc-ddcb116f6994c91433d3d3f2605806e905bccba6.tar.gz KVIrc-ddcb116f6994c91433d3d3f2605806e905bccba6.tar.bz2 KVIrc-ddcb116f6994c91433d3d3f2605806e905bccba6.zip | |
hopefully finally fixed #335 (avoiding the broken qt routine)
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2975 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/mediaplayer/mp_mprisinterface.cpp | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/modules/mediaplayer/mp_mprisinterface.cpp b/src/modules/mediaplayer/mp_mprisinterface.cpp index 665f73cf5..4cc385ec4 100644 --- a/src/modules/mediaplayer/mp_mprisinterface.cpp +++ b/src/modules/mediaplayer/mp_mprisinterface.cpp @@ -124,27 +124,6 @@ bool KviMPRISInterface::quit() MPRIS_SIMPLE_CALL("/", "Quit") } -KviMediaPlayerInterface::PlayerStatus KviMPRISInterface::status() -{ - QDBusInterface dbus_iface(m_szServiceName, "/Player", - "org.freedesktop.MediaPlayer", QDBusConnection::sessionBus()); - if (!dbus_iface.isValid()) - return KviMediaPlayerInterface::Unknown; - - QList<QVariant> argumentList; - QDBusReply<MPRISPlayerStatus> reply = dbus_iface.callWithArgumentList(QDBus::Block, "GetStatus", argumentList); - - if (!reply.isValid()) - return KviMediaPlayerInterface::Unknown; - - switch (reply.value().Play) { - case 0: return KviMediaPlayerInterface::Playing; - case 1: return KviMediaPlayerInterface::Paused; - case 2: return KviMediaPlayerInterface::Stopped; - default: return KviMediaPlayerInterface::Unknown; - } -} - #define MPRIS_CALL_METHOD(__method, __return_if_fail) \ QDBusInterface dbus_iface(m_szServiceName, "/Player", \ "org.freedesktop.MediaPlayer", QDBusConnection::sessionBus()); \ @@ -182,6 +161,25 @@ KviMediaPlayerInterface::PlayerStatus KviMPRISInterface::status() return __return_if_fail; \ } +KviMediaPlayerInterface::PlayerStatus KviMPRISInterface::status() +{ + MPRIS_CALL_METHOD("GetStatus", KviMediaPlayerInterface::Unknown) + + MPRISPlayerStatus status; + + if(reply.arguments().isEmpty()) + return KviMediaPlayerInterface::Unknown; + + status = qdbus_cast<MPRISPlayerStatus>(reply.arguments().first()); + + switch (status.Play) { + case 0: return KviMediaPlayerInterface::Playing; + case 1: return KviMediaPlayerInterface::Paused; + case 2: return KviMediaPlayerInterface::Stopped; + default: return KviMediaPlayerInterface::Unknown; + } +} + QString KviMPRISInterface::nowPlaying() { if (this->status() != KviMediaPlayerInterface::Playing) |
