[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/amarok/src/meta/file
From:       Maximilian Kossick <maximilian.kossick () googlemail ! com>
Date:       2007-08-31 19:49:55
Message-ID: 1188589795.659994.20835.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 707024 by mkossick:

make use of the constants in MetaUtility


 M  +87 -27    File.cpp  
 M  +77 -14    File_p.h  


--- trunk/extragear/multimedia/amarok/src/meta/file/File.cpp #707023:707024
@@ -21,6 +21,7 @@
 
 #include "debug.h"
 #include "meta.h"
+#include "MetaUtility.h"
 
 #include <QFile>
 #include <QPointer>
@@ -39,6 +40,9 @@
     d->metaInfo = KFileMetaInfo( url.path() );
     d->album = Meta::AlbumPtr( new MetaFile::FileAlbum( \
                QPointer<MetaFile::Track::Private>( d ) ) );
     d->artist = Meta::ArtistPtr( new MetaFile::FileArtist( \
QPointer<MetaFile::Track::Private>( d ) ) ); +    d->genre = Meta::GenrePtr( new \
MetaFile::FileGenre( QPointer<MetaFile::Track::Private>( d ) ) ); +    d->composer = \
Meta::ComposerPtr( new MetaFile::FileComposer( QPointer<MetaFile::Track::Private>( d \
) ) ); +    d->year = Meta::YearPtr( new MetaFile::FileYear( \
QPointer<MetaFile::Track::Private>( d ) ) );  }
 
 Track::~Track()
@@ -49,7 +53,7 @@
 QString
 Track::name() const
 {
-    KFileMetaInfoItem item = d->metaInfo.item( TITLE );
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::TITLE );
     if( item.isValid() )
         return item.value().toString();
     else
@@ -122,28 +126,25 @@
 Meta::GenrePtr
 Track::genre() const
 {
-    //TODO
-    return Meta::GenrePtr();
+    return d->genre;
 }
 
 Meta::ComposerPtr
 Track::composer() const
 {
-    //TODO
-    return Meta::ComposerPtr();
+    return d->composer;
 }
 
 Meta::YearPtr
 Track::year() const
 {
-    //TODO
-    return Meta::YearPtr();
+    return d->year;
 }
 
 void
 Track::setAlbum( const QString &newAlbum )
 {
-    d->metaInfo.item( ALBUM ).setValue( newAlbum );
+    d->metaInfo.item( Meta::Field::ALBUM ).setValue( newAlbum );
     if( !d->batchUpdate )
     {
         d->metaInfo.applyChanges();
@@ -154,7 +155,7 @@
 void
 Track::setArtist( const QString& newArtist )
 {
-    d->metaInfo.item( ARTIST ).setValue( newArtist );
+    d->metaInfo.item( Meta::Field::ARTIST ).setValue( newArtist );
     if( !d->batchUpdate )
     {
         d->metaInfo.applyChanges();
@@ -165,25 +166,40 @@
 void
 Track::setGenre( const QString& newGenre )
 {
-    Q_UNUSED( newGenre )
+    d->metaInfo.item( Meta::Field::GENRE ).setValue( newGenre );
+    if( !d->batchUpdate )
+    {
+        d->metaInfo.applyChanges();
+        notifyObservers();
+    }
 }
 
 void
 Track::setComposer( const QString& newComposer )
 {
-    Q_UNUSED( newComposer )
+    d->metaInfo.item( Meta::Field::COMPOSER ).setValue( newComposer );
+    if( !d->batchUpdate )
+    {
+        d->metaInfo.applyChanges();
+        notifyObservers();
+    }
 }
 
 void
 Track::setYear( const QString& newYear )
 {
-    Q_UNUSED( newYear )
+    d->metaInfo.item( Meta::Field::YEAR ).setValue( newYear );
+    if( !d->batchUpdate )
+    {
+        d->metaInfo.applyChanges();
+        notifyObservers();
+    }
 }
 
 void
 Track::setTitle( const QString &newTitle )
 {
-    d->metaInfo.item( TITLE ).setValue( newTitle );
+    d->metaInfo.item( Meta::Field::TITLE ).setValue( newTitle );
     if( !d->batchUpdate )
     {
         d->metaInfo.applyChanges();
@@ -194,13 +210,22 @@
 QString
 Track::comment() const
 {
-    return QString();
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::COMMENT );
+    if( item.isValid() )
+        return item.value().toString();
+    else
+        return QString();
 }
 
 void
 Track::setComment( const QString& newComment )
 {
-    Q_UNUSED( newComment )
+    d->metaInfo.item( Meta::Field::COMMENT ).setValue( newComment );
+    if( !d->batchUpdate )
+    {
+        d->metaInfo.applyChanges();
+        notifyObservers();
+    }
 }
 
 double
@@ -230,38 +255,59 @@
 int
 Track::trackNumber() const
 {
-    return 0;
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::TRACKNUMBER );
+    if( item.isValid() )
+        return item.value().toInt();
+    else
+        return 0;
 }
 
 void
 Track::setTrackNumber( int newTrackNumber )
 {
-    Q_UNUSED( newTrackNumber )
+    d->metaInfo.item( Meta::Field::TRACKNUMBER ).setValue( newTrackNumber );
+    if( !d->batchUpdate )
+    {
+        d->metaInfo.applyChanges();
+        notifyObservers();
+    }
 }
 
 int
 Track::discNumber() const
 {
-    return 0;
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::DISCNUMBER );
+    if( item.isValid() )
+        return item.value().toInt();
+    else
+        return 0;
 }
 
 void
 Track::setDiscNumber( int newDiscNumber )
 {
-    Q_UNUSED( newDiscNumber )
+    d->metaInfo.item( Meta::Field::DISCNUMBER ).setValue( newDiscNumber );
+    if( !d->batchUpdate )
+    {
+        d->metaInfo.applyChanges();
+        notifyObservers();
+    }
 }
 
 int
 Track::length() const
 {
-    //TODO
-    return 0;
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::LENGTH );
+    if( item.isValid() )
+        return item.value().toInt();
+    else
+        return 0;
 }
 
 int
 Track::filesize() const
 {
-    KFileMetaInfoItem item = d->metaInfo.item( FILESIZE );
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::FILESIZE );
     if( item.isValid() )
         return item.value().toInt();
     else
@@ -271,13 +317,21 @@
 int
 Track::sampleRate() const
 {
-    return 0;
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::SAMPLERATE );
+    if( item.isValid() )
+        return item.value().toInt();
+    else
+        return 0;
 }
 
 int
 Track::bitrate() const
 {
-    return 0;
+    KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::BITRATE );
+    if( item.isValid() )
+        return item.value().toInt();
+    else
+        return 0;
 }
 
 uint
@@ -301,19 +355,25 @@
 void
 Track::beginMetaDataUpdate()
 {
-    //not editable
+    d->batchUpdate = true;
 }
 
 void
 Track::endMetaDataUpdate()
 {
-    //not editable
+    d->metaInfo.applyChanges();
+    d->batchUpdate = false;
+    notifyObservers();
+
+
 }
 
 void
 Track::abortMetaDataUpdate()
 {
-    //not editable
+    //KFileMetaInfo does not have a method to reset the items
+    d->metaInfo = KFileMetaInfo( d->url.path() );
+    d->batchUpdate = false;
 }
 
 void
--- trunk/extragear/multimedia/amarok/src/meta/file/File_p.h #707023:707024
@@ -20,6 +20,7 @@
 #define AMAROK_META_FILE_P_H
 
 #include "meta.h"
+#include "MetaUtility.h"
 
 #include <QObject>
 #include <QPointer>
@@ -32,17 +33,6 @@
 namespace MetaFile
 {
 
-    static const QString ARTIST = "xesam:author";
-    static const QString ALBUM = "xesam:album";
-    static const QString TITLE = "xesam:title";
-    static const QString FILESIZE = "xesam:size";
-    static const QString GENRE = "xesam:genre";
-    static const QString COMPOSER = "xesam:composer";
-    static const QString YEAR = "xesam:contentCreated";
-    static const QString COMMENT = "xesam:comment";
-    static const QString TRACKNUMBER = "xesam:trackNumber";
-    static const QString DISCNUMBER = "xesam:cdNumber";
-
 //d-pointer implementation
 
 class Track::Private : public QObject
@@ -64,6 +54,9 @@
     bool batchUpdate;
     Meta::AlbumPtr album;
     Meta::ArtistPtr artist;
+    Meta::GenrePtr genre;
+    Meta::ComposerPtr composer;
+    Meta::YearPtr year;
 
 private:
     Track *track;
@@ -88,7 +81,7 @@
     {
         if( d )
         {
-            KFileMetaInfoItem item = d->metaInfo.item( MetaFile::ARTIST );
+            KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::ARTIST );
             if( item.isValid() )
                 return item.value().toString();
             else
@@ -138,7 +131,7 @@
     {
         if( d )
         {
-            KFileMetaInfoItem item = d->metaInfo.item( MetaFile::ALBUM );
+            KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::ALBUM );
             if( item.isValid() )
                 return item.value().toString();
             else
@@ -178,7 +171,7 @@
     {
         if( d )
         {
-            KFileMetaInfoItem item = d->metaInfo.item( MetaFile::GENRE );
+            KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::GENRE );
             if( item.isValid() )
                 return item.value().toString();
             else
@@ -196,7 +189,77 @@
     QPointer<MetaFile::Track::Private> const d;
 };
 
+class FileComposer : public Meta::Compoer
+{
+public:
+    FileComposer( MetaFile::Track::Private *dptr )
+        : Meta::Composer()
+        , d( dptr )
+    {}
 
+    Meta::TrackList tracks()
+    {
+        return Meta::TrackList();
+    }
+
+    QString name() const
+    {
+        if( d )
+        {
+            KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::COMPOSER );
+            if( item.isValid() )
+                return item.value().toString();
+            else
+                return QString();
+        }
+        else
+            return QString();
+    }
+
+    QString prettyName() const
+    {
+        return name();
+    }
+
+    QPointer<MetaFile::Track::Private> const d;
+};
+
+class FileYear : public Meta::Year
+{
+public:
+    FileYear( MetaFile::Track::Private *dptr )
+        : Meta::Year()
+        , d( dptr )
+    {}
+
+    Meta::TrackList tracks()
+    {
+        return Meta::TrackList();
+    }
+
+    QString name() const
+    {
+        if( d )
+        {
+            KFileMetaInfoItem item = d->metaInfo.item( Meta::Field::YEAR );
+            if( item.isValid() )
+                return item.value().toString();
+            else
+                return QString();
+        }
+        else
+            return QString();
+    }
+
+    QString prettyName() const
+    {
+        return name();
+    }
+
+    QPointer<MetaFile::Track::Private> const d;
+};
+
+
 }
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic