TagLib::ID3v2::TextIdentificationFrame Class Reference

An ID3v2 text identification frame implementation. More...

`#include <textidentificationframe.h>`

Inheritance diagram for TagLib::ID3v2::TextIdentificationFrame:
[legend]
Collaboration diagram for TagLib::ID3v2::TextIdentificationFrame:
[legend]

## Public Member Functions

| TextIdentificationFrame (const ByteVector &type, String::Type encoding)
| TextIdentificationFrame (const ByteVector &data)
| ~TextIdentificationFrame () override
| TextIdentificationFrame (const TextIdentificationFrame &)=delete
TextIdentificationFrame & | operator= (const TextIdentificationFrame &)=delete
void | setText (const StringList &l)
void | setText (const String &s) override
String | toString () const override
StringList | toStringList () const override
String::Type | textEncoding () const
void | setTextEncoding (String::Type encoding)
StringList | fieldList () const
PropertyMap | asProperties () const override
Public Member Functions inherited from TagLib::ID3v2::Frame
virtual | ~Frame ()
| Frame (const Frame &)=delete
Frame & | operator= (const Frame &)=delete
ByteVector | frameID () const
unsigned int | size () const
unsigned int | headerSize () const
void | setData (const ByteVector &data)
ByteVector | render () const
Header * | header () const

## Static Public Member Functions

static TextIdentificationFrame * | createTIPLFrame (const PropertyMap &properties)
static TextIdentificationFrame * | createTMCLFrame (const PropertyMap &properties)
static const KeyConversionMap & | involvedPeopleMap ()
Static Public Member Functions inherited from TagLib::ID3v2::Frame
static ByteVector | textDelimiter (String::Type t)
static ByteVector | keyToFrameID (const String &)
static String | frameIDToKey (const ByteVector &)

## Protected Member Functions

void | parseFields (const ByteVector &data) override
ByteVector | renderFields () const override
| TextIdentificationFrame (const ByteVector &data, Header *h)
Protected Member Functions inherited from TagLib::ID3v2::Frame
| Frame (const ByteVector &data)
| Frame (Header *h)
void | setHeader (Header *h, bool deleteCurrent=true)
void | parse (const ByteVector &data)
ByteVector | fieldData (const ByteVector &frameData) const
String | readStringField (const ByteVector &data, String::Type encoding, int *position=nullptr)
String::Type | checkTextEncoding (const StringList &fields, String::Type encoding) const

## Friends

class | FrameFactory

## Additional Inherited Members

Static Public Attributes inherited from TagLib::ID3v2::Frame
static const String | instrumentPrefix
static const String | commentPrefix
static const String | lyricsPrefix
static const String | urlPrefix
Static Protected Member Functions inherited from TagLib::ID3v2::Frame
static void | splitProperties (const PropertyMap &original, PropertyMap &singleFrameProperties, PropertyMap &tiplProperties, PropertyMap &tmclProperties)

## Detailed Description

An ID3v2 text identification frame implementation.

This is an implementation of the most common type of ID3v2 frame – text identification frames. There are a number of variations on this. Those enumerated in the ID3v2.4 standard are:

Frame | Description
--- | ---
TALB | Album/Movie/Show title
TBPM | BPM (beats per minute)
TCOM | Composer
TCON | Content type
TCOP | Copyright message
TDEN | Encoding time
TDLY | Playlist delay
TDOR | Original release time
TDRC | Recording time
TDRL | Release time
TDTG | Tagging time
TENC | Encoded by
TEXT | Lyricist/Text writer
TFLT | File type
TIPL | Involved people list
TIT1 | Content group description
TIT2 | Title/songname/content description
TIT3 | Subtitle/Description refinement
TKEY | Initial key
TLAN | Language(s)
TLEN | Length
TMCL | Musician credits list
TMED | Media type
TMOO | Mood
TOAL | Original album/movie/show title
TOFN | Original filename
TOLY | Original lyricist(s)/text writer(s)
TOPE | Original artist(s)/performer(s)
TOWN | File owner/licensee
TPE1 | Lead performer(s)/Soloist(s)
TPE2 | Band/orchestra/accompaniment
TPE3 | Conductor/performer refinement
TPE4 | Interpreted, remixed, or otherwise modified by
TPOS | Part of a set
TPRO | Produced notice
TPUB | Publisher
TRCK | Track number/Position in set
TRSN | Internet radio station name
TRSO | Internet radio station owner
TSOA | Album sort order
TSOP | Performer sort order
TSOT | Title sort order
TSRC | ISRC (international standard recording code)
TSSE | Software/Hardware and settings used for encoding
TSST | Set subtitle

The ID3v2 Frames document gives a description of each of these formats and the expected order of strings in each. ID3v2::Header::frameID() can be used to determine the frame type.

Note
  If non-Latin1 compatible strings are used with this class, even if the text encoding is set to Latin1, the frame will be written using UTF8 (with the encoding flag appropriately set in the output).

## Constructor & Destructor Documentation

## TextIdentificationFrame() [1/4]

TagLib::ID3v2::TextIdentificationFrame::TextIdentificationFrame | ( | const ByteVector & | type,
|  | String::Type | encoding )

Construct an empty frame of type type. Uses encoding as the default text encoding.

Note
  In this case you must specify the text encoding as it resolves the ambiguity between constructors.
  Please see the note in the class description regarding Latin1.

Referenced by createTIPLFrame(), createTMCLFrame(), operator=(), and TextIdentificationFrame().

## TextIdentificationFrame() [2/4]

TagLib::ID3v2::TextIdentificationFrame::TextIdentificationFrame | ( | const ByteVector & | data | ) |

explicit

This is a dual purpose constructor. data can either be binary data that should be parsed or (at a minimum) the frame ID.

## ~TextIdentificationFrame()

TagLib::ID3v2::TextIdentificationFrame::~TextIdentificationFrame | ( |  | ) |

override

Destroys this TextIdentificationFrame instance.

## TextIdentificationFrame() [3/4]

TagLib::ID3v2::TextIdentificationFrame::TextIdentificationFrame | ( | const TextIdentificationFrame & |  | ) |

delete

References TextIdentificationFrame().

## TextIdentificationFrame() [4/4]

TagLib::ID3v2::TextIdentificationFrame::TextIdentificationFrame | ( | const ByteVector & | data,
|  | Header * | h )

protected

The constructor used by the FrameFactory.

References TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE.

## Member Function Documentation

## asProperties()

PropertyMap TagLib::ID3v2::TextIdentificationFrame::asProperties | ( |  | ) | const

override virtual

Parses the contents of this frame as PropertyMap. If that fails, the returned PropertyMap will be empty, and its unsupportedData() will contain this frame's ID.

Reimplemented from TagLib::ID3v2::Frame.

Reimplemented in TagLib::ID3v2::UserTextIdentificationFrame.

## createTIPLFrame()

TextIdentificationFrame * TagLib::ID3v2::TextIdentificationFrame::createTIPLFrame | ( | const PropertyMap & | properties | ) |

static

This is a special factory method to create a TIPL (involved people list) frame from the given properties. Will parse key=[list of values] data into the TIPL format as specified in the ID3 standard.

References TextIdentificationFrame().

## createTMCLFrame()

TextIdentificationFrame * TagLib::ID3v2::TextIdentificationFrame::createTMCLFrame | ( | const PropertyMap & | properties | ) |

static

This is a special factory method to create a TMCL (musician credits list) frame from the given properties. Will parse key=[list of values] data into the TMCL format as specified in the ID3 standard, where key should be of the form instrumentPrefix:instrument.

References TextIdentificationFrame().

## fieldList()

StringList TagLib::ID3v2::TextIdentificationFrame::fieldList | ( |  | ) | const

Returns a list of the strings in this frame.

## involvedPeopleMap()

const KeyConversionMap & TagLib::ID3v2::TextIdentificationFrame::involvedPeopleMap | ( |  | ) |

static

Returns a KeyConversionMap mapping a role as it would be used in a PropertyMap to the corresponding key used in a TIPL ID3 frame to describe that role.

## operator=()

TextIdentificationFrame & TagLib::ID3v2::TextIdentificationFrame::operator= | ( | const TextIdentificationFrame & |  | ) |

delete

References TextIdentificationFrame().

## parseFields()

void TagLib::ID3v2::TextIdentificationFrame::parseFields | ( | const ByteVector & | data | ) |

override protected virtual

Called by parse() to parse the field data. It makes this information available through the public API. This must be overridden by the subclasses.

Implements TagLib::ID3v2::Frame.

## renderFields()

ByteVector TagLib::ID3v2::TextIdentificationFrame::renderFields | ( |  | ) | const

override protected virtual

Render the field data back to a binary format in a ByteVector. This must be overridden by subclasses.

Implements TagLib::ID3v2::Frame.

## setText() [1/2]

void TagLib::ID3v2::TextIdentificationFrame::setText | ( | const String & | text | ) |

override virtual

Set the text of frame in the sanest way possible. This should only be reimplemented in frames where there is some logical mapping to text.

Note
  If the frame type supports multiple text encodings, this will not change the text encoding of the frame; the string will be converted to that frame's encoding. Please use the specific APIs of the frame types to set the encoding if that is desired.

Reimplemented from TagLib::ID3v2::Frame.

Reimplemented in TagLib::ID3v2::UserTextIdentificationFrame.

## setText() [2/2]

void TagLib::ID3v2::TextIdentificationFrame::setText | ( | const StringList & | l | ) |

Text identification frames are a list of string fields.

This function will accept either a StringList or a String (using the StringList constructor that accepts a single String).

Note
  This will not change the text encoding of the frame even if the strings passed in are not of the same encoding. Please use setEncoding(s.type()) if you wish to change the encoding of the frame.

## setTextEncoding()

void TagLib::ID3v2::TextIdentificationFrame::setTextEncoding | ( | String::Type | encoding | ) |

Sets the text encoding to be used when rendering this frame to encoding.

Note
  Please see the note in the class description regarding Latin1.

See also
  textEncoding()
  render()

## textEncoding()

String::Type TagLib::ID3v2::TextIdentificationFrame::textEncoding | ( |  | ) | const

Returns the text encoding that will be used in rendering this frame. This defaults to the type that was either specified in the constructor or read from the frame when parsed.

Note
  Please see the note in the class description regarding Latin1.

See also
  setTextEncoding()
  render()

## toString()

String TagLib::ID3v2::TextIdentificationFrame::toString | ( |  | ) | const

override virtual

This returns the textual representation of the data in the frame. Subclasses must reimplement this method to provide a string representation of the frame's data.

Implements TagLib::ID3v2::Frame.

Reimplemented in TagLib::ID3v2::UserTextIdentificationFrame.

## toStringList()

StringList TagLib::ID3v2::TextIdentificationFrame::toStringList | ( |  | ) | const

override virtual

This returns the textual representation of the data in the frame. Subclasses can reimplement this method to provide a string list representation of the frame's data. The default implementation returns the single string representation from toString().

Reimplemented from TagLib::ID3v2::Frame.

## Friends And Related Symbol Documentation

## FrameFactory

friend class FrameFactory

friend

References FrameFactory.

Referenced by FrameFactory.

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

- textidentificationframe.h