1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-04-19 07:22:32 +02:00

Merge pull request #162 from xhochy/feature/fdonotify-dbus-async-reply

Make D-Bus call in fdonotify asynchronous
This commit is contained in:
Jeff Mitchell 2013-02-22 07:20:19 -08:00
commit 7ef99d3b9a
2 changed files with 20 additions and 8 deletions

View File

@ -46,9 +46,8 @@
#include "utils/Logger.h"
#include "utils/TomahawkUtilsGui.h"
#include <QtDBus/QDBusConnection>
#include <QtDBus/QDBusMessage>
#include <QtGui/QImage>
#include <QDBusConnection>
#include <QImage>
namespace Tomahawk
{
@ -184,10 +183,19 @@ FdoNotifyPlugin::nowPlaying( const QVariant &input )
arguments << qint32( -1 ); //expire_timeout
message.setArguments( arguments );
const QDBusMessage &reply = QDBusConnection::sessionBus().call( message );
const QVariantList &list = reply.arguments();
if ( list.count() > 0 )
m_nowPlayingId = list.at( 0 ).toInt();
// Handle reply in a callback, so that this a non-blocking call
QDBusConnection::sessionBus().callWithCallback( message, this, SLOT( dbusPlayingReplyReceived( QDBusMessage ) ) );
}
/**
* Handle the DBus reply triggered by FdoNotifyPlugin::nowPlaying
*/
void
FdoNotifyPlugin::dbusPlayingReplyReceived( const QDBusMessage &reply )
{
const QVariantList &list = reply.arguments();
if ( list.count() > 0 )
m_nowPlayingId = list.at( 0 ).toInt();
}
} //ns InfoSystem

View File

@ -23,6 +23,8 @@
#include "infoplugins/InfoPluginDllMacro.h"
#include "infosystem/InfoSystem.h"
#include <QDBusMessage>
namespace Tomahawk
{
@ -41,7 +43,9 @@ public:
protected slots:
virtual void init() {}
virtual void dbusPlayingReplyReceived( const QDBusMessage &reply );
virtual void getInfo( Tomahawk::InfoSystem::InfoRequestData requestData )
{
Q_UNUSED( requestData );