NAME

TagLib::ID3v2::TextIdentificationFrame - An ID3v2 text identification frame implementation

SYNOPSIS

use TagLib::ID3v2::TextIdentificationFrame;

my $i = TagLib::ID3v2::TextIdentificationFrame->new(
  new(TagLib::ByteVector->new("TALB"), "UTF8");
$i->setText(TagLib::String->new("blah blah"));
print $i->toString()->toCString(), "\n"; # got "blah blah"

DESCRIPTION

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:

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.

new(ByteVector $type, PV $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.

new(ByteVector $data)

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

DESTROY()

Destroys this TextIdentificationFrame instance.

void setText(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.

void setText(String $s)
String toString()

see TagLib::ID3v2::Frame

PV textEncoding()

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.

see setTextEncoding()

see render()

void setTextEncoding(PV $encoding)

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

see textEncoding()

see render()

StringList fieldList()

Returns a list of the strings in this frame.

EXPORT

None by default.

SEE ALSO

TagLib Frame

AUTHOR

Dongxu Ma, <dongxu.ma@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2005 by Dongxu Ma

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.