[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src/meta
From: Maximilian Kossick <maximilian.kossick () googlemail ! com>
Date: 2007-08-31 19:49:50
Message-ID: 1188589790.406802.20472.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 707022 by mkossick:
added field names to MetaUtility, and started implementing utility functions for \
mapping Track objects to QVariantMaps
M +59 -0 MetaUtility.cpp
M +40 -2 MetaUtility.h
--- trunk/extragear/multimedia/amarok/src/meta/MetaUtility.cpp #707021:707022
@@ -18,8 +18,67 @@
#include "MetaUtility.h"
+#include "meta.h"
+
#include <QChar>
+QVariantMap
+Meta::Field::mapFromTrack( const Meta::Track *track )
+{
+ //note: track does not support bpm, first_played yet
+ QVariantMap map;
+ if( !track )
+ return map;
+
+ if( track->name().isEmpty() )
+ map.insert( Meta::Field::TITLE, QVariant( track->prettyName() ) );
+ else
+ map.insert( Meta::Field::TITLE, QVariant( track->name() ) );
+ if( !track->artist()->name().isEmpty() )
+ map.insert( Meta::Field::ARTIST, QVariant( track->artist()->name() ) );
+ if( !track->album()->name().isEmpty() )
+ map.insert( Meta::Field::ALBUM, QVariant( track->album()->name() ) );
+ if( track->filesize() )
+ map.insert( Meta::Field::FILESIZE, QVariant( track->filesize() ) );
+ if( !track->genre()->name().isEmpty() )
+ map.insert( Meta::Field::GENRE, QVariant( track->genre()->name() ) );
+ if( !track->composer()->name().isEmpty() )
+ map.insert( Meta::Field::COMPOSER, QVariant( track->composer()->name() ) );
+ if( !track->year()->name().isEmpty() )
+ map.insert( Meta::Field::YEAR, QVariant( track->year()->name() ) );
+ if( !track->comment().isEmpty() )
+ map.insert( Meta::Field::COMMENT, QVariant( track->comment() ) );
+ if( track->trackNumber() )
+ map.insert( Meta::Field::TRACKNUMBER, QVariant( track->trackNumber() ) );
+ if( track->discNumber() )
+ map.insert( Meta::Field::DISCNUMBER, QVariant( track->discNumber() ) );
+ if( track->bitrate() )
+ map.insert( Meta::Field::BITRATE, QVariant( track->bitrate() ) );
+ if( track->length() )
+ map.insert( Meta::Field::LENGTH, QVariant( track->length() ) );
+ if( track->sampleRate() )
+ map.insert( Meta::Field::SAMPLERATE, QVariant( track->sampleRate() ) );
+ map.insert( Meta::Field::URL, QVariant( track->prettyUrl() ) );
+ map.insert( Meta::Field::RATING, QVariant( track->rating() ) );
+ map.insert( Meta::Field::SCORE, QVariant( track->score() ) );
+ map.insert( Meta::Field::PLAYCOUNT, QVariant( track->playCount() ) );
+ map.insert( Meta::Field::LAST_PLAYED, QVariant( track->lastPlayed() ) );
+ return map;
+}
+
+
+void
+Meta::Field::updateTrack( Meta::Track *track, const QVariantMap &metadata )
+{
+ if( !track )
+ return;
+
+ QString title = metadata.contains( Meta::Field::TITLE ) ?
+ metadata.value( Meta::Field::TITLE ).toString() : \
QString(); + track->setTitle( title );
+}
+
+
QString
Meta::msToPrettyTime( int ms )
{
--- trunk/extragear/multimedia/amarok/src/meta/MetaUtility.h #707021:707022
@@ -19,13 +19,51 @@
#ifndef AMAROK_METAUTILITY_H
#define AMAROK_METAUTILITY_H
+#include "amarok_export.h"
+
+#include <QMap>
#include <QString>
+#include <QVariant>
+#include <KSharedPtr>
+
namespace Meta
{
+ class Track;
- QString msToPrettyTime( int ms );
- QString secToPrettyTime( int seconds );
+ namespace Field
+ {
+ //actual string values are not final yet
+ static const QString ALBUM = "xesam:album";
+ static const QString ARTIST = "xesam:author";
+ static const QString BITRATE = "xesam:audioBitrate";
+ static const QString BPM = "xesam:audioBPM";
+ static const QString COMMENT = "xesam:comment";
+ static const QString COMPOSER = "xesam:composer";
+ static const QString DISCNUMBER = "xesam:cdNumber";
+ static const QString FILESIZE = "xesam:size";
+ static const QString GENRE = "xesam:genre";
+ static const QString LENGTH = "xesam:duration";
+ static const QString RATING = "xesam:rating";
+ static const QString SAMPLERATE = "xesam:audioSampleRate";
+ static const QString TITLE = "xesam:title";
+ static const QString TRACKNUMBER = "xesam:trackNumber";
+ static const QString URL = "xesam:url";
+ static const QString YEAR = "xesam:contentCreated";
+
+ static const QString SCORE = "amarok:score";
+ static const QString PLAYCOUNT = "amarok:playcount";
+ static const QString FIRST_PLAYED = "amarok:firstPlayed";
+ static const QString LAST_PLAYED = "amarok:lastPlayed";
+
+
+ AMAROK_EXPORT QVariantMap mapFromTrack( const Meta::Track *track );
+ AMAROK_EXPORT void updateTrack( Meta::Track *track, const QVariantMap \
&metadata ); + }
+
+
+ AMAROK_EXPORT QString msToPrettyTime( int ms );
+ AMAROK_EXPORT QString secToPrettyTime( int seconds );
}
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic