diff --git a/src/libtomahawk/audio/audioengine.cpp b/src/libtomahawk/audio/audioengine.cpp index 924d28da7..646390436 100644 --- a/src/libtomahawk/audio/audioengine.cpp +++ b/src/libtomahawk/audio/audioengine.cpp @@ -245,6 +245,7 @@ AudioEngine::seek( qint64 ms ) { tDebug( LOGVERBOSE ) << Q_FUNC_INFO << ms; m_mediaObject->seek( ms ); + emit seeked( ms ); } } diff --git a/src/libtomahawk/audio/audioengine.h b/src/libtomahawk/audio/audioengine.h index 685bd7b88..04876dd99 100644 --- a/src/libtomahawk/audio/audioengine.h +++ b/src/libtomahawk/audio/audioengine.h @@ -109,6 +109,8 @@ signals: void paused(); void resumed(); + void seeked( qint64 ms ); + void stateChanged( AudioState newState, AudioState oldState ); void volumeChanged( int volume /* in percent */ ); diff --git a/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp b/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp index 442ad490b..2d708c529 100644 --- a/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.cpp @@ -44,16 +44,20 @@ MprisPlugin::MprisPlugin() { qDebug() << Q_FUNC_INFO; + // init m_playbackStatus = "Stopped"; + // Types of pushInfo we care about m_supportedPushTypes << InfoNowPlaying << InfoNowPaused << InfoNowResumed << InfoNowStopped; + // DBus connection new MprisPluginRootAdaptor( this ); new MprisPluginPlayerAdaptor( this ); QDBusConnection dbus = QDBusConnection::sessionBus(); dbus.registerObject("/org/mpris/MediaPlayer2", this); dbus.registerService("org.mpris.MediaPlayer2.tomahawk"); + // Listen to volume changes connect( AudioEngine::instance(), SIGNAL( volumeChanged( int ) ), SLOT( onVolumeChanged( int ) ) ); @@ -548,6 +552,18 @@ MprisPlugin::onTrackCountChanged( unsigned int tracks ) } + void + MprisPlugin::onSeeked( qint64 ms ) + { + QDBusMessage signal = QDBusMessage::createSignal( + "/org/mpris/MediaPlayer2", + "org.mpris.MediaPlayer2.Player", + "Seeked"); + qlonglong us = ms*1000; + signal << us; + QDBusConnection::sessionBus().send(signal); + } + void MprisPlugin::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestData, QVariant output ) { diff --git a/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.h b/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.h index 860845e46..5f834e438 100644 --- a/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.h +++ b/src/libtomahawk/infosystem/infoplugins/unix/mprisplugin.h @@ -149,6 +149,7 @@ private slots: void onVolumeChanged( int volume ); void onPlaylistChanged( Tomahawk::PlaylistInterface* playlist); void onTrackCountChanged( unsigned int tracks ); + void onSeeked( qint64 ms ); void infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestData, QVariant output ); void infoSystemFinished( QString target );