CArtist CPFCManager::GetArtistInfo(const CStdString& strPath) { CArtist resultAlbum; TiXmlDocument xmlDocument; if (!GetDefsFile(strPath, xmlDocument)) return resultAlbum; TiXmlElement *artistElement = xmlDocument.RootElement()->FirstChildElement("artist"); if (artistElement) { resultAlbum.Load(artistElement, true, true); } return resultAlbum; }
INFO_RET CMusicInfoScanner::UpdateDatabaseArtistInfo(CArtist& artist, const ADDON::ScraperPtr& scraper, bool bAllowSelection, CGUIDialogProgress* pDialog /* = NULL */) { if (!scraper) return INFO_ERROR; CMusicArtistInfo artistInfo; loop: CLog::Log(LOGDEBUG, "%s downloading info for: %s", __FUNCTION__, artist.strArtist.c_str()); INFO_RET artistDownloadStatus = DownloadArtistInfo(artist, scraper, artistInfo, pDialog); if (artistDownloadStatus == INFO_NOT_FOUND) { if (pDialog && bAllowSelection) { if (!CGUIKeyboardFactory::ShowAndGetInput(artist.strArtist, g_localizeStrings.Get(16025), false)) return INFO_CANCELLED; goto loop; } } else if (artistDownloadStatus == INFO_ADDED) { artist.MergeScrapedArtist(artistInfo.GetArtist(), CSettings::Get().GetBool("musiclibrary.overridetags")); m_musicDatabase.Open(); m_musicDatabase.UpdateArtist(artist); m_musicDatabase.GetArtistPath(artist.idArtist, artist.strPath); m_musicDatabase.SetArtForItem(artist.idArtist, MediaTypeArtist, GetArtistArtwork(artist)); m_musicDatabase.Close(); artistInfo.SetLoaded(); } return artistDownloadStatus; }
void CID3v1Dlg::OnDropdownListAlbum() { CString strSelectedArtist = m_comboArtist.GetText(); POSITION posArtist = m_pMapArtist->GetStartPosition( ); while( posArtist != NULL ) { CArtist* pArtist; CString strArtist; m_pMapArtist->GetNextAssoc( posArtist, strArtist, (CObject*&)pArtist ); ASSERT( pArtist->IsKindOf( RUNTIME_CLASS( CArtist ) ) ); if( strArtist == strSelectedArtist ) { CString strText = m_comboAlbum.GetText(); CSortedList listAlbum; m_comboAlbum.FillWithList( listAlbum.GetList( &pArtist->m_mapAlbum ), ICON_ALBUM, ICON_ALBUM ); m_comboAlbum.SetText( strText ); return; } } }
INFO_RET CMusicInfoScanner::UpdateDatabaseArtistInfo(CArtist& artist, const ADDON::ScraperPtr& scraper, bool bAllowSelection, CGUIDialogProgress* pDialog /* = NULL */) { if (!scraper) return INFO_ERROR; CMusicArtistInfo artistInfo; loop: CLog::Log(LOGDEBUG, "%s downloading info for: %s", __FUNCTION__, artist.strArtist.c_str()); INFO_RET artistDownloadStatus = DownloadArtistInfo(artist, scraper, artistInfo, pDialog); if (artistDownloadStatus == INFO_NOT_FOUND) { if (pDialog && bAllowSelection) { if (!CGUIKeyboardFactory::ShowAndGetInput(artist.strArtist, CVariant{g_localizeStrings.Get(16025)}, false)) return INFO_CANCELLED; goto loop; } else { CEventLog::GetInstance().Add(EventPtr(new CMediaLibraryEvent( MediaTypeArtist, artist.strPath, 24146, StringUtils::Format(g_localizeStrings.Get(24147).c_str(), MediaTypeArtist, artist.strArtist.c_str()), CScraperUrl::GetThumbURL(artist.thumbURL.GetFirstThumb()), CURL::GetRedacted(artist.strPath), EventLevel::Warning))); } } else if (artistDownloadStatus == INFO_ADDED) { artist.MergeScrapedArtist(artistInfo.GetArtist(), CServiceBroker::GetSettings().GetBool(CSettings::SETTING_MUSICLIBRARY_OVERRIDETAGS)); m_musicDatabase.Open(); m_musicDatabase.UpdateArtist(artist); m_musicDatabase.GetArtistPath(artist.idArtist, artist.strPath); m_musicDatabase.SetArtForItem(artist.idArtist, MediaTypeArtist, GetArtistArtwork(artist)); m_musicDatabase.Close(); artistInfo.SetLoaded(); } return artistDownloadStatus; }