[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