本文整理汇总了C++中music_info::CMusicInfoTag::GetArtist方法的典型用法代码示例。如果您正苦于以下问题:C++ CMusicInfoTag::GetArtist方法的具体用法?C++ CMusicInfoTag::GetArtist怎么用?C++ CMusicInfoTag::GetArtist使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类music_info::CMusicInfoTag
的用法示例。
在下文中一共展示了CMusicInfoTag::GetArtist方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddSong
void CScrobbler::AddSong(const MUSIC_INFO::CMusicInfoTag &tag, bool lastfmradio)
{
ClearSubmissionState();
if (!CanScrobble() || !tag.Loaded())
return;
if (tag.GetArtist().empty() || tag.GetTitle().IsEmpty())
return;
// our tags are stored as UTF-8, so no conversion needed
m_CurrentTrack.length = tag.GetDuration();
m_CurrentTrack.strArtist = StringUtils::Join(tag.GetArtist(), g_advancedSettings.m_musicItemSeparator);
m_CurrentTrack.strAlbum = tag.GetAlbum();
m_CurrentTrack.strTitle = tag.GetTitle();
m_CurrentTrack.strMusicBrainzID = tag.GetMusicBrainzTrackID();
if (lastfmradio) // TODO Set source more appropriately
m_CurrentTrack.strSource = "L" + tag.GetComment();
else
m_CurrentTrack.strSource = "P";
m_CurrentTrack.strRating = "";
m_CurrentTrack.strLength.Format("%d", m_CurrentTrack.length);
m_CurrentTrack.strStartTime.Format("%d", time(NULL));
m_CurrentTrack.strTrackNum.Format("%d",tag.GetTrackNumber());
CURL::Encode(m_CurrentTrack.strArtist);
CURL::Encode(m_CurrentTrack.strTitle);
CURL::Encode(m_CurrentTrack.strAlbum);
CURL::Encode(m_CurrentTrack.strMusicBrainzID);
m_bNotified = false;
m_bSubmitted = !((lastfmradio && g_guiSettings.GetBool("scrobbler.lastfmsubmitradio")) ||
(!lastfmradio && g_guiSettings.GetBool("scrobbler.lastfmsubmit") && (m_CurrentTrack.length > SCROBBLER_MIN_DURATION || !m_CurrentTrack.strMusicBrainzID.IsEmpty())));
}
示例2: GetAlbumDirName
CStdString CCDDARipper::GetAlbumDirName(const MUSIC_INFO::CMusicInfoTag& infoTag)
{
CStdString strAlbumDir;
// use audiocds.trackpathformat setting to format
// directory name where CD tracks will be stored,
// use only format part ending at the last '/'
strAlbumDir = CSettings::Get().GetString("audiocds.trackpathformat");
int pos = max(strAlbumDir.ReverseFind('/'), strAlbumDir.ReverseFind('\\'));
if (pos < 0)
return ""; // no directory
strAlbumDir = strAlbumDir.Left(pos);
// replace %A with album artist name
if (strAlbumDir.Find("%A") != -1)
{
CStdString strAlbumArtist = StringUtils::Join(infoTag.GetAlbumArtist(), g_advancedSettings.m_musicItemSeparator);
if (strAlbumArtist.IsEmpty())
strAlbumArtist = StringUtils::Join(infoTag.GetArtist(), g_advancedSettings.m_musicItemSeparator);
if (strAlbumArtist.IsEmpty())
strAlbumArtist = "Unknown Artist";
else
strAlbumArtist.Replace('/', '_');
strAlbumDir.Replace("%A", strAlbumArtist);
}
// replace %B with album title
if (strAlbumDir.Find("%B") != -1)
{
CStdString strAlbum = infoTag.GetAlbum();
if (strAlbum.IsEmpty())
strAlbum.Format("Unknown Album %s", CDateTime::GetCurrentDateTime().GetAsLocalizedDateTime().c_str());
else
strAlbum.Replace('/', '_');
strAlbumDir.Replace("%B", strAlbum);
}
// replace %G with genre
if (strAlbumDir.Find("%G") != -1)
{
CStdString strGenre = StringUtils::Join(infoTag.GetGenre(), g_advancedSettings.m_musicItemSeparator);
if (strGenre.IsEmpty())
strGenre = "Unknown Genre";
else
strGenre.Replace('/', '_');
strAlbumDir.Replace("%G", strGenre);
}
// replace %Y with year
if (strAlbumDir.Find("%Y") != -1)
{
CStdString strYear = infoTag.GetYearString();
if (strYear.IsEmpty())
strYear = "Unknown Year";
else
strYear.Replace('/', '_');
strAlbumDir.Replace("%Y", strYear);
}
return strAlbumDir;
}
示例3: GetAlbumDirName
std::string CCDDARipper::GetAlbumDirName(const MUSIC_INFO::CMusicInfoTag& infoTag)
{
std::string strAlbumDir;
// use audiocds.trackpathformat setting to format
// directory name where CD tracks will be stored,
// use only format part ending at the last '/'
strAlbumDir = CSettings::GetInstance().GetString(CSettings::SETTING_AUDIOCDS_TRACKPATHFORMAT);
size_t pos = strAlbumDir.find_last_of("/\\");
if (pos == std::string::npos)
return ""; // no directory
strAlbumDir = strAlbumDir.substr(0, pos);
// replace %A with album artist name
if (strAlbumDir.find("%A") != std::string::npos)
{
std::string strAlbumArtist = StringUtils::Join(infoTag.GetAlbumArtist(), g_advancedSettings.m_musicItemSeparator);
if (strAlbumArtist.empty())
strAlbumArtist = StringUtils::Join(infoTag.GetArtist(), g_advancedSettings.m_musicItemSeparator);
if (strAlbumArtist.empty())
strAlbumArtist = "Unknown Artist";
else
StringUtils::Replace(strAlbumArtist, '/', '_');
StringUtils::Replace(strAlbumDir, "%A", strAlbumArtist);
}
// replace %B with album title
if (strAlbumDir.find("%B") != std::string::npos)
{
std::string strAlbum = infoTag.GetAlbum();
if (strAlbum.empty())
strAlbum = StringUtils::Format("Unknown Album %s", CDateTime::GetCurrentDateTime().GetAsLocalizedDateTime().c_str());
else
StringUtils::Replace(strAlbum, '/', '_');
StringUtils::Replace(strAlbumDir, "%B", strAlbum);
}
// replace %G with genre
if (strAlbumDir.find("%G") != std::string::npos)
{
std::string strGenre = StringUtils::Join(infoTag.GetGenre(), g_advancedSettings.m_musicItemSeparator);
if (strGenre.empty())
strGenre = "Unknown Genre";
else
StringUtils::Replace(strGenre, '/', '_');
StringUtils::Replace(strAlbumDir, "%G", strGenre);
}
// replace %Y with year
if (strAlbumDir.find("%Y") != std::string::npos)
{
std::string strYear = infoTag.GetYearString();
if (strYear.empty())
strYear = "Unknown Year";
else
StringUtils::Replace(strYear, '/', '_');
StringUtils::Replace(strAlbumDir, "%Y", strYear);
}
return strAlbumDir;
}