| TagLib 1.13 |  |

Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
TagLib::APE::Tag Class Reference

An APE tag implementation. More...

`#include <apetag.h>`

Inheritance diagram for TagLib::APE::Tag:
[legend]
Collaboration diagram for TagLib::APE::Tag:
[legend]

## Public Member Functions
| Tag ()
| Tag (TagLib::File *file, long footerLocation)
virtual | ~Tag ()
ByteVector | render () const
virtual String | title () const
virtual String | artist () const
virtual String | album () const
virtual String | comment () const
virtual String | genre () const
virtual unsigned int | year () const
virtual unsigned int | track () const
virtual void | setTitle (const String &s)
virtual void | setArtist (const String &s)
virtual void | setAlbum (const String &s)
virtual void | setComment (const String &s)
virtual void | setGenre (const String &s)
virtual void | setYear (unsigned int i)
virtual void | setTrack (unsigned int i)
PropertyMap | properties () const
void | removeUnsupportedProperties (const StringList &properties)
PropertyMap | setProperties (const PropertyMap &)
Footer * | footer () const
const ItemListMap & | itemListMap () const
void | removeItem (const String &key)
void | addValue (const String &key, const String &value, bool replace=true)
void | setData (const String &key, const ByteVector &value)
void | setItem (const String &key, const Item &item)
bool | isEmpty () const
Public Member Functions inherited from TagLib::Tag
virtual | ~Tag ()
PropertyMap | properties () const
void | removeUnsupportedProperties (const StringList &properties)
PropertyMap | setProperties (const PropertyMap &properties)
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 ByteVector | fileIdentifier ()
static bool | checkKey (const String &)
Static Public Member Functions inherited from TagLib::Tag
static void | duplicate (const Tag *source, Tag *target, bool overwrite=true)

## Protected Member Functions
void | read ()
void | parse (const ByteVector &data)
Protected Member Functions inherited from TagLib::Tag
| Tag ()

## Detailed Description

An APE tag implementation.

## Constructor & Destructor Documentation

## ◆ Tag() [1/2]

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

Create an APE tag with default values.

## ◆ Tag() [2/2]

TagLib::APE::Tag::Tag | ( | TagLib::File * | file,
|  | long | footerLocation
| ) |  |

Create an APE tag and parse the data in file with APE footer at tagOffset.

## ◆ ~Tag()

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

Destroys this Tag instance.

Reimplemented from TagLib::Tag.

## Member Function Documentation

## ◆ addValue()

void TagLib::APE::Tag::addValue | ( | const String & | key,
|  | const String & | value,
|  | bool | replace = `true`
| ) |  |

Adds to the text item specified by key the data value. If replace is true, then all of the other values on the same key will be removed first. If a binary item exists for key it will be removed first.

## ◆ album()

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

Returns the album name; if no album name is present in the tag String::null will be returned.

Implements TagLib::Tag.

## ◆ artist()

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

Returns the artist name; if no artist name is present in the tag String::null will be returned.

Implements TagLib::Tag.

## ◆ checkKey()

static bool TagLib::APE::Tag::checkKey | ( | const String & |  | ) |
| static

Check if the given String is a valid APE tag key.

## ◆ comment()

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

Returns the track comment; if no comment is present in the tag String::null will be returned.

Implements TagLib::Tag.

## ◆ fileIdentifier()

static ByteVector TagLib::APE::Tag::fileIdentifier | ( |  | ) |
| static

Returns the string "APETAGEX" suitable for usage in locating the tag in a file.

## ◆ footer()

Footer * TagLib::APE::Tag::footer | ( |  | ) | const

Returns a pointer to the tag's footer.

## ◆ genre()

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

Returns the genre name; if no genre is present in the tag String::null will be returned.

Implements TagLib::Tag.

## ◆ isEmpty()

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

Returns true if the tag does not contain any data.

Reimplemented from TagLib::Tag.

## ◆ itemListMap()

const ItemListMap & TagLib::APE::Tag::itemListMap | ( |  | ) | const

Returns a reference to the item list map. This is an ItemListMap of all of the items in the tag.

This is the most powerful structure for accessing the items of the tag.

APE tags are case-insensitive, all keys in this map have been converted to upper case.

Warning
  You should not modify this data structure directly, instead use setItem() and removeItem().

## ◆ parse()

void TagLib::APE::Tag::parse | ( | const ByteVector & | data | ) |
| protected

Parses the body of the tag in data.

## ◆ properties()

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

Implements the unified tag dictionary interface – export function. APE tags are perfectly compatible with the dictionary interface because they support both arbitrary tag names and multiple values. Currently only APE items of type Text are handled by the dictionary interface; all Binary and Locator items will be put into the unsupportedData list and can be deleted on request using removeUnsupportedProperties(). The same happens to Text items if their key is invalid for PropertyMap (which should actually never happen).

The only conversion done by this export function is to rename the APE tags TRACK to TRACKNUMBER, YEAR to DATE, and ALBUM ARTIST to ALBUMARTIST, respectively, in order to be compliant with the names used in other formats.

## ◆ read()

void TagLib::APE::Tag::read | ( |  | ) |
| protected

Reads from the file specified in the constructor.

## ◆ removeItem()

void TagLib::APE::Tag::removeItem | ( | const String & | key | ) |

Removes the key item from the tag

## ◆ removeUnsupportedProperties()

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

## ◆ render()

ByteVector TagLib::APE::Tag::render | ( |  | ) | const

Renders the in memory values to a ByteVector suitable for writing to the file.

## ◆ setAlbum()

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

Sets the album to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

## ◆ setArtist()

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

Sets the artist to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

## ◆ setComment()

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

Sets the comment to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

## ◆ setData()

void TagLib::APE::Tag::setData | ( | const String & | key,
|  | const ByteVector & | value
| ) |  |

Set the binary data for the key specified by item to value This will convert the item to type Binary if it isn't already and all of the other values on the same key will be removed.

## ◆ setGenre()

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

Sets the genre to s. If s is String::null 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.

Implements TagLib::Tag.

## ◆ setItem()

void TagLib::APE::Tag::setItem | ( | const String & | key,
|  | const Item & | item
| ) |  |

Sets the key item to the value of item. If an item with the key is already present, it will be replaced.

## ◆ setProperties()

PropertyMap TagLib::APE::Tag::setProperties | ( | const PropertyMap & |  | ) |

Implements the unified tag dictionary interface – import function. The same comments as for the export function apply; additionally note that the APE tag specification requires keys to have between 2 and 16 printable ASCII characters with the exception of the fixed strings "ID3", "TAG", "OGGS", and "MP+".

## ◆ setTitle()

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

Sets the title to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

## ◆ setTrack()

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

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

Implements TagLib::Tag.

## ◆ setYear()

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

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

Implements TagLib::Tag.

## ◆ title()

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

Returns the track name; if no track name is present in the tag String::null will be returned.

Implements TagLib::Tag.

## ◆ track()

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

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

Implements TagLib::Tag.

## ◆ year()

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

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

Implements TagLib::Tag.

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

- apetag.h