TagLib::Tag Class Referenceabstract

A simple, generic interface to common audio metadata fields. More...

`#include <tag.h>`

Inheritance diagram for TagLib::Tag:
[legend]

## Public Member Functions

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 Public Member Functions

static void | duplicate (const Tag *source, Tag *target, bool overwrite=true)
static String | joinTagValues (const StringList &values)

## Protected Member Functions

| Tag ()

## Detailed Description

A simple, generic interface to common audio metadata fields.

This is an attempt to abstract away the difference in the metadata formats of various audio codecs and tagging schemes. As such it is generally a subset of what is available in the specific formats but should be suitable for most applications. This is meant to compliment the generic APIs found in TagLib::AudioProperties, TagLib::File and TagLib::FileRef.

## Constructor & Destructor Documentation

## ~Tag()

virtual TagLib::Tag::~Tag | ( |  | ) |

virtual

Destroys this Tag instance.

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## Tag() [1/2]

TagLib::Tag::Tag | ( | const Tag & |  | ) |

delete

References Tag().

Referenced by duplicate(), operator=(), and Tag().

## Tag() [2/2]

TagLib::Tag::Tag | ( |  | ) |

protected

Construct a Tag. This is protected since tags should only be instantiated through subclasses.

References TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE.

## Member Function Documentation

## album()

virtual String TagLib::Tag::album | ( |  | ) | const

pure virtual

Returns the album name; if no album name is present in the tag an empty string will be returned.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## artist()

virtual String TagLib::Tag::artist | ( |  | ) | const

pure virtual

Returns the artist name; if no artist name is present in the tag an empty string will be returned.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## comment()

virtual String TagLib::Tag::comment | ( |  | ) | const

pure virtual

Returns the track comment; if no comment is present in the tag an empty string will be returned.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## complexProperties()

virtual List< VariantMap > TagLib::Tag::complexProperties | ( | const String & | key | ) | const

virtual

Get the complex properties for a given key. In order to be flexible for different metadata formats, the properties are represented as variant maps. Despite this dynamic nature, some degree of standardization should be achieved between formats:

- PICTURE
  - data: ByteVector with picture data
  - description: String with description
  - pictureType: String with type as specified for ID3v2, e.g. "Front Cover", "Back Cover", "Band"
  - mimeType: String with image format, e.g. "image/jpeg"
  - optionally more information found in the tag, such as "width", "height", "numColors", "colorDepth" int values in FLAC pictures
- GENERALOBJECT
  - data: ByteVector with object data
  - description: String with description
  - fileName: String with file name
  - mimeType: String with MIME type
  - this is currently only implemented for ID3v2 GEOB frames

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::MP4::Tag, and TagLib::Ogg::XiphComment.

## complexPropertyKeys()

virtual StringList TagLib::Tag::complexPropertyKeys | ( |  | ) | const

virtual

Get the keys of complex properties, i.e. properties which cannot be represented simply by a string. Because such properties might be expensive to fetch, there are separate operations to get the available keys - which is expected to be cheap - and getting and setting the property values. The default implementation returns only an empty list. Reimplementations should provide "PICTURE" if embedded cover art is present, and optionally support other properties.

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::MP4::Tag, and TagLib::Ogg::XiphComment.

## duplicate()

void TagLib::Tag::duplicate | ( | const Tag * | source,
|  | Tag * | target,
|  | bool | overwrite = true )

static

Copies the generic data from one tag to another.

Note
  This will not affect any of the lower level details of the tag. For instance if any of the tag type specific data (maybe a URL for a band) is set, this will not modify or copy that. This just copies using the API in this class.

If overwrite is `true` then the values will be unconditionally copied. If `false` only empty values will be overwritten.

References Tag().

## genre()

virtual String TagLib::Tag::genre | ( |  | ) | const

pure virtual

Returns the genre name; if no genre is present in the tag an empty string will be returned.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## isEmpty()

virtual bool TagLib::Tag::isEmpty | ( |  | ) | const

virtual

Returns `true` if the tag does not contain any data. This should be reimplemented in subclasses that provide more than the basic tagging abilities in this class.

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, and TagLib::RIFF::Info::Tag.

## joinTagValues()

String TagLib::Tag::joinTagValues | ( | const StringList & | values | ) |

static

Join the values of a tag to a single string separated by " / ". If the tag implementation can have multiple values for a basic tag (e.g. artist), they can be combined to a single string for the basic tag getters (e.g. artist()).

## operator=()

Tag & TagLib::Tag::operator= | ( | const Tag & |  | ) |

delete

References Tag().

## properties()

virtual PropertyMap TagLib::Tag::properties | ( |  | ) | const

virtual

Exports the tags of the file as dictionary mapping (human readable) tag names (Strings) to StringLists of tag values. The default implementation in this class considers only the usual built-in tags (artist, album, ...) and only one value per key.

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

Referenced by removeUnsupportedProperties().

## removeUnsupportedProperties()

virtual void TagLib::Tag::removeUnsupportedProperties | ( | const StringList & | properties | ) |

virtual

Removes unsupported properties, or a subset of them, from the tag. The parameter properties must contain only entries from properties().unsupportedData().

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::MP4::Tag, and TagLib::RIFF::Info::Tag.

References properties().

## setAlbum()

virtual void TagLib::Tag::setAlbum | ( | const String & | s | ) |

pure virtual

Sets the album to s. If s is an empty string then this value will be cleared.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setArtist()

virtual void TagLib::Tag::setArtist | ( | const String & | s | ) |

pure virtual

Sets the artist to s. If s is an empty string then this value will be cleared.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setComment()

virtual void TagLib::Tag::setComment | ( | const String & | s | ) |

pure virtual

Sets the comment to s. If s is an empty string then this value will be cleared.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setComplexProperties()

virtual bool TagLib::Tag::setComplexProperties | ( | const String & | key,
|  | const List< VariantMap > & | value )

virtual

Set all complex properties for a given key using variant maps as value with the same format as returned by complexProperties(). An empty list as value removes all complex properties for key.

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::MP4::Tag, and TagLib::Ogg::XiphComment.

## setGenre()

virtual void TagLib::Tag::setGenre | ( | const String & | s | ) |

pure virtual

Sets the genre to s. If s is an empty string then this value will be cleared. For tag formats that use a fixed set of genres, the appropriate value will be selected based on a string comparison. A list of available genres for those formats should be available in that type's implementation.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setProperties()

virtual PropertyMap TagLib::Tag::setProperties | ( | const PropertyMap & | origProps | ) |

virtual

Sets the tags of this File to those specified in origProps. This default implementation sets only the tags for which setter methods exist in this class (artist, album, ...), and only one value per key; the rest will be contained in the returned PropertyMap.

Reimplemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setTitle()

virtual void TagLib::Tag::setTitle | ( | const String & | s | ) |

pure virtual

Sets the title to s. If s is an empty string then this value will be cleared.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setTrack()

virtual void TagLib::Tag::setTrack | ( | unsigned int | i | ) |

pure virtual

Sets the track to i. If s is 0 then this value will be cleared.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## setYear()

virtual void TagLib::Tag::setYear | ( | unsigned int | i | ) |

pure virtual

Sets the year to i. If s is 0 then this value will be cleared.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## title()

virtual String TagLib::Tag::title | ( |  | ) | const

pure virtual

Returns the track name; if no track name is present in the tag an empty string will be returned.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## track()

virtual unsigned int TagLib::Tag::track | ( |  | ) | const

pure virtual

Returns the track number; if there is no track number set, this will return 0.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

## year()

virtual unsigned int TagLib::Tag::year | ( |  | ) | const

pure virtual

Returns the year; if there is no year set, this will return 0.

Implemented in TagLib::APE::Tag, TagLib::ASF::Tag, TagLib::DSDIFF::DIIN::Tag, TagLib::ID3v1::Tag, TagLib::ID3v2::Tag, TagLib::Matroska::Tag, TagLib::Mod::Tag, TagLib::MP4::Tag, TagLib::Ogg::XiphComment, TagLib::RIFF::Info::Tag, and TagLib::Shorten::Tag.

The documentation for this class was generated from the following file:

- tag.h