From e52b9eb36b09a44f7a7a459c49a82433ea8cba44 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Thu, 17 May 2012 14:01:32 +0100 Subject: [PATCH 1/3] MPRIS2: Fix type of mpris:trackid metadata It should be a DBus Object Path ('o'), not a String ('s'). --- src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp b/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp index 542ce34c9..5b8e6e23f 100644 --- a/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp @@ -254,7 +254,7 @@ MprisPlugin::metadata() const Tomahawk::result_ptr track = AudioEngine::instance()->currentTrack(); if ( track ) { - metadataMap.insert( "mpris:trackid", QString( "/track/" ) + track->id().replace( "-", "" ) ); + metadataMap.insert( "mpris:trackid", QVariant::fromValue(QDBusObjectPath(QString( "/track/" ) + track->id().replace( "-", "" ))) ); metadataMap.insert( "mpris:length", track->duration() ); metadataMap.insert( "xesam:album", track->album()->name() ); metadataMap.insert( "xesam:artist", QStringList( track->artist()->name() ) ); From 8b17657da13d576c557a2cfacc5089d16f3d4fdb Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Thu, 17 May 2012 14:11:58 +0100 Subject: [PATCH 2/3] MPRIS2: mpris:length should be in microseconds, not seconds --- src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp b/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp index 5b8e6e23f..2d8e193aa 100644 --- a/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp @@ -255,7 +255,7 @@ MprisPlugin::metadata() const if ( track ) { metadataMap.insert( "mpris:trackid", QVariant::fromValue(QDBusObjectPath(QString( "/track/" ) + track->id().replace( "-", "" ))) ); - metadataMap.insert( "mpris:length", track->duration() ); + metadataMap.insert( "mpris:length", static_cast(track->duration()) * 1000000 ); metadataMap.insert( "xesam:album", track->album()->name() ); metadataMap.insert( "xesam:artist", QStringList( track->artist()->name() ) ); metadataMap.insert( "xesam:title", track->track() ); From 1f0f4e21a842fd4fb58e3d72eb8845348c34c3b1 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Thu, 17 May 2012 14:16:36 +0100 Subject: [PATCH 3/3] MPRIS2: Fix volume property Volume is a double between 0 and 1, not a percentage between 0 and 100. --- src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp b/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp index 2d8e193aa..b4443bdf5 100644 --- a/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp +++ b/src/libtomahawk/infosystem/infoplugins/unix/MprisPlugin.cpp @@ -332,14 +332,14 @@ MprisPlugin::setShuffle( bool value ) double MprisPlugin::volume() const { - return AudioEngine::instance()->volume(); + return static_cast(AudioEngine::instance()->volume()) / 100.0; } void MprisPlugin::setVolume( double value ) { - AudioEngine::instance()->setVolume( value ); + AudioEngine::instance()->setVolume( value * 100 ); }