diff options
Diffstat (limited to 'libs/taglib/taglib/tagunion.cpp')
-rw-r--r-- | libs/taglib/taglib/tagunion.cpp | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/libs/taglib/taglib/tagunion.cpp b/libs/taglib/taglib/tagunion.cpp deleted file mode 100644 index 08cc140833..0000000000 --- a/libs/taglib/taglib/tagunion.cpp +++ /dev/null @@ -1,185 +0,0 @@ -/*************************************************************************** - copyright : (C) 2002 - 2008 by Scott Wheeler - email : wheeler@kde.org - ***************************************************************************/ - -/*************************************************************************** - * This library is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Lesser General Public License version * - * 2.1 as published by the Free Software Foundation. * - * * - * This library is distributed in the hope that it will be useful, but * - * WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this library; if not, write to the Free Software * - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * - * USA * - * * - * Alternatively, this file is available under the Mozilla Public * - * License Version 1.1. You may obtain a copy of the License at * - * http://www.mozilla.org/MPL/ * - ***************************************************************************/ - -#include "tagunion.h" - -using namespace TagLib; - -#define stringUnion(method) \ - if(tag(0) && !tag(0)->method().isEmpty()) \ - return tag(0)->method(); \ - if(tag(1) && !tag(1)->method().isEmpty()) \ - return tag(1)->method(); \ - if(tag(2) && !tag(2)->method().isEmpty()) \ - return tag(2)->method(); \ - return String::null \ - -#define numberUnion(method) \ - if(tag(0) && tag(0)->method() > 0) \ - return tag(0)->method(); \ - if(tag(1) && tag(1)->method() > 0) \ - return tag(1)->method(); \ - if(tag(2) && tag(2)->method() > 0) \ - return tag(2)->method(); \ - return 0 - -#define setUnion(method, value) \ - if(tag(0)) \ - tag(0)->set##method(value); \ - if(tag(1)) \ - tag(1)->set##method(value); \ - if(tag(2)) \ - tag(2)->set##method(value); \ - -class TagUnion::TagUnionPrivate -{ -public: - TagUnionPrivate() : tags(3, static_cast<Tag *>(0)) - { - - } - - ~TagUnionPrivate() - { - delete tags[0]; - delete tags[1]; - delete tags[2]; - } - - std::vector<Tag *> tags; -}; - -TagUnion::TagUnion(Tag *first, Tag *second, Tag *third) -{ - d = new TagUnionPrivate; - - d->tags[0] = first; - d->tags[1] = second; - d->tags[2] = third; -} - -TagUnion::~TagUnion() -{ - delete d; -} - -Tag *TagUnion::operator[](int index) const -{ - return tag(index); -} - -Tag *TagUnion::tag(int index) const -{ - return d->tags[index]; -} - -void TagUnion::set(int index, Tag *tag) -{ - delete d->tags[index]; - d->tags[index] = tag; -} - -String TagUnion::title() const -{ - stringUnion(title); -} - -String TagUnion::artist() const -{ - stringUnion(artist); -} - -String TagUnion::album() const -{ - stringUnion(album); -} - -String TagUnion::comment() const -{ - stringUnion(comment); -} - -String TagUnion::genre() const -{ - stringUnion(genre); -} - -TagLib::uint TagUnion::year() const -{ - numberUnion(year); -} - -TagLib::uint TagUnion::track() const -{ - numberUnion(track); -} - -void TagUnion::setTitle(const String &s) -{ - setUnion(Title, s); -} - -void TagUnion::setArtist(const String &s) -{ - setUnion(Artist, s); -} - -void TagUnion::setAlbum(const String &s) -{ - setUnion(Album, s); -} - -void TagUnion::setComment(const String &s) -{ - setUnion(Comment, s); -} - -void TagUnion::setGenre(const String &s) -{ - setUnion(Genre, s); -} - -void TagUnion::setYear(uint i) -{ - setUnion(Year, i); -} - -void TagUnion::setTrack(uint i) -{ - setUnion(Track, i); -} - -bool TagUnion::isEmpty() const -{ - if(d->tags[0] && !d->tags[0]->isEmpty()) - return false; - if(d->tags[1] && !d->tags[1]->isEmpty()) - return false; - if(d->tags[2] && !d->tags[2]->isEmpty()) - return false; - - return true; -} - |