本文整理汇总了C++中CMusicInfoTag::SetReplayGain方法的典型用法代码示例。如果您正苦于以下问题:C++ CMusicInfoTag::SetReplayGain方法的具体用法?C++ CMusicInfoTag::SetReplayGain怎么用?C++ CMusicInfoTag::SetReplayGain使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMusicInfoTag
的用法示例。
在下文中一共展示了CMusicInfoTag::SetReplayGain方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ParseTag
bool CTagLoaderTagLib::ParseTag(ASF::Tag *asf, EmbeddedArt *art, CMusicInfoTag& tag)
{
if (!asf)
return false;
ReplayGain replayGainInfo;
tag.SetTitle(asf->title().to8Bit(true));
const ASF::AttributeListMap& attributeListMap = asf->attributeListMap();
for (ASF::AttributeListMap::ConstIterator it = attributeListMap.begin(); it != attributeListMap.end(); ++it)
{
if (it->first == "Author")
SetArtist(tag, GetASFStringList(it->second));
else if (it->first == "WM/AlbumArtist")
SetAlbumArtist(tag, GetASFStringList(it->second));
else if (it->first == "WM/AlbumTitle")
tag.SetAlbum(it->second.front().toString().to8Bit(true));
else if (it->first == "WM/TrackNumber" ||
it->first == "WM/Track")
{
if (it->second.front().type() == ASF::Attribute::DWordType)
tag.SetTrackNumber(it->second.front().toUInt());
else
tag.SetTrackNumber(atoi(it->second.front().toString().toCString(true)));
}
else if (it->first == "WM/PartOfSet")
tag.SetDiscNumber(atoi(it->second.front().toString().toCString(true)));
else if (it->first == "WM/Genre")
SetGenre(tag, GetASFStringList(it->second));
else if (it->first == "WM/Mood")
tag.SetMood(it->second.front().toString().to8Bit(true));
else if (it->first == "WM/AlbumArtistSortOrder")
{} // Known unsupported, supress warnings
else if (it->first == "WM/ArtistSortOrder")
{} // Known unsupported, supress warnings
else if (it->first == "WM/Script")
{} // Known unsupported, supress warnings
else if (it->first == "WM/Year")
tag.SetYear(atoi(it->second.front().toString().toCString(true)));
else if (it->first == "MusicBrainz/Artist Id")
tag.SetMusicBrainzArtistID(SplitMBID(GetASFStringList(it->second)));
else if (it->first == "MusicBrainz/Album Id")
tag.SetMusicBrainzAlbumID(it->second.front().toString().to8Bit(true));
else if (it->first == "MusicBrainz/Album Artist")
SetAlbumArtist(tag, GetASFStringList(it->second));
else if (it->first == "MusicBrainz/Album Artist Id")
tag.SetMusicBrainzAlbumArtistID(SplitMBID(GetASFStringList(it->second)));
else if (it->first == "MusicBrainz/Track Id")
tag.SetMusicBrainzTrackID(it->second.front().toString().to8Bit(true));
else if (it->first == "MusicBrainz/Album Status")
{}
else if (it->first == "MusicBrainz/Album Type")
{}
else if (it->first == "MusicIP/PUID")
{}
else if (it->first == "replaygain_track_gain")
replayGainInfo.ParseGain(ReplayGain::TRACK, it->second.front().toString().toCString(true));
else if (it->first == "replaygain_album_gain")
replayGainInfo.ParseGain(ReplayGain::ALBUM, it->second.front().toString().toCString(true));
else if (it->first == "replaygain_track_peak")
replayGainInfo.ParsePeak(ReplayGain::TRACK, it->second.front().toString().toCString(true));
else if (it->first == "replaygain_album_peak")
replayGainInfo.ParsePeak(ReplayGain::ALBUM, it->second.front().toString().toCString(true));
else if (it->first == "WM/Picture")
{ // picture
ASF::Picture pic = it->second.front().toPicture();
tag.SetCoverArtInfo(pic.picture().size(), pic.mimeType().toCString());
if (art)
art->set((const uint8_t *)pic.picture().data(), pic.picture().size(), pic.mimeType().toCString());
}
else if (g_advancedSettings.m_logLevel == LOG_LEVEL_MAX)
CLog::Log(LOGDEBUG, "unrecognized ASF tag name: %s", it->first.toCString(true));
}
// artist may be specified in the ContentDescription block rather than using the 'Author' attribute.
if (tag.GetArtist().empty())
tag.SetArtist(asf->artist().toCString(true));
if (asf->comment() != String::null)
tag.SetComment(asf->comment().toCString(true));
tag.SetReplayGain(replayGainInfo);
tag.SetLoaded(true);
return true;
}
示例2: ParseTag
//.........这里部分代码省略.........
MP4::ItemListMap& itemListMap = mp4->itemListMap();
for (MP4::ItemListMap::ConstIterator it = itemListMap.begin(); it != itemListMap.end(); ++it)
{
if (it->first == "\251nam")
tag.SetTitle(it->second.toStringList().front().to8Bit(true));
else if (it->first == "\251ART")
SetArtist(tag, StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:ARTISTS")
SetArtistHints(tag, StringListToVectorString(it->second.toStringList()));
else if (it->first == "\251alb")
tag.SetAlbum(it->second.toStringList().front().to8Bit(true));
else if (it->first == "aART")
SetAlbumArtist(tag, StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:ALBUMARTISTS")
SetAlbumArtistHints(tag, StringListToVectorString(it->second.toStringList()));
else if (it->first == "\251gen")
SetGenre(tag, StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:MOOD")
tag.SetMood(it->second.toStringList().front().to8Bit(true));
else if (it->first == "\251cmt")
tag.SetComment(it->second.toStringList().front().to8Bit(true));
else if (it->first == "\251wrt")
AddArtistRole(tag, "Composer", StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:CONDUCTOR")
AddArtistRole(tag, "Conductor", StringListToVectorString(it->second.toStringList()));
//No MP4 standard tag for "ensemble"
else if (it->first == "----:com.apple.iTunes:LYRICIST")
AddArtistRole(tag, "Lyricist", StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:REMIXER")
AddArtistRole(tag, "Remixer", StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:ENGINEER")
AddArtistRole(tag, "Engineer", StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:PRODUCER")
AddArtistRole(tag, "Producer", StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:DJMIXER")
AddArtistRole(tag, "DJMixer", StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:MIXER")
AddArtistRole(tag, "Mixer", StringListToVectorString(it->second.toStringList()));
//No MP4 standard tag for musician credits
else if (it->first == "----:com.apple.iTunes:LABEL")
{} // Publisher. Known unsupported, supress warnings
else if (it->first == "cpil")
tag.SetCompilation(it->second.toBool());
else if (it->first == "trkn")
tag.SetTrackNumber(it->second.toIntPair().first);
else if (it->first == "disk")
tag.SetDiscNumber(it->second.toIntPair().first);
else if (it->first == "\251day")
tag.SetYear(it->second.toStringList().front().toInt());
else if (it->first == "----:com.apple.iTunes:replaygain_track_gain")
replayGainInfo.ParseGain(ReplayGain::TRACK, it->second.toStringList().front().toCString());
else if (it->first == "----:com.apple.iTunes:replaygain_album_gain")
replayGainInfo.ParseGain(ReplayGain::ALBUM, it->second.toStringList().front().toCString());
else if (it->first == "----:com.apple.iTunes:replaygain_track_peak")
replayGainInfo.ParsePeak(ReplayGain::TRACK, it->second.toStringList().front().toCString());
else if (it->first == "----:com.apple.iTunes:replaygain_album_peak")
replayGainInfo.ParsePeak(ReplayGain::ALBUM, it->second.toStringList().front().toCString());
else if (it->first == "----:com.apple.iTunes:MusicBrainz Artist Id")
tag.SetMusicBrainzArtistID(SplitMBID(StringListToVectorString(it->second.toStringList())));
else if (it->first == "----:com.apple.iTunes:MusicBrainz Album Artist Id")
tag.SetMusicBrainzAlbumArtistID(SplitMBID(StringListToVectorString(it->second.toStringList())));
else if (it->first == "----:com.apple.iTunes:MusicBrainz Album Artist")
SetAlbumArtist(tag, StringListToVectorString(it->second.toStringList()));
else if (it->first == "----:com.apple.iTunes:MusicBrainz Album Id")
tag.SetMusicBrainzAlbumID(it->second.toStringList().front().to8Bit(true));
else if (it->first == "----:com.apple.iTunes:MusicBrainz Track Id")
tag.SetMusicBrainzTrackID(it->second.toStringList().front().to8Bit(true));
else if (it->first == "covr")
{
MP4::CoverArtList coverArtList = it->second.toCoverArtList();
for (MP4::CoverArtList::ConstIterator pt = coverArtList.begin(); pt != coverArtList.end(); ++pt)
{
std::string mime;
switch (pt->format())
{
case MP4::CoverArt::PNG:
mime = "image/png";
break;
case MP4::CoverArt::JPEG:
mime = "image/jpeg";
break;
default:
break;
}
if (mime.empty())
continue;
tag.SetCoverArtInfo(pt->data().size(), mime);
if (art)
art->set(reinterpret_cast<const uint8_t *>(pt->data().data()), pt->data().size(), mime);
break; // one is enough
}
}
}
if (mp4->comment() != String::null)
tag.SetComment(mp4->comment().toCString(true));
tag.SetReplayGain(replayGainInfo);
return true;
}