本文整理汇总了C++中music_info::CMusicInfoTag::SetReplayGain方法的典型用法代码示例。如果您正苦于以下问题:C++ CMusicInfoTag::SetReplayGain方法的具体用法?C++ CMusicInfoTag::SetReplayGain怎么用?C++ CMusicInfoTag::SetReplayGain使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类music_info::CMusicInfoTag
的用法示例。
在下文中一共展示了CMusicInfoTag::SetReplayGain方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ParseTag
//.........这里部分代码省略.........
tag.SetMusicBrainzAlbumArtistID(SplitMBID(StringListToVectorString(stringList)));
else if (desc == "MUSICBRAINZ ALBUM ARTIST")
SetAlbumArtist(tag, StringListToVectorString(stringList));
else if (desc == "REPLAYGAIN_TRACK_GAIN")
replayGainInfo.ParseGain(ReplayGain::TRACK, stringList.front().toCString(true));
else if (desc == "REPLAYGAIN_ALBUM_GAIN")
replayGainInfo.ParseGain(ReplayGain::ALBUM, stringList.front().toCString(true));
else if (desc == "REPLAYGAIN_TRACK_PEAK")
replayGainInfo.ParsePeak(ReplayGain::TRACK, stringList.front().toCString(true));
else if (desc == "REPLAYGAIN_ALBUM_PEAK")
replayGainInfo.ParsePeak(ReplayGain::ALBUM, stringList.front().toCString(true));
else if (desc == "ALBUMARTIST" || desc == "ALBUM ARTIST")
SetAlbumArtist(tag, StringListToVectorString(stringList));
else if (desc == "ARTISTS")
{
if (id3v2->header()->majorVersion() < 4)
tag.SetMusicBrainzArtistHints(StringListToVectorString(TagLib::StringList::split(stringList.front(), TagLib::String("/"))));
else
tag.SetMusicBrainzArtistHints(StringListToVectorString(stringList));
}
else if (desc == "ALBUMARTISTS" || desc == "ALBUM ARTISTS")
{
if (id3v2->header()->majorVersion() < 4)
tag.SetMusicBrainzAlbumArtistHints(StringListToVectorString(TagLib::StringList::split(stringList.front(), TagLib::String("/"))));
else
tag.SetMusicBrainzAlbumArtistHints(StringListToVectorString(stringList));
}
else if (desc == "MOOD")
tag.SetMood(stringList.front().to8Bit(true));
else if (g_advancedSettings.m_logLevel == LOG_LEVEL_MAX)
CLog::Log(LOGDEBUG, "unrecognized user text tag detected: TXXX:%s", frame->description().toCString(true));
}
else if (it->first == "UFID")
// Loop through any UFID frames and set them
for (ID3v2::FrameList::ConstIterator ut = it->second.begin(); ut != it->second.end(); ++ut)
{
ID3v2::UniqueFileIdentifierFrame *ufid = reinterpret_cast<ID3v2::UniqueFileIdentifierFrame*> (*ut);
if (ufid->owner() == "http://musicbrainz.org")
{
// MusicBrainz pads with a \0, but the spec requires binary, be cautious
char cUfid[64];
int max_size = std::min((int)ufid->identifier().size(), 63);
strncpy(cUfid, ufid->identifier().data(), max_size);
cUfid[max_size] = '\0';
tag.SetMusicBrainzTrackID(cUfid);
}
}
else if (it->first == "APIC")
// Loop through all pictures and store the frame pointers for the picture types we want
for (ID3v2::FrameList::ConstIterator pi = it->second.begin(); pi != it->second.end(); ++pi)
{
ID3v2::AttachedPictureFrame *pictureFrame = dynamic_cast<ID3v2::AttachedPictureFrame *> (*pi);
if (!pictureFrame) continue;
if (pictureFrame->type() == ID3v2::AttachedPictureFrame::FrontCover) pictures[0] = pictureFrame;
else if (pictureFrame->type() == ID3v2::AttachedPictureFrame::Other) pictures[1] = pictureFrame;
else if (pi == it->second.begin()) pictures[2] = pictureFrame;
}
else if (it->first == "POPM")
// Loop through and process ratings
for (ID3v2::FrameList::ConstIterator ct = it->second.begin(); ct != it->second.end(); ++ct)
{
ID3v2::PopularimeterFrame *popFrame = dynamic_cast<ID3v2::PopularimeterFrame *> (*ct);
if (!popFrame) continue;
// @xbmc.org ratings trump others (of course)
if (popFrame->email() == "[email protected]")
tag.SetUserrating(popFrame->rating() / 51 + '0');
else if (tag.GetUserrating() == '0')
{
if (popFrame->email() != "Windows Media Player 9 Series" &&
popFrame->email() != "Banshee" &&
popFrame->email() != "[email protected]" &&
popFrame->email() != "[email protected]" &&
popFrame->email() != "[email protected]")
CLog::Log(LOGDEBUG, "unrecognized ratings schema detected: %s", popFrame->email().toCString(true));
tag.SetUserrating(POPMtoXBMC(popFrame->rating()));
}
}
else if (g_advancedSettings.m_logLevel == LOG_LEVEL_MAX)
CLog::Log(LOGDEBUG, "unrecognized ID3 frame detected: %c%c%c%c", it->first[0], it->first[1], it->first[2], it->first[3]);
} // for
// Process the extracted picture frames; 0 = CoverArt, 1 = Other, 2 = First Found picture
for (int i = 0; i < 3; ++i)
if (pictures[i])
{
std::string mime = pictures[i]->mimeType().to8Bit(true);
TagLib::uint size = pictures[i]->picture().size();
tag.SetCoverArtInfo(size, mime);
if (art)
art->set((const uint8_t*)pictures[i]->picture().data(), size, mime);
// Stop after we find the first picture for now.
break;
}
tag.SetReplayGain(replayGainInfo);
return true;
}