1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-11 00:24:12 +02:00

Implement albumArtist/composer/discNumber in a generic way.

This removes the need for specific, virtual implementations in each Tag
class. Increases performance, decreases code complexity.
This commit is contained in:
Uwe L. Korn
2014-11-06 13:45:28 +01:00
parent d38a6572fc
commit 6fba317ea9
7 changed files with 3 additions and 27 deletions

View File

@@ -30,10 +30,6 @@ class DLLEXPORT APETag : public Tag
public:
APETag( TagLib::Tag *, TagLib::APE::Tag * );
QString albumArtist() const override { return m_albumArtist; }
QString composer() const override { return m_composer; }
unsigned int discNumber() const override { return m_discNumber; }
private:
TagLib::APE::Tag *m_apeTag;
};

View File

@@ -30,10 +30,6 @@ class DLLEXPORT ASFTag : public Tag
public:
ASFTag( TagLib::Tag *, TagLib::ASF::Tag * );
QString albumArtist() const override { return m_albumArtist; }
QString composer() const override { return m_composer; }
unsigned int discNumber() const override { return m_discNumber; }
private:
TagLib::ASF::Tag *m_asfTag;
};

View File

@@ -29,10 +29,6 @@ class DLLEXPORT ID3v1Tag : public Tag
{
public:
ID3v1Tag( TagLib::Tag * );
QString albumArtist() const override { return QString(); }
QString composer() const override { return QString(); }
unsigned int discNumber() const override { return 0; }
};
}

View File

@@ -30,10 +30,6 @@ class DLLEXPORT ID3v2Tag : public Tag
public:
ID3v2Tag( TagLib::Tag *, TagLib::ID3v2::Tag * );
QString albumArtist() const override { return m_albumArtist; }
QString composer() const override { return m_composer; }
unsigned int discNumber() const override { return m_discNumber; }
private:
TagLib::ID3v2::Tag *m_id3v2Tag;
};

View File

@@ -30,10 +30,6 @@ class DLLEXPORT MP4Tag : public Tag
public:
MP4Tag( TagLib::Tag *, TagLib::MP4::Tag * );
QString albumArtist() const override { return m_albumArtist; }
QString composer() const override { return m_composer; }
unsigned int discNumber() const override { return m_discNumber; }
private:
TagLib::MP4::Tag *m_mp4Tag;
};

View File

@@ -30,10 +30,6 @@ class DLLEXPORT OggTag : public Tag
public:
OggTag( TagLib::Tag *, TagLib::Ogg::XiphComment * );
QString albumArtist() const override { return m_albumArtist; }
QString composer() const override { return m_composer; }
unsigned int discNumber() const override { return m_discNumber; }
private:
TagLib::Ogg::XiphComment *m_xiphComment;
};

View File

@@ -52,9 +52,9 @@ public:
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: