本文整理汇总了C++中taglib::id3v2::Tag::removeFrame方法的典型用法代码示例。如果您正苦于以下问题:C++ Tag::removeFrame方法的具体用法?C++ Tag::removeFrame怎么用?C++ Tag::removeFrame使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类taglib::id3v2::Tag
的用法示例。
在下文中一共展示了Tag::removeFrame方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
/*!
* \brief Remove the albumart image from the file
*
* \param filename The music file to remove the albumart
* \param albumart The Album Art image to remove
* \returns True if successful
*/
bool MetaIOID3::removeAlbumArt(const QString &filename, const AlbumArtImage *albumart)
{
if (filename.isEmpty() || !albumart)
return false;
AttachedPictureFrame::Type type = AttachedPictureFrame::Other;
switch (albumart->imageType)
{
case IT_FRONTCOVER:
type = AttachedPictureFrame::FrontCover;
break;
case IT_BACKCOVER:
type = AttachedPictureFrame::BackCover;
break;
case IT_CD:
type = AttachedPictureFrame::Media;
break;
case IT_INLAY:
type = AttachedPictureFrame::LeafletPage;
break;
default:
type = AttachedPictureFrame::Other;
break;
}
TagLib::MPEG::File *mpegfile = OpenFile(filename);
if (!mpegfile)
return false;
TagLib::ID3v2::Tag *tag = mpegfile->ID3v2Tag();
if (!tag)
{
delete mpegfile;
return false;
}
AttachedPictureFrame *apic = findAPIC(tag, type, QStringToTString(albumart->description));
if (!apic)
{
delete mpegfile;
return false;
}
tag->removeFrame(apic);
mpegfile->save();
delete mpegfile;
return true;
}
示例2: switch
/*!
* \brief Remove the albumart image from the file
*
* \param filename The music file to remove the albumart
* \param albumart The Album Art image to remove
* \returns True if successful
*/
bool MetaIOID3::removeAlbumArt(const QString &filename,
const AlbumArtImage *albumart)
{
if (filename.isEmpty() || !albumart)
return false;
AttachedPictureFrame::Type type = AttachedPictureFrame::Other;
switch (albumart->m_imageType)
{
case IT_FRONTCOVER:
type = AttachedPictureFrame::FrontCover;
break;
case IT_BACKCOVER:
type = AttachedPictureFrame::BackCover;
break;
case IT_CD:
type = AttachedPictureFrame::Media;
break;
case IT_INLAY:
type = AttachedPictureFrame::LeafletPage;
break;
case IT_ARTIST:
type = AttachedPictureFrame::Artist;
break;
default:
type = AttachedPictureFrame::Other;
break;
}
if (!OpenFile(filename, true))
return false;
TagLib::ID3v2::Tag *tag = GetID3v2Tag();
if (!tag)
return false;
AttachedPictureFrame *apic = findAPIC(tag, type,
QStringToTString(albumart->m_description));
if (!apic)
return false;
tag->removeFrame(apic);
if (!SaveFile())
return false;
return true;
}
示例3: if
/*!
* \copydoc MetaIO::write()
*/
bool MetaIOID3::write(const QString &filename, MusicMetadata* mdata)
{
if (filename.isEmpty())
return false;
if (!OpenFile(filename, true))
return false;
TagLib::ID3v2::Tag *tag = GetID3v2Tag();
if (!tag)
return false;
WriteGenericMetadata(tag, mdata);
// MythTV rating and playcount, stored in POPM frame
writeRating(tag, mdata->Rating());
writePlayCount(tag, mdata->PlayCount());
writeLastPlay(tag, mdata->LastPlay());
// MusicBrainz ID
UserTextIdentificationFrame *musicbrainz = nullptr;
musicbrainz = find(tag, "MusicBrainz Album Artist Id");
if (mdata->Compilation())
{
if (!musicbrainz)
{
musicbrainz = new UserTextIdentificationFrame(TagLib::String::UTF8);
tag->addFrame(musicbrainz);
musicbrainz->setDescription("MusicBrainz Album Artist Id");
}
musicbrainz->setText(MYTH_MUSICBRAINZ_ALBUMARTIST_UUID);
}
else if (musicbrainz)
tag->removeFrame(musicbrainz);
// Compilation Artist Frame (TPE4/2)
if (!mdata->CompilationArtist().isEmpty())
{
TextIdentificationFrame *tpe4frame = nullptr;
TagLib::ID3v2::FrameList tpelist = tag->frameListMap()["TPE4"];
if (!tpelist.isEmpty())
tpe4frame = (TextIdentificationFrame *)tpelist.front();
if (!tpe4frame)
{
tpe4frame = new TextIdentificationFrame(TagLib::ByteVector("TPE4"),
TagLib::String::UTF8);
tag->addFrame(tpe4frame);
}
tpe4frame->setText(QStringToTString(mdata->CompilationArtist()));
TextIdentificationFrame *tpe2frame = nullptr;
tpelist = tag->frameListMap()["TPE2"];
if (!tpelist.isEmpty())
tpe2frame = (TextIdentificationFrame *)tpelist.front();
if (!tpe2frame)
{
tpe2frame = new TextIdentificationFrame(TagLib::ByteVector("TPE2"),
TagLib::String::UTF8);
tag->addFrame(tpe2frame);
}
tpe2frame->setText(QStringToTString(mdata->CompilationArtist()));
}
if (!SaveFile())
return false;
return true;
}
示例4: if
/*!
* \copydoc MetaIO::write()
*/
bool MetaIOID3::write(Metadata* mdata)
{
TagLib::MPEG::File *mpegfile = OpenFile(mdata->Filename());
if (!mpegfile)
return false;
TagLib::ID3v2::Tag *tag = mpegfile->ID3v2Tag();
if (!tag)
{
delete mpegfile;
return false;
}
WriteGenericMetadata(tag, mdata);
// MythTV rating and playcount, stored in POPM frame
writeRating(tag, mdata->Rating());
writePlayCount(tag, mdata->PlayCount());
// MusicBrainz ID
UserTextIdentificationFrame *musicbrainz = NULL;
musicbrainz = find(tag, "MusicBrainz Album Artist Id");
if (mdata->Compilation())
{
if (!musicbrainz)
{
musicbrainz = new UserTextIdentificationFrame(TagLib::String::UTF8);
tag->addFrame(musicbrainz);
musicbrainz->setDescription("MusicBrainz Album Artist Id");
}
musicbrainz->setText(MYTH_MUSICBRAINZ_ALBUMARTIST_UUID);
}
else if (musicbrainz)
tag->removeFrame(musicbrainz);
// Compilation Artist Frame (TPE4/2)
if (!mdata->CompilationArtist().isEmpty())
{
TextIdentificationFrame *tpe4frame = NULL;
TagLib::ID3v2::FrameList tpelist = tag->frameListMap()["TPE4"];
if (!tpelist.isEmpty())
tpe4frame = (TextIdentificationFrame *)tpelist.front();
if (!tpe4frame)
{
tpe4frame = new TextIdentificationFrame(TagLib::ByteVector("TPE4"),
TagLib::String::UTF8);
tag->addFrame(tpe4frame);
}
tpe4frame->setText(QStringToTString(mdata->CompilationArtist()));
TextIdentificationFrame *tpe2frame = NULL;
tpelist = tag->frameListMap()["TPE2"];
if (!tpelist.isEmpty())
tpe2frame = (TextIdentificationFrame *)tpelist.front();
if (!tpe2frame)
{
tpe2frame = new TextIdentificationFrame(TagLib::ByteVector("TPE2"),
TagLib::String::UTF8);
tag->addFrame(tpe2frame);
}
tpe2frame->setText(QStringToTString(mdata->CompilationArtist()));
}
bool result = mpegfile->save();
delete mpegfile;
return result;
}