1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-25 02:09:48 +01:00

Add basic metadata MPRIS info.

This commit is contained in:
Alejandro Wainzinger 2011-08-11 17:49:30 -07:00
parent 49dcd70dd2
commit 5f59b30a8c
2 changed files with 25 additions and 6 deletions

View File

@ -21,6 +21,7 @@
#include "audio/audioengine.h"
#include "infosystem/infosystemworker.h"
#include "album.h"
#include "artist.h"
#include "result.h"
#include "tomahawksettings.h"
@ -149,7 +150,7 @@ MprisPlugin::canPlay() const
bool
MprisPlugin::canSeek() const
{
return true;
return false;
}
QString
@ -201,7 +202,18 @@ MprisPlugin::maximumRate() const
QVariantMap
MprisPlugin::metadata() const
{
return QVariantMap();
QVariantMap metadataMap;
Tomahawk::result_ptr track = AudioEngine::instance()->currentTrack();
if( track )
{
metadataMap.insert( "mpris:trackid", track->id() );
metadataMap.insert( "mpris:length", track->duration() );
metadataMap.insert( "xesam:album", track->album()->name() );
metadataMap.insert( "xesam:artist", track->artist()->name() );
metadataMap.insert( "xesam:title", track->track() );
}
return metadataMap;
}
double
@ -278,9 +290,12 @@ MprisPlugin::Next()
}
void
MprisPlugin::OpenUri(const QString &Uri)
MprisPlugin::OpenUri( const QString &Uri )
{
// TODO
if( Uri.contains( "tomahawk://" ) )
GlobalActionManager::instance()->parseTomahawkLink( Uri );
else if( Uri.contains( "spotify:" ) )
GlobalActionManager::instance()->openSpotifyLink( Uri );
}
void
@ -310,7 +325,10 @@ MprisPlugin::Previous()
void
MprisPlugin::Seek( qlonglong Offset )
{
qDebug() << Q_FUNC_INFO;
/*
qlonglong seekTime = position() + Offset;
qDebug() << "seekTime: " << seekTime;
if( seekTime < 0 )
AudioEngine::instance()->seek( 0 );
else if( seekTime > AudioEngine::instance()->currentTrackTotalTime() )
@ -318,8 +336,7 @@ MprisPlugin::Seek( qlonglong Offset )
// seekTime is in microseconds, but we work internally in milliseconds
else
AudioEngine::instance()->seek( (qint64) ( seekTime / 1000 ) );
*/
}
void

View File

@ -185,12 +185,14 @@ void MprisPluginPlayerAdaptor::Previous()
void MprisPluginPlayerAdaptor::Seek(qlonglong Offset)
{
qDebug() << Q_FUNC_INFO;
// handle method call org.mpris.MediaPlayer2.Player.Seek
QMetaObject::invokeMethod(parent(), "Seek", Q_ARG(qlonglong, Offset));
}
void MprisPluginPlayerAdaptor::SetPosition(const QDBusObjectPath &TrackId, qlonglong Position)
{
qDebug() << Q_FUNC_INFO;
// handle method call org.mpris.MediaPlayer2.Player.SetPosition
QMetaObject::invokeMethod(parent(), "SetPosition", Q_ARG(QDBusObjectPath, TrackId), Q_ARG(qlonglong, Position));
}