TagLib API Documentation
Public Types | Public Member Functions | List of all members
TagLib::PropertyMap Class Reference

A map for format-independent <key,values> tag representations. More...

#include <tpropertymap.h>

Inheritance diagram for TagLib::PropertyMap:
[legend]
Collaboration diagram for TagLib::PropertyMap:
[legend]

Public Types

using Iterator = SimplePropertyMap::Iterator
 
using ConstIterator = SimplePropertyMap::ConstIterator
 

Public Member Functions

TAGLIB_EXPORT PropertyMap ()
 
TAGLIB_EXPORT PropertyMap (const PropertyMap &m)
 
TAGLIB_EXPORT PropertyMapoperator= (const PropertyMap &other)
 
TAGLIB_EXPORT PropertyMap (const SimplePropertyMap &m)
 
TAGLIB_EXPORT ~PropertyMap ()
 
TAGLIB_EXPORT bool insert (const String &key, const StringList &values)
 
TAGLIB_EXPORT bool replace (const String &key, const StringList &values)
 
TAGLIB_EXPORT Iterator find (const String &key)
 
TAGLIB_EXPORT ConstIterator find (const String &key) const
 
TAGLIB_EXPORT bool contains (const String &key) const
 
TAGLIB_EXPORT bool contains (const PropertyMap &other) const
 
TAGLIB_EXPORT PropertyMaperase (const String &key)
 
TAGLIB_EXPORT PropertyMaperase (const PropertyMap &other)
 
TAGLIB_EXPORT PropertyMapmerge (const PropertyMap &other)
 
TAGLIB_EXPORT StringList value (const String &key, const StringList &defaultValue=StringList()) const
 
TAGLIB_EXPORT const StringListoperator[] (const String &key) const
 
TAGLIB_EXPORT StringListoperator[] (const String &key)
 
TAGLIB_EXPORT bool operator== (const PropertyMap &other) const
 
TAGLIB_EXPORT bool operator!= (const PropertyMap &other) const
 
TAGLIB_EXPORT const StringListunsupportedData () const
 
TAGLIB_EXPORT void addUnsupportedData (const String &key)
 
TAGLIB_EXPORT void removeEmpty ()
 
TAGLIB_EXPORT String toString () const
 
- Public Member Functions inherited from TagLib::Map< Key, T >
 Map ()
 
 Map (const Map< Key, T > &m)
 
 Map (std::initializer_list< std::pair< const Key, T > > init)
 
 ~Map ()
 
Iterator begin ()
 
ConstIterator begin () const
 
ConstIterator cbegin () const
 
Iterator end ()
 
ConstIterator end () const
 
ConstIterator cend () const
 
Map< Key, T > & insert (const Key &key, const T &value)
 
Map< Key, T > & clear ()
 
unsigned int size () const
 
bool isEmpty () const
 
Iterator find (const Key &key)
 
ConstIterator find (const Key &key) const
 
bool contains (const Key &key) const
 
Map< Key, T > & erase (Iterator it)
 
Map< Key, T > & erase (const Key &key)
 
value (const Key &key, const T &defaultValue=T()) const
 
const T & operator[] (const Key &key) const
 
T & operator[] (const Key &key)
 
Map< Key, T > & operator= (const Map< Key, T > &m)
 
Map< Key, T > & operator= (std::initializer_list< std::pair< const Key, T > > init)
 
void swap (Map< Key, T > &m) noexcept
 
bool operator== (const Map< Key, T > &m) const
 
bool operator!= (const Map< Key, T > &m) const
 

Additional Inherited Members

- Protected Member Functions inherited from TagLib::Map< Key, T >
void detach ()
 

Detailed Description

A map for format-independent <key,values> tag representations.

This map implements a generic representation of textual audio metadata ("tags") realized as pairs of a case-insensitive key and a nonempty list of corresponding values, each value being an arbitrary unicode String.

See Mapping of Properties to Various Formats for the mapping of the different formats to properties.

Note that most metadata formats pose additional conditions on the tag keys. The most popular ones (Vorbis, APE, ID3v2) should support all ASCII only words of length between 2 and 16.

This class can contain any tags, but here is a list of "well-known" tags that you might want to use:

Basic tags:

Sort names:

Credits:

Other tags:

MusicBrainz identifiers:

Member Typedef Documentation

◆ ConstIterator

using TagLib::PropertyMap::ConstIterator = SimplePropertyMap::ConstIterator

◆ Iterator

using TagLib::PropertyMap::Iterator = SimplePropertyMap::Iterator

Constructor & Destructor Documentation

◆ PropertyMap() [1/3]

TAGLIB_EXPORT TagLib::PropertyMap::PropertyMap ( )

◆ PropertyMap() [2/3]

TAGLIB_EXPORT TagLib::PropertyMap::PropertyMap ( const PropertyMap m)

◆ PropertyMap() [3/3]

TAGLIB_EXPORT TagLib::PropertyMap::PropertyMap ( const SimplePropertyMap m)

Creates a PropertyMap initialized from a SimplePropertyMap. Copies all entries from m that have valid keys. Invalid keys will be appended to the unsupportedData() list.

◆ ~PropertyMap()

TAGLIB_EXPORT TagLib::PropertyMap::~PropertyMap ( )

Member Function Documentation

◆ addUnsupportedData()

TAGLIB_EXPORT void TagLib::PropertyMap::addUnsupportedData ( const String key)

Add property key to list of unsupported data.

See also
unsupportedData()

◆ contains() [1/2]

TAGLIB_EXPORT bool TagLib::PropertyMap::contains ( const PropertyMap other) const

Returns true if this map contains all keys of other and the values coincide for those keys. Does not take the unsupportedData list into account.

◆ contains() [2/2]

TAGLIB_EXPORT bool TagLib::PropertyMap::contains ( const String key) const

Returns true if the map contains values for key.

◆ erase() [1/2]

TAGLIB_EXPORT PropertyMap & TagLib::PropertyMap::erase ( const PropertyMap other)

Erases from this map all keys that appear in other.

◆ erase() [2/2]

TAGLIB_EXPORT PropertyMap & TagLib::PropertyMap::erase ( const String key)

Erase the key and its values from the map.

◆ find() [1/2]

TAGLIB_EXPORT Iterator TagLib::PropertyMap::find ( const String key)

Find the first occurrence of key.

◆ find() [2/2]

TAGLIB_EXPORT ConstIterator TagLib::PropertyMap::find ( const String key) const

Find the first occurrence of key.

◆ insert()

TAGLIB_EXPORT bool TagLib::PropertyMap::insert ( const String key,
const StringList values 
)

Inserts values under key in the map. If key already exists, then values will be appended to the existing StringList. The returned value indicates success, i.e. whether key is a valid key.

◆ merge()

TAGLIB_EXPORT PropertyMap & TagLib::PropertyMap::merge ( const PropertyMap other)

Merge the contents of other into this PropertyMap. If a key is contained in both maps, the values of the second are appended to that of the first. The unsupportedData() lists are concatenated as well.

◆ operator!=()

TAGLIB_EXPORT bool TagLib::PropertyMap::operator!= ( const PropertyMap other) const

Returns false if and only if other has the same contents as this map.

◆ operator=()

TAGLIB_EXPORT PropertyMap & TagLib::PropertyMap::operator= ( const PropertyMap other)

◆ operator==()

TAGLIB_EXPORT bool TagLib::PropertyMap::operator== ( const PropertyMap other) const

Returns true if and only if other has the same contents as this map.

◆ operator[]() [1/2]

TAGLIB_EXPORT StringList & TagLib::PropertyMap::operator[] ( const String key)

Returns a reference to the value associated with key.

Note
If key is not contained in the map, an empty StringList is returned. You can also directly add entries by using this function as an lvalue.

◆ operator[]() [2/2]

TAGLIB_EXPORT const StringList & TagLib::PropertyMap::operator[] ( const String key) const

Returns a reference to the value associated with key.

Note
If key is not contained in the map, an empty StringList is returned without error.

◆ removeEmpty()

TAGLIB_EXPORT void TagLib::PropertyMap::removeEmpty ( )

Removes all entries which have an empty value list.

◆ replace()

TAGLIB_EXPORT bool TagLib::PropertyMap::replace ( const String key,
const StringList values 
)

Replaces any existing values for key with the given values, and simply insert them if key did not exist before. The returned value indicates success, i.e. whether key is a valid key.

◆ toString()

TAGLIB_EXPORT String TagLib::PropertyMap::toString ( ) const

◆ unsupportedData()

TAGLIB_EXPORT const StringList & TagLib::PropertyMap::unsupportedData ( ) const

If a PropertyMap is read from a File object using File::properties() (or a FileRef object using FileRef::properties()), the StringList returned from this function will represent metadata that could not be parsed into the PropertyMap representation. This could be e.g. binary data, unknown ID3 frames, etc.

See also
File::removeUnsupportedProperties(), FileRef::removeUnsupportedProperties()

◆ value()

TAGLIB_EXPORT StringList TagLib::PropertyMap::value ( const String key,
const StringList defaultValue = StringList() 
) const

Returns the value associated with key.

If the map does not contain key, it returns defaultValue. If no defaultValue is specified, it returns an empty string list.


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