tag.h
Go to the documentation of this file.
/***************************************************************************
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., 51 Franklin Street, Fifth Floor, Boston, MA *
* 02110-1301 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/ *
***************************************************************************/
#ifndef TAGLIB_TAG_H
#define TAGLIB_TAG_H
#include "taglib_export.h"
#include "tstring.h"
#include "tlist.h"
#include "tvariant.h"
namespace TagLib {
class PropertyMap;
class TAGLIB_EXPORT Tag
{
public:
virtual ~Tag();
Tag(const Tag &) = delete;
Tag &operator=(const Tag &) = delete;
virtual PropertyMap properties() const;
virtual void removeUnsupportedProperties(const StringList& properties);
virtual PropertyMap setProperties(const PropertyMap &origProps);
virtual StringList complexPropertyKeys() const;
virtual List<VariantMap> complexProperties(const String &key) const;
virtual bool setComplexProperties(const String &key, const List<VariantMap> &value);
virtual String title() const = 0;
virtual String artist() const = 0;
virtual String album() const = 0;
virtual String comment() const = 0;
virtual String genre() const = 0;
virtual unsigned int year() const = 0;
virtual unsigned int track() const = 0;
virtual void setTitle(const String &s) = 0;
virtual void setArtist(const String &s) = 0;
virtual void setAlbum(const String &s) = 0;
virtual void setComment(const String &s) = 0;
virtual void setGenre(const String &s) = 0;
virtual void setYear(unsigned int i) = 0;
virtual void setTrack(unsigned int i) = 0;
virtual bool isEmpty() const;
static void duplicate(const Tag *source, Tag *target, bool overwrite = true);
static String joinTagValues(const StringList &values);
protected:
Tag();
private:
class TagPrivate;
TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
std::unique_ptr<TagPrivate> d;
};
} // namespace TagLib
#endif
TagLib::List
A generic, implicitly shared list.
Definition tlist.h:54
TagLib::PropertyMap
A map for format-independent <key,values> tag representations.
Definition tpropertymap.h:123
TagLib::StringList
A list of strings.
Definition tstringlist.h:44
TagLib::String
A wide string class suitable for unicode.
Definition tstring.h:83
TagLib::Tag::album
virtual String album() const =0
TagLib::Tag::isEmpty
virtual bool isEmpty() const
TagLib::Tag::comment
virtual String comment() const =0
TagLib::Tag::setYear
virtual void setYear(unsigned int i)=0
TagLib::Tag::joinTagValues
static String joinTagValues(const StringList &values)
TagLib::Tag::setArtist
virtual void setArtist(const String &s)=0
TagLib::Tag::title
virtual String title() const =0
TagLib::Tag::duplicate
static void duplicate(const Tag *source, Tag *target, bool overwrite=true)
TagLib::Tag::setTrack
virtual void setTrack(unsigned int i)=0
TagLib::Tag::operator=
Tag & operator=(const Tag &)=delete
TagLib::Tag::genre
virtual String genre() const =0
TagLib::Tag::year
virtual unsigned int year() const =0
TagLib::Tag::setComment
virtual void setComment(const String &s)=0
TagLib::Tag::track
virtual unsigned int track() const =0
TagLib::Tag::setTitle
virtual void setTitle(const String &s)=0
TagLib::Tag::complexProperties
virtual List< VariantMap > complexProperties(const String &key) const
TagLib::Tag::removeUnsupportedProperties
virtual void removeUnsupportedProperties(const StringList &properties)
TagLib::Tag::artist
virtual String artist() const =0
TagLib::Tag::~Tag
virtual ~Tag()
TagLib::Tag::properties
virtual PropertyMap properties() const
TagLib::Tag::setAlbum
virtual void setAlbum(const String &s)=0
TagLib::Tag::setComplexProperties
virtual bool setComplexProperties(const String &key, const List< VariantMap > &value)
TagLib::Tag::setGenre
virtual void setGenre(const String &s)=0
TagLib::Tag::complexPropertyKeys
virtual StringList complexPropertyKeys() const
TagLib::Tag::setProperties
virtual PropertyMap setProperties(const PropertyMap &origProps)
TagLib::Tag::Tag
Tag(const Tag &)=delete
TagLib::Tag::Tag
Tag()
TagLib
A namespace for all TagLib related classes and functions.
Definition apefile.h:41
taglib_export.h
TAGLIB_EXPORT
#define TAGLIB_EXPORT
Definition taglib_export.h:40
TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
#define TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
Definition taglib_export.h:55
tlist.h
tstring.h
tvariant.h