本文整理汇总了C++中CMusicInfoTag::SetMood方法的典型用法代码示例。如果您正苦于以下问题:C++ CMusicInfoTag::SetMood方法的具体用法?C++ CMusicInfoTag::SetMood怎么用?C++ CMusicInfoTag::SetMood使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMusicInfoTag
的用法示例。
在下文中一共展示了CMusicInfoTag::SetMood方法的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
bool CTagLoaderTagLib::ParseTag(Ogg::XiphComment *xiph, EmbeddedArt *art, CMusicInfoTag& tag)
{
if (!xiph)
return false;
FLAC::Picture pictures[3];
ReplayGain replayGainInfo;
const Ogg::FieldListMap& fieldListMap = xiph->fieldListMap();
for (Ogg::FieldListMap::ConstIterator it = fieldListMap.begin(); it != fieldListMap.end(); ++it)
{
if (it->first == "ARTIST")
SetArtist(tag, StringListToVectorString(it->second));
else if (it->first == "ARTISTS")
SetArtistHints(tag, StringListToVectorString(it->second));
else if (it->first == "ALBUMARTIST" || it->first == "ALBUM ARTIST")
SetAlbumArtist(tag, StringListToVectorString(it->second));
else if (it->first == "ALBUMARTISTS" || it->first == "ALBUM ARTISTS")
SetAlbumArtistHints(tag, StringListToVectorString(it->second));
else if (it->first == "ALBUM")
tag.SetAlbum(it->second.front().to8Bit(true));
else if (it->first == "TITLE")
tag.SetTitle(it->second.front().to8Bit(true));
else if (it->first == "TRACKNUMBER")
tag.SetTrackNumber(it->second.front().toInt());
else if (it->first == "DISCNUMBER")
tag.SetDiscNumber(it->second.front().toInt());
else if (it->first == "YEAR")
tag.SetYear(it->second.front().toInt());
else if (it->first == "DATE")
tag.SetYear(it->second.front().toInt());
else if (it->first == "GENRE")
SetGenre(tag, StringListToVectorString(it->second));
else if (it->first == "MOOD")
tag.SetMood(it->second.front().to8Bit(true));
else if (it->first == "COMMENT")
tag.SetComment(it->second.front().to8Bit(true));
else if (it->first == "CUESHEET")
tag.SetCueSheet(it->second.front().to8Bit(true));
else if (it->first == "ENCODEDBY")
{} // Known but unsupported, supress warnings
else if (it->first == "COMPOSER")
AddArtistRole(tag, "Composer", StringListToVectorString(it->second));
else if (it->first == "CONDUCTOR")
AddArtistRole(tag, "Conductor", StringListToVectorString(it->second));
else if ((it->first == "BAND") || (it->first == "ENSEMBLE"))
AddArtistRole(tag, "Orchestra", StringListToVectorString(it->second));
else if (it->first == "LYRICIST")
AddArtistRole(tag, "Lyricist", StringListToVectorString(it->second));
else if (it->first == "MIXARTIST")
AddArtistRole(tag, "Remixer", StringListToVectorString(it->second));
else if (it->first == "ARRANGER")
AddArtistRole(tag, "Arranger", StringListToVectorString(it->second));
else if (it->first == "ENGINEER")
AddArtistRole(tag, "Engineer", StringListToVectorString(it->second));
else if (it->first == "PRODUCER")
AddArtistRole(tag, "Producer", StringListToVectorString(it->second));
else if (it->first == "DJMIXER")
AddArtistRole(tag, "DJMixer", StringListToVectorString(it->second));
else if (it->first == "MIXER")
AddArtistRole(tag, "Mixer", StringListToVectorString(it->second));
else if (it->first == "PERFORMER")
// Picard uses PERFORMER tag as musician credits list formatted "name (instrument)"
AddArtistInstrument(tag, StringListToVectorString(it->second));
else if (it->first == "LABEL")
{} // Publisher. Known unsupported, supress warnings
else if (it->first == "COMPILATION")
tag.SetCompilation(it->second.front().toInt() == 1);
else if (it->first == "LYRICS")
tag.SetLyrics(it->second.front().to8Bit(true));
else if (it->first == "REPLAYGAIN_TRACK_GAIN")
replayGainInfo.ParseGain(ReplayGain::TRACK, it->second.front().toCString(true));
else if (it->first == "REPLAYGAIN_ALBUM_GAIN")
replayGainInfo.ParseGain(ReplayGain::ALBUM, it->second.front().toCString(true));
else if (it->first == "REPLAYGAIN_TRACK_PEAK")
replayGainInfo.ParsePeak(ReplayGain::TRACK, it->second.front().toCString(true));
else if (it->first == "REPLAYGAIN_ALBUM_PEAK")
replayGainInfo.ParsePeak(ReplayGain::ALBUM, it->second.front().toCString(true));
else if (it->first == "MUSICBRAINZ_ARTISTID")
tag.SetMusicBrainzArtistID(SplitMBID(StringListToVectorString(it->second)));
else if (it->first == "MUSICBRAINZ_ALBUMARTISTID")
tag.SetMusicBrainzAlbumArtistID(SplitMBID(StringListToVectorString(it->second)));
else if (it->first == "MUSICBRAINZ_ALBUMARTIST")
SetAlbumArtist(tag, StringListToVectorString(it->second));
else if (it->first == "MUSICBRAINZ_ALBUMID")
tag.SetMusicBrainzAlbumID(it->second.front().to8Bit(true));
else if (it->first == "MUSICBRAINZ_TRACKID")
tag.SetMusicBrainzTrackID(it->second.front().to8Bit(true));
else if (it->first == "RATING")
{
// Vorbis ratings are a mess because the standard forgot to mention anything about them.
// If you want to see how emotive the issue is and the varying standards, check here:
// http://forums.winamp.com/showthread.php?t=324512
// The most common standard in that thread seems to be a 0-100 scale for 1-5 stars.
// So, that's what we'll support for now.
int iUserrating = it->second.front().toInt();
if (iUserrating > 0 && iUserrating <= 100)
tag.SetUserrating((iUserrating / 10));
}
else if (it->first == "METADATA_BLOCK_PICTURE")
//.........这里部分代码省略.........