TYPEMAP
TagLib::ByteVector * TL_OBJECT
long long T_NV
const char T_CHAR
TagLib::APE::Footer * TL_OBJECT
TagLib::String * TL_OBJECT
TagLib::ByteVectorList * TL_OBJECT
TagLib::StringList * TL_OBJECT
TagLib::APE::Item * TL_OBJECT
TagLib::MPEG::Header * TL_OBJECT
TagLib::AudioProperties * TL_OBJECT
TagLib::File * TL_OBJECT
TagLib::Tag * TL_OBJECT
TagLib::FileRef * TL_OBJECT
TagLib::FileRef::FileTypeResolver * TL_OBJECT
const TagLib::FileRef::FileTypeResolver * TL_OBJECT
TagLib::MPEG::XingHeader * TL_OBJECT
TagLib::ID3v1::StringHandler * TL_OBJECT
TagLib::ID3v2::ExtendedHeader * TL_OBJECT
TagLib::ID3v2::Footer * TL_OBJECT
TagLib::ID3v2::Header * TL_OBJECT
TagLib::ID3v2::RelativeVolumeFrame * TL_OBJECT
TagLib::ID3v2::RelativeVolumeFrame::PeakVolume * TL_OBJECT
TagLib::ID3v2::Frame * TL_OBJECT
TagLib::ID3v2::FrameFactory * TL_OBJECT
TagLib::APE::Tag * TL_OBJECT
TagLib::ByteVector::Iterator * TL_OBJECT
TagLib::String::Iterator * TL_OBJECT
TagLib::APE::ItemListMap * TL_OBJECT
TagLib::APE::ItemListMap::Iterator * TL_OBJECT
TagLib::ID3v1::Tag * TL_OBJECT
TagLib::ID3v1::GenreMap * TL_OBJECT
TagLib::ID3v1::GenreMap::Iterator * TL_OBJECT
TagLib::ID3v2::Tag * TL_OBJECT
TagLib::ID3v2::FrameListMap * TL_OBJECT
TagLib::ID3v2::FrameList * TL_OBJECT
TagLib::ID3v2::FrameListMap::Iterator * TL_OBJECT
TagLib::ID3v2::FrameList::Iterator * TL_OBJECT
TagLib::Ogg::XiphComment * TL_OBJECT
TagLib::Ogg::FieldListMap * TL_OBJECT
TagLib::Ogg::FieldListMap::Iterator * TL_OBJECT
TagLib::ID3v2::AttachedPictureFrame * TL_OBJECT
TagLib::ID3v2::CommentsFrame * TL_OBJECT
TagLib::ID3v2::TextIdentificationFrame * TL_OBJECT
TagLib::ID3v2::UserTextIdentificationFrame * TL_OBJECT
TagLib::ID3v2::UniqueFileIdentifierFrame * TL_OBJECT
TagLib::ID3v2::UnknownFrame * TL_OBJECT
TagLib::Ogg::Page * TL_OBJECT
TagLib::Ogg::PageHeader * TL_OBJECT
TagLib::Ogg::File * TL_OBJECT
TagLib::FLAC::File * TL_OBJECT
TagLib::MPC::File * TL_OBJECT
TagLib::MPEG::File * TL_OBJECT
TagLib::Ogg::File * TL_OBJECT
TagLib::Ogg::FLAC::File * TL_OBJECT
TagLib::Ogg::Vorbis::File * TL_OBJECT
TagLib::Vorbis::File * TL_OBJECT
TagLib::FLAC::Properties * TL_OBJECT
TagLib::MPC::Properties * TL_OBJECT
TagLib::MPEG::Properties * TL_OBJECT
TagLib::Ogg::Vorbis::Properties * TL_OBJECT
TagLib::Vorbis::Properties * TL_OBJECT
TagLib::APE::Item::ItemTypes TL_APE_ITEM_ITEMTYPES
TagLib::AudioProperties::ReadStyle TL_AUDIOPROPERTIES_READSTYLE
TagLib::MPEG::Header::Version TL_MPEG_HEADER_VERSION
TagLib::MPEG::Header::ChannelMode TL_MPEG_HEADER_CHANNELMODE
TagLib::File::Position TL_FILE_POSITION
TagLib::String::Type TL_STRING_TYPE
TagLib::Ogg::Page::ContainsPacketFlags TL_OGG_PAGE_CONTAINSPACKETFLAGS
TagLib::Ogg::Page::PaginationStrategy TL_OGG_PAGE_PAGINATIONSTRATEGY
TagLib::ID3v2::AttachedPictureFrame::Type TL_ID3V2_ATTACHEDPICTUREFRAME_TYPE
TagLib::ID3v2::RelativeVolumeFrame::ChannelType TL_ID3V2_RELATIVEVOLUMEFRAME_CHANNELTYPE
TagLib::MPC::File::TagTypes TL_MPC_FILE_TAGTYPES
TagLib::MPEG::File::TagTypes TL_MPC_FILE_TAGTYPES
################################################################
OUTPUT
TL_OBJECT
sv_setref_pv($arg, \"Audio::${subtype}\", (void*)$var);
TL_PTRLIST
SV * reflist = newSV(0);
sv_setref_pv(reflist, Nullch, (void *)$var);
std::list<bool> * memlist = new std::list<bool>();
/* by default, mark all item to perform delete action */
for(int i = 0; i < $var->size(); i++)
memlist->insert(memlist->begin(), true);
SV * refmemlist = newSV(0);
sv_setref_pv(refmemlist, Nullch, (void *)memlist);
AV * array = newAV();
if(av_store(array, 0, reflist) == NULL ||
av_store(array, 1, refmemlist) == NULL) {
delete $var;
delete memlist;
croak("failed to store reflist/refmemlist in AV");
}
$arg = sv_2mortal(newRV_noinc(array));
sv_bless($arg, stash_gv(\"Audio::${subtype}\", TRUE));
TL_APE_ITEM_ITEMTYPES
switch($var) {
case TagLib::APE::Item::Text:
$arg = sv_2mortal(newSVpv(\"Text\", 0));
break;
case TagLib::APE::Item::Binary:
$arg = sv_2mortal(newSVpv(\"Binary\", 0));
break;
default:
/* TagLib::APE::Item::Locator */
$arg = sv_2mortal(newSVpv(\"Locator\", 0));
}
TL_AUDIOPROPERTIES_READSTYLE
switch($var) {
case TagLib::AudioProperties::Fast:
$arg = sv_2mortal(newSVpv(\"Fast\", 0));
break;
case TagLib::AudioProperties::Average:
$arg = sv_2mortal(newSVpv(\"Average\", 0));
break;
default:
/* TagLib::AudioProperties::Accurate */
$arg = sv_2mortal(newSVpv(\"Accurate\", 0));
}
TL_MPEG_HEADER_VERSION
switch($var) {
case TagLib::MPEG::Header::Version1:
$arg = sv_2mortal(newSVpv(\"Version1\", 0));
break;
case TagLib::MPEG::Header::Version2:
$arg = sv_2mortal(newSVpv(\"Version2\", 0));
break;
default:
/* TagLib::MPEG::Header::Version2_5 */
$arg = sv_2mortal(newSVpv(\"Version2_5\", 0));
}
TL_MPEG_HEADER_CHANNELMODE
switch($var) {
case TagLib::MPEG::Header::Stereo:
$arg = sv_2mortal(newSVpv(\"Stereo\", 0));
break;
case TagLib::MPEG::Header::JointStereo:
$arg = sv_2mortal(newSVpv(\"JointStereo\", 0));
break;
case TagLib::MPEG::Header::DualChannel:
$arg = sv_2mortal(newSVpv(\"DualChannel\", 0));
break;
default:
/* TagLib::MPEG::Header::SingleChannel */
$arg = sv_2mortal(newSVpv(\"SingleChannel\", 0));
}
TL_FILE_POSITION
switch($var) {
case TagLib::File::Beginning:
$arg = sv_2mortal(newSVpv(\"Beginning\", 0));
break;
case TagLib::File::Current:
$arg = sv_2mortal(newSVpv(\"Current\", 0));
break;
default:
/* TagLib::File::End */
$arg = sv_2mortal(newSVpv(\"End\", 0));
}
TL_STRING_TYPE
switch($var) {
case TagLib::String::Latin1:
$arg = sv_2mortal(newSVpv(\"Latin1\", 0));
break;
case TagLib::String::UTF8:
$arg = sv_2mortal(newSVpv(\"UTF8\", 0));
break;
case TagLib::String::UTF16BE:
$arg = sv_2mortal(newSVpv(\"UTF16BE\", 0));
break;
case TagLib::String::UTF16LE:
$arg = sv_2mortal(newSVpv(\"UTF16LE\", 0));
break;
default:
/* TagLib::String::UTF16 */
$arg = sv_2mortal(newSVpv(\"UTF16\", 0));
}
TL_OGG_PAGE_CONTAINSPACKETFLAGS
switch($var) {
case TagLib::Ogg::Page::DoesNotContainPacket:
$arg = sv_2mortal(newSVpv(\"DoesNotContainPacket\", 0));
break;
case TagLib::Ogg::Page::CompletePacket:
$arg = sv_2mortal(newSVpv(\"CompletePacket\", 0));
break;
case TagLib::Ogg::Page::BeginsWithPacket:
$arg = sv_2mortal(newSVpv(\"BeginsWithPacket\", 0));
break;
default:
/* TagLib::Ogg::Page::EndsWithPacket */
$arg = sv_2mortal(newSVpv(\"EndsWithPacket\", 0));
}
TL_OGG_PAGE_PAGINATIONSTRATEGY
switch($var) {
case TagLib::Ogg::Page::SinglePagePerGroup:
$arg = sv_2mortal(newSVpv(\"SinglePagePerGroup\", 0));
break;
default:
/* TagLib::Ogg::Page::Repaginate */
$arg = sv_2mortal(newSVpv(\"Regainate\", 0));
}
TL_ID3V2_ATTACHEDPICTUREFRAME_TYPE
switch($var) {
case TagLib::ID3v2::AttachedPictureFrame::Other:
$arg = sv_2mortal(newSVpv(\"Other\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::FileIcon:
$arg = sv_2mortal(newSVpv(\"FileIcon\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::OtherFileIcon:
$arg = sv_2mortal(newSVpv(\"OtherFileIcon\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::FrontCover:
$arg = sv_2mortal(newSVpv(\"FrontCover\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::BackCover:
$arg = sv_2mortal(newSVpv(\"BackCover\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::LeafletPage:
$arg = sv_2mortal(newSVpv(\"LeafletPage\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Media:
$arg = sv_2mortal(newSVpv(\"Media\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::LeadArtist:
$arg = sv_2mortal(newSVpv(\"LeadArtist\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Artist:
$arg = sv_2mortal(newSVpv(\"Artist\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Conductor:
$arg = sv_2mortal(newSVpv(\"Conductor\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Band:
$arg = sv_2mortal(newSVpv(\"Band\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Composer:
$arg = sv_2mortal(newSVpv(\"Composer\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Lyricist:
$arg = sv_2mortal(newSVpv(\"Lyricist\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::RecordingLocation:
$arg = sv_2mortal(newSVpv(\"RecordingLocation\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::DuringRecording:
$arg = sv_2mortal(newSVpv(\"DuringRecording\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::DuringPerformance:
$arg = sv_2mortal(newSVpv(\"DuringPerformance\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::MovieScreenCapture:
$arg = sv_2mortal(newSVpv(\"MovieScreenCapture\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::ColouredFish:
$arg = sv_2mortal(newSVpv(\"ColouredFish\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::Illustration:
$arg = sv_2mortal(newSVpv(\"Illustration\", 0));
break;
case TagLib::ID3v2::AttachedPictureFrame::BandLogo:
$arg = sv_2mortal(newSVpv(\"BandLogo\", 0));
break;
default:
/* TagLib::ID3v2::AttachedPictureFrame::PublisherLogo */
$arg = sv_2mortal(newSVpv(\"PublisherLogo\", 0));
}
TL_ID3V2_RELATIVEVOLUMEFRAME_CHANNELTYPE
switch($var) {
case TagLib::ID3v2::RelativeVolumeFrame::Other:
$arg = sv_2mortal(newSVpv(\"Other\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::MasterVolume:
$arg = sv_2mortal(newSVpv(\"MasterVolume\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::FrontRight:
$arg = sv_2mortal(newSVpv(\"FrontRight\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::FrontLeft:
$arg = sv_2mortal(newSVpv(\"FrontLeft\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::BackRight:
$arg = sv_2mortal(newSVpv(\"BackRight\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::BackLeft:
$arg = sv_2mortal(newSVpv(\"BackLeft\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::FrontCentre:
$arg = sv_2mortal(newSVpv(\"FrontCentre\", 0));
break;
case TagLib::ID3v2::RelativeVolumeFrame::BackCentre:
$arg = sv_2mortal(newSVpv(\"BackCentre\", 0));
break;
default:
/* TagLib::ID3v2::RelativeVolumeFrame */
$arg = sv_2mortal(newSVpv(\"Subwoofer\", 0));
}
TL_MPC_FILE_TAGTYPES
switch($var) {
case TagLib::MPC::File::NoTags:
$arg = sv_2mortal(newSVpv(\"NoTags\", 0));
break;
case TagLib::MPC::File::ID3v1:
$arg = sv_2mortal(newSVpv(\"ID3v1\", 0));
break;
case TagLib::MPC::File::ID3v2:
$arg = sv_2mortal(newSVpv(\"ID3v2\", 0));
break;
case TagLib::MPC::File::APE:
$arg = sv_2mortal(newSVpv(\"APE\", 0));
break;
default:
/* TagLib::MPC::File::AllTags */
$arg = sv_2mortal(newSVpv(\"AllTags\", 0));
}
################################################################
INPUT
TL_OBJECT
if (sv_isobject($arg) && sv_derived_from($arg, \"Audio::${subtype}\"))
$var = INT2PTR($type, SvIV((SV *)SvRV($arg)));
else
Perl_croak(aTHX_ \"$var is not of type Audio::${subtype}\")
TL_PTRLIST
if (sv_isobject($arg) && sv_derived_from($arg, \"Audio::${subtype}\"))
$var = INT2PTR($type, SvIV(SvRV(
*av_fetch((AV *)SvRV($arg), 0, 0))));
else
Perl_croak(aTHX_ \"$var is not of type Audio::${subtype}\")
TL_APE_ITEM_ITEMTYPES
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Text\", 4) == 0)
$var = TagLib::APE::Item::Text;
else if(strncasecmp(SvPVX($arg), \"Binary\", 6) == 0)
$var = TagLib::APE::Item::Binary;
else if(strncasecmp(SvPVX($arg), \"Locator\", 7) == 0)
$var = TagLib::APE::Item::Locator;
else
Perl_croak(aTHX_ \"$var is not of value Text/Binary/Locator\")
TL_AUDIOPROPERTIES_READSTYLE
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Fast\", 4) == 0)
$var = TagLib::AudioProperties::Fast;
else if(strncasecmp(SvPVX($arg), \"Average\", 7) == 0)
$var = TagLib::AudioProperties::Average;
else if(strncasecmp(SvPVX($arg), \"Accurate\", 8) == 0)
$var = TagLib::AudioProperties::Accurate;
else
Perl_croak(aTHX_ \"$var is not of value Fast/Average/Accurate\")
TL_MPEG_HEADER_VERSION
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Version1\", 8) == 0)
$var = TagLib::MPEG::Header::Version1;
else if(strncasecmp(SvPVX($arg), \"Version2\", 8) == 0)
$var = TagLib::MPEG::Header::Version2;
else if(strncasecmp(SvPVX($arg), \"Version2_5\", 10) == 0)
$var = TagLib::MPEG::Header::Version2_5;
else
Perl_croak(aTHX_ \"$var is not of value Version1/Version2/Version2_5\")
TL_MPEG_HEADER_CHANNELMODE
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Stereo\", 6) == 0)
$var = TagLib::MPEG::Header::Stereo;
else if(strncasecmp(SvPVX($arg), \"JointStereo\", 11) == 0)
$var = TagLib::MPEG::Header::JointStereo;
else if(strncasecmp(SvPVX($arg), \"DualChannel\", 11) == 0)
$var = TagLib::MPEG::Header::DualChannel;
else if(strncasecmp(SvPVX($arg), \"SingleChannel\", 13) == 0)
$var = TagLib::MPEG::Header::SingleChannel;
else
Perl_croak(aTHX_ \"$var is not of value Stereo/JointStereo/DualChannel/SingleChannel\")
TL_FILE_POSITION
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Beginning\", 9) == 0)
$var = TagLib::File::Beginning;
else if(strncasecmp(SvPVX($arg), \"Current\", 7) == 0)
$var = TagLib::File::Current;
else if(strncasecmp(SvPVX($arg), \"End\", 3) == 0)
$var = TagLib::File::End;
else
Perl_croak(aTHX_ \"$var is not of value Beginning/Current/End\")
TL_STRING_TYPE
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Latin1\", 6) == 0)
$var = TagLib::String::Latin1;
else if(strncasecmp(SvPVX($arg), \"UTF8\", 4) == 0)
$var = TagLib::String::UTF8;
else if(strncasecmp(SvPVX($arg), \"UTF16BE\", 7) == 0)
$var = TagLib::String::UTF16BE;
else if(strncasecmp(SvPVX($arg), \"UTF16LE\", 7) == 0)
$var = TagLib::String::UTF16LE;
else if(strncasecmp(SvPVX($arg), \"UTF16\", 5) == 0)
$var = TagLib::String::UTF16;
else
Perl_croak(aTHX_ \"$var is not of value Latin1/UTF8/UTF16BE/UTF16LE/UTF16\")
TL_OGG_PAGE_CONTAINSPACKETFLAGS
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"DoesNotContainPacket\", 20) == 0)
$var = TagLib::Ogg::Page::DoesNotContainPacket;
else if(strncasecmp(SvPVX($arg), \"CompletePacket\", 14) == 0)
$var = TagLib::Ogg::Page::CompletePacket;
else if(strncasecmp(SvPVX($arg), \"BeginsWithPacket\", 16) == 0)
$var = TagLib::Ogg::Page::BeginsWithPacket;
else if(strncasecmp(SvPVX($arg), \"EndsWithPacket\", 14) == 0)
$var = TagLib::Ogg::Page::EndsWithPacket;
else
Perl_croak(aTHX_ \"$var is not of value DoesNotContainPacket\\
/CompletePacket/BeginsWithPacket/EndsWithPacket\")
TL_OGG_PAGE_PAGINATIONSTRATEGY
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"SinglePagePerGroup\", 18) == 0)
$var = TagLib::Ogg::Page::SinglePagePerGroup;
else if(strncasecmp(SvPVX($arg), \"Repaginate\", 10) == 0)
$var = TagLib::Ogg::Page::Repaginate;
else
Perl_croak(aTHX_ \"$var is not of value SinglePagePerlGroup/Repaginate\")
TL_ID3V2_ATTACHEDPICTUREFRAME_TYPE
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if (strncasecmp(SvPVX($arg), \"Other\", 5) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Other;
else if(strncasecmp(SvPVX($arg), \"FileIcon\", 8) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::FileIcon;
else if(strncasecmp(SvPVX($arg), \"OtherFileIcon\", 13) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::OtherFileIcon;
else if(strncasecmp(SvPVX($arg), \"FrontCover\", 10) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::FrontCover;
else if(strncasecmp(SvPVX($arg), \"BackCover\", 9) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::BackCover;
else if(strncasecmp(SvPVX($arg), \"LeafletPage\", 11) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::LeafletPage;
else if(strncasecmp(SvPVX($arg), \"Media\", 5) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Media;
else if(strncasecmp(SvPVX($arg), \"LeadArtist\", 10) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::LeadArtist;
else if(strncasecmp(SvPVX($arg), \"Artist\", 6) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Artist;
else if(strncasecmp(SvPVX($arg), \"Conductor\", 9) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Conductor;
else if(strncasecmp(SvPVX($arg), \"Band\", 4) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Band;
else if(strncasecmp(SvPVX($arg), \"Composer\", 8) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Composer;
else if(strncasecmp(SvPVX($arg), \"Lyricist\", 8) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Lyricist;
else if(strncasecmp(SvPVX($arg), \"RecordingLocation\", 17) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::RecordingLocation;
else if(strncasecmp(SvPVX($arg), \"DuringRecording\", 15) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::DuringRecording;
else if(strncasecmp(SvPVX($arg), \"DuringPerformance\", 17) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::DuringPerformance;
else if(strncasecmp(SvPVX($arg), \"MovieScreenCapture\", 18) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::MovieScreenCapture;
else if(strncasecmp(SvPVX($arg), \"ColouredFish\", 12) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::ColouredFish;
else if(strncasecmp(SvPVX($arg), \"Illustration\", 12) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::Illustration;
else if(strncasecmp(SvPVX($arg), \"BandLogo\", 8) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::BandLogo;
else if(strncasecmp(SvPVX($arg), \"PublisherLogo\", 13) == 0)
$var = TagLib::ID3v2::AttachedPictureFrame::PublisherLogo;
else
Perl_croak(aTHX_ \"$var is not of type TagLib::ID3v2::AttachedPictureFrame::Type\")
TL_ID3V2_RELATIVEVOLUMEFRAME_CHANNELTYPE
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$arg is not a string\");
if(strncasecmp(SvPVX($arg), \"Other\", 5) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::Other;
else if(strncasecmp(SvPVX($arg), \"MasterVolume\", 12) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::MasterVolume;
else if(strncasecmp(SvPVX($arg), \"FrontRight\", 10) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::FrontRight;
else if(strncasecmp(SvPVX($arg), \"FrontLeft\", 9) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::FrontLeft;
else if(strncasecmp(SvPVX($arg), \"BackRight\", 9) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::BackRight;
else if(strncasecmp(SvPVX($arg), \"BackLeft\", 8) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::BackLeft;
else if(strncasecmp(SvPVX($arg), \"FrontCentre\", 11) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::FrontCentre;
else if(strncasecmp(SvPVX($arg), \"BackCentre\", 10) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::BackCentre;
else if(strncasecmp(SvPVX($arg), \"Subwoofer\", 9) == 0)
$var = TagLib::ID3v2::RelativeVolumeFrame::Subwoofer;
else
Perl_croak(aTHX_ \"$var is not of type TagLib::ID3v2::RelativeVolumeFrame::ChannelType\")
TL_MPC_FILE_TAGTYPES
if(!SvPOK($arg))
Perl_croak(aTHX_ \"$var is not of type TagLib::MPC::File::TagTypes\");
if(strncasecmp(SvPVX($arg), \"NoTags\", 5) == 0)
$var = TagLib::MPC::File::NoTags;
else if(strncasecmp(SvPVX($arg), \"ID3v1\", 5) == 0)
$var = TagLib::MPC::File::ID3v1;
` else if(strncasecmp(SvPVX($arg), \"ID3v2\", 5) == 0)
$var = TagLib::MPC::File::ID3v2;
else if(strncasecmp(SvPVX($arg), \"APE\", 3) == 0)
$var = TagLib::MPC::File::APE;
else if(strncasecmp(SvPVX($arg), \"AllTags\", 7) == 0)
$var = TagLib::MPC::File::AllTags;
else
Perl_croak(aTHX_ \"$var is not of type TagLib::MPC::File::TagTypes\")