An APE tag implementation. More...
#include <apetag.h>
Static Public Member Functions | |
static ByteVector | fileIdentifier () |
static bool | checkKey (const String &) |
![]() | |
static void | duplicate (const Tag *source, Tag *target, bool overwrite=true) |
static String | joinTagValues (const StringList &values) |
Protected Member Functions | |
void | read () |
void | parse (const ByteVector &data) |
![]() | |
Tag () | |
An APE tag implementation.
TagLib::APE::Tag::Tag | ( | ) |
Create an APE tag with default values.
TagLib::APE::Tag::Tag | ( | TagLib::File * | file, |
offset_t | footerLocation | ||
) |
|
overridevirtual |
Destroys this Tag instance.
Reimplemented from TagLib::Tag.
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.
|
overridevirtual |
Returns the album name; if no album name is present in the tag an empty string will be returned.
Implements TagLib::Tag.
|
overridevirtual |
Returns the artist name; if no artist name is present in the tag an empty string will be returned.
Implements TagLib::Tag.
|
overridevirtual |
Returns the track comment; if no comment is present in the tag an empty string will be returned.
Implements TagLib::Tag.
|
overridevirtual |
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:
Reimplemented from TagLib::Tag.
|
overridevirtual |
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 from TagLib::Tag.
|
static |
Returns the string "APETAGEX" suitable for usage in locating the tag in a file.
Footer * TagLib::APE::Tag::footer | ( | ) | const |
Returns a pointer to the tag's footer.
|
overridevirtual |
Returns the genre name; if no genre is present in the tag an empty string will be returned.
Implements TagLib::Tag.
|
overridevirtual |
Returns true
if the tag does not contain any data.
Reimplemented from TagLib::Tag.
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.
|
protected |
Parses the body of the tag in data.
|
overridevirtual |
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, (and a few other keys, see Mapping of Properties to Various Formats) in order to be compliant with the names used in other formats.
Reimplemented from TagLib::Tag.
|
protected |
Reads from the file specified in the constructor.
|
overridevirtual |
Removes unsupported properties, or a subset of them, from the tag. The parameter properties must contain only entries from properties().unsupportedData().
Reimplemented from TagLib::Tag.
ByteVector TagLib::APE::Tag::render | ( | ) | const |
Renders the in memory values to a ByteVector suitable for writing to the file.
Sets the album to s. If s is an empty string then this value will be cleared.
Implements TagLib::Tag.
Sets the artist to s. If s is an empty string then this value will be cleared.
Implements TagLib::Tag.
Sets the comment to s. If s is an empty string then this value will be cleared.
Implements TagLib::Tag.
|
overridevirtual |
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 from TagLib::Tag.
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.
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.
Implements TagLib::Tag.
Sets the key item to the value of item. If an item with the key is already present, it will be replaced.
|
overridevirtual |
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+".
Reimplemented from TagLib::Tag.
Sets the title to s. If s is an empty string then this value will be cleared.
Implements TagLib::Tag.
Sets the track to i. If s is 0 then this value will be cleared.
Implements TagLib::Tag.
Sets the year to i. If s is 0 then this value will be cleared.
Implements TagLib::Tag.
|
overridevirtual |
Returns the track name; if no track name is present in the tag an empty string will be returned.
Implements TagLib::Tag.
Returns the track number; if there is no track number set, this will return 0.
Implements TagLib::Tag.
Returns the year; if there is no year set, this will return 0.
Implements TagLib::Tag.