mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-09-09 05:30:52 +02:00
Compare commits
11 Commits
leo-extra-
...
tag-refact
Author | SHA1 | Date | |
---|---|---|---|
|
4045fb9228 | ||
|
5c5427e493 | ||
|
45a5fe09e7 | ||
|
9f62ca3548 | ||
|
1b11ebb9f5 | ||
|
80efa9a230 | ||
|
755bc7f456 | ||
|
7324de71b9 | ||
|
6fba317ea9 | ||
|
d38a6572fc | ||
|
2b2a770be0 |
@@ -36,6 +36,7 @@
|
||||
#include "Source.h"
|
||||
#include "Typedefs.h"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <QDialogButtonBox>
|
||||
@@ -89,8 +90,12 @@ MetadataEditor::writeMetadata( bool closeDlg )
|
||||
QFileInfo fi( QUrl( m_result->url() ).toLocalFile() );
|
||||
|
||||
bool changed = false;
|
||||
#ifdef COMPLEX_TAGLIB_FILENAME
|
||||
const wchar_t *encodedName = fi.canonicalFilePath().toStdWString().c_str();
|
||||
#else
|
||||
QByteArray fileName = QFile::encodeName( fi.canonicalFilePath() );
|
||||
const char *encodedName = fileName.constData();
|
||||
#endif
|
||||
|
||||
TagLib::FileRef f( encodedName );
|
||||
QSharedPointer<Tomahawk::Tag> tag( Tomahawk::Tag::fromFile( f ) );
|
||||
|
@@ -59,8 +59,8 @@ public:
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
}
|
||||
|
||||
bool isDeleting() { QMutexLocker locker( &m_deletingMutex ); return m_deleting; };
|
||||
void setIsDeleting() { QMutexLocker locker( &m_deletingMutex ); m_deleting = true; };
|
||||
bool isDeleting() { QMutexLocker locker( &m_deletingMutex ); return m_deleting; }
|
||||
void setIsDeleting() { QMutexLocker locker( &m_deletingMutex ); m_deleting = true; }
|
||||
|
||||
signals:
|
||||
void fileToScan( QFileInfo );
|
||||
|
@@ -23,14 +23,11 @@ namespace Tomahawk
|
||||
|
||||
APETag::APETag( TagLib::Tag *tag, TagLib::APE::Tag *apeTag )
|
||||
: Tag( tag )
|
||||
, m_apeTag( apeTag )
|
||||
{
|
||||
TagLib::APE::ItemListMap map = m_apeTag->itemListMap();
|
||||
for( TagLib::APE::ItemListMap::ConstIterator it = map.begin();
|
||||
it != map.end(); ++it )
|
||||
for( const auto& item : apeTag->itemListMap() )
|
||||
{
|
||||
TagLib::String key = it->first;
|
||||
QString val = TStringToQString( it->second.toString() );
|
||||
const TagLib::String& key = item.first;
|
||||
QString val = TStringToQString( item.second.toString() );
|
||||
//some of these are not defined in the item key according to the hydrogenaudio wiki
|
||||
//can I use them anyway? --Teo 11/2011
|
||||
if( key == TagLib::String( "Album Artist" ) )
|
||||
|
@@ -29,13 +29,6 @@ class DLLEXPORT APETag : public Tag
|
||||
{
|
||||
public:
|
||||
APETag( TagLib::Tag *, TagLib::APE::Tag * );
|
||||
|
||||
virtual QString albumArtist() const { return m_albumArtist; }
|
||||
virtual QString composer() const { return m_composer; }
|
||||
virtual unsigned int discNumber() const { return m_discNumber; }
|
||||
|
||||
private:
|
||||
TagLib::APE::Tag *m_apeTag;
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -23,14 +23,11 @@ namespace Tomahawk
|
||||
|
||||
ASFTag::ASFTag( TagLib::Tag *tag, TagLib::ASF::Tag *asfTag )
|
||||
: Tag( tag )
|
||||
, m_asfTag( asfTag )
|
||||
{
|
||||
TagLib::ASF::AttributeListMap map = m_asfTag->attributeListMap();
|
||||
for( TagLib::ASF::AttributeListMap::ConstIterator it = map.begin();
|
||||
it != map.end(); ++it )
|
||||
for ( const auto& item : asfTag->attributeListMap() )
|
||||
{
|
||||
TagLib::String key = it->first;
|
||||
QString val = TStringToQString( it->second[ 0 ].toString() );
|
||||
const TagLib::String& key = item.first;
|
||||
QString val = TStringToQString( item.second[ 0 ].toString() );
|
||||
if( key == TagLib::String( "WM/AlbumTitle" ) ) //album artist
|
||||
{
|
||||
m_albumArtist = val;
|
||||
|
@@ -29,13 +29,6 @@ class DLLEXPORT ASFTag : public Tag
|
||||
{
|
||||
public:
|
||||
ASFTag( TagLib::Tag *, TagLib::ASF::Tag * );
|
||||
|
||||
virtual QString albumArtist() const { return m_albumArtist; }
|
||||
virtual QString composer() const { return m_composer; }
|
||||
virtual unsigned int discNumber() const { return m_discNumber; }
|
||||
|
||||
private:
|
||||
TagLib::ASF::Tag *m_asfTag;
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -29,10 +29,6 @@ class DLLEXPORT ID3v1Tag : public Tag
|
||||
{
|
||||
public:
|
||||
ID3v1Tag( TagLib::Tag * );
|
||||
|
||||
virtual QString albumArtist() const { return QString(); }
|
||||
virtual QString composer() const { return QString(); }
|
||||
virtual unsigned int discNumber() const { return 0; }
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -24,9 +24,8 @@ namespace Tomahawk
|
||||
|
||||
ID3v2Tag::ID3v2Tag( TagLib::Tag *tag, TagLib::ID3v2::Tag *id3v2Tag )
|
||||
: Tag( tag )
|
||||
, m_id3v2Tag( id3v2Tag )
|
||||
{
|
||||
TagLib::ID3v2::FrameList fList = m_id3v2Tag->frameList();
|
||||
TagLib::ID3v2::FrameList fList = id3v2Tag->frameList();
|
||||
for( TagLib::ID3v2::FrameList::ConstIterator it = fList.begin();
|
||||
it != fList.end(); ++it )
|
||||
{
|
||||
|
@@ -29,13 +29,6 @@ class DLLEXPORT ID3v2Tag : public Tag
|
||||
{
|
||||
public:
|
||||
ID3v2Tag( TagLib::Tag *, TagLib::ID3v2::Tag * );
|
||||
|
||||
virtual QString albumArtist() const { return m_albumArtist; }
|
||||
virtual QString composer() const { return m_composer; }
|
||||
virtual unsigned int discNumber() const { return m_discNumber; }
|
||||
|
||||
private:
|
||||
TagLib::ID3v2::Tag *m_id3v2Tag;
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -30,10 +30,6 @@ class DLLEXPORT MP4Tag : public Tag
|
||||
public:
|
||||
MP4Tag( TagLib::Tag *, TagLib::MP4::Tag * );
|
||||
|
||||
virtual QString albumArtist() const { return m_albumArtist; }
|
||||
virtual QString composer() const { return m_composer; }
|
||||
virtual unsigned int discNumber() const { return m_discNumber; }
|
||||
|
||||
private:
|
||||
TagLib::MP4::Tag *m_mp4Tag;
|
||||
};
|
||||
|
@@ -30,10 +30,6 @@ class DLLEXPORT OggTag : public Tag
|
||||
public:
|
||||
OggTag( TagLib::Tag *, TagLib::Ogg::XiphComment * );
|
||||
|
||||
virtual QString albumArtist() const { return m_albumArtist; }
|
||||
virtual QString composer() const { return m_composer; }
|
||||
virtual unsigned int discNumber() const { return m_discNumber; }
|
||||
|
||||
private:
|
||||
TagLib::Ogg::XiphComment *m_xiphComment;
|
||||
};
|
||||
|
@@ -36,25 +36,25 @@ public:
|
||||
static QSharedPointer<Tag> fromFile( const TagLib::FileRef &f );
|
||||
|
||||
//getter-setters for common TagLib items
|
||||
virtual QString title() const { return TStringToQString( m_tag->title() ).trimmed(); }
|
||||
virtual QString artist() const { return TStringToQString( m_tag->artist() ).trimmed(); }
|
||||
virtual QString album() const { return TStringToQString( m_tag->album() ).trimmed(); }
|
||||
virtual QString comment() const { return TStringToQString( m_tag->comment() ).trimmed(); }
|
||||
virtual QString genre() const { return TStringToQString( m_tag->genre() ).trimmed(); }
|
||||
virtual unsigned int year() const { return m_tag->year(); }
|
||||
virtual unsigned int track() const { return m_tag->track(); }
|
||||
virtual void setTitle( const QString &s ) { m_tag->setTitle( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
virtual void setArtist( const QString &s ) { m_tag->setArtist( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
virtual void setAlbum( const QString &s ) { m_tag->setAlbum( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
virtual void setComment( const QString &s ) { m_tag->setComment( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
virtual void setGenre( const QString &s ) { m_tag->setGenre( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
virtual void setYear( unsigned int i ) { m_tag->setYear( i ); }
|
||||
virtual void setTrack( unsigned int i ) { m_tag->setTrack( i ); }
|
||||
virtual bool isEmpty() const { return m_tag->isEmpty(); }
|
||||
QString title() const { return TStringToQString( m_tag->title() ).trimmed(); }
|
||||
QString artist() const { return TStringToQString( m_tag->artist() ).trimmed(); }
|
||||
QString album() const { return TStringToQString( m_tag->album() ).trimmed(); }
|
||||
QString comment() const { return TStringToQString( m_tag->comment() ).trimmed(); }
|
||||
QString genre() const { return TStringToQString( m_tag->genre() ).trimmed(); }
|
||||
unsigned int year() const { return m_tag->year(); }
|
||||
unsigned int track() const { return m_tag->track(); }
|
||||
void setTitle( const QString &s ) { m_tag->setTitle( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
void setArtist( const QString &s ) { m_tag->setArtist( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
void setAlbum( const QString &s ) { m_tag->setAlbum( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
void setComment( const QString &s ) { m_tag->setComment( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
void setGenre( const QString &s ) { m_tag->setGenre( TagLib::String( s.toUtf8().data(), TagLib::String::UTF8 ) ); }
|
||||
void setYear( unsigned int i ) { m_tag->setYear( i ); }
|
||||
void setTrack( unsigned int i ) { m_tag->setTrack( i ); }
|
||||
bool isEmpty() const { return m_tag->isEmpty(); }
|
||||
|
||||
virtual QString albumArtist() const = 0;
|
||||
virtual QString composer() const = 0;
|
||||
virtual unsigned int discNumber() const = 0;
|
||||
QString albumArtist() const { return m_albumArtist; }
|
||||
QString composer() const { return m_composer; }
|
||||
unsigned int discNumber() const { return m_discNumber; }
|
||||
//TODO: add support for writing those 3 items with TagLib's addField/setField
|
||||
|
||||
protected:
|
||||
|
Reference in New Issue
Block a user