From 6fba317ea99df30b6693e878d20726c8c3ca954a Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 6 Nov 2014 13:45:28 +0100 Subject: [PATCH] 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. --- src/libtomahawk/filemetadata/taghandlers/apetag.h | 4 ---- src/libtomahawk/filemetadata/taghandlers/asftag.h | 4 ---- src/libtomahawk/filemetadata/taghandlers/id3v1tag.h | 4 ---- src/libtomahawk/filemetadata/taghandlers/id3v2tag.h | 4 ---- src/libtomahawk/filemetadata/taghandlers/mp4tag.h | 4 ---- src/libtomahawk/filemetadata/taghandlers/oggtag.h | 4 ---- src/libtomahawk/filemetadata/taghandlers/tag.h | 6 +++--- 7 files changed, 3 insertions(+), 27 deletions(-) diff --git a/src/libtomahawk/filemetadata/taghandlers/apetag.h b/src/libtomahawk/filemetadata/taghandlers/apetag.h index 034f5822d..61be60f37 100644 --- a/src/libtomahawk/filemetadata/taghandlers/apetag.h +++ b/src/libtomahawk/filemetadata/taghandlers/apetag.h @@ -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; }; diff --git a/src/libtomahawk/filemetadata/taghandlers/asftag.h b/src/libtomahawk/filemetadata/taghandlers/asftag.h index cd80aa453..e573be96b 100644 --- a/src/libtomahawk/filemetadata/taghandlers/asftag.h +++ b/src/libtomahawk/filemetadata/taghandlers/asftag.h @@ -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; }; diff --git a/src/libtomahawk/filemetadata/taghandlers/id3v1tag.h b/src/libtomahawk/filemetadata/taghandlers/id3v1tag.h index 0a637378d..ac0e3e61a 100644 --- a/src/libtomahawk/filemetadata/taghandlers/id3v1tag.h +++ b/src/libtomahawk/filemetadata/taghandlers/id3v1tag.h @@ -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; } }; } diff --git a/src/libtomahawk/filemetadata/taghandlers/id3v2tag.h b/src/libtomahawk/filemetadata/taghandlers/id3v2tag.h index 7855ea1f7..cdf23dc8e 100644 --- a/src/libtomahawk/filemetadata/taghandlers/id3v2tag.h +++ b/src/libtomahawk/filemetadata/taghandlers/id3v2tag.h @@ -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; }; diff --git a/src/libtomahawk/filemetadata/taghandlers/mp4tag.h b/src/libtomahawk/filemetadata/taghandlers/mp4tag.h index dfc131eec..49ab43a08 100644 --- a/src/libtomahawk/filemetadata/taghandlers/mp4tag.h +++ b/src/libtomahawk/filemetadata/taghandlers/mp4tag.h @@ -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; }; diff --git a/src/libtomahawk/filemetadata/taghandlers/oggtag.h b/src/libtomahawk/filemetadata/taghandlers/oggtag.h index 3d66d08be..ed2728499 100644 --- a/src/libtomahawk/filemetadata/taghandlers/oggtag.h +++ b/src/libtomahawk/filemetadata/taghandlers/oggtag.h @@ -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; }; diff --git a/src/libtomahawk/filemetadata/taghandlers/tag.h b/src/libtomahawk/filemetadata/taghandlers/tag.h index fcc332c04..ee3025c9a 100644 --- a/src/libtomahawk/filemetadata/taghandlers/tag.h +++ b/src/libtomahawk/filemetadata/taghandlers/tag.h @@ -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: