std::string CVideoThumbLoader::GetLocalArt(const CFileItem &item, const std::string &type, bool checkFolder) { /* Cache directory for (sub) folders on streamed filesystems. We need to do this else entering (new) directories from the app thread becomes much slower. This is caused by the fact that Curl Stat/Exist() is really slow and that the thumbloader thread accesses the streamed filesystem at the same time as the App thread and the latter has to wait for it. */ if (item.m_bIsFolder && (item.IsInternetStream(true) || g_advancedSettings.m_networkBufferMode == 1)) { CFileItemList items; // Dummy list CDirectory::GetDirectory(item.GetPath(), items, "", DIR_FLAG_NO_FILE_DIRS | DIR_FLAG_READ_CACHE | DIR_FLAG_NO_FILE_INFO); } std::string art; if (!type.empty()) { art = item.FindLocalArt(type + ".jpg", checkFolder); if (art.empty()) art = item.FindLocalArt(type + ".png", checkFolder); } if (art.empty() && (type.empty() || type == "thumb")) { // backward compatibility art = item.FindLocalArt("", false); if (art.empty() && (checkFolder || (item.m_bIsFolder && !item.IsFileFolder()) || item.IsOpticalMediaFile())) { // try movie.tbn art = item.FindLocalArt("movie.tbn", true); if (art.empty()) // try folder.jpg art = item.FindLocalArt("folder.jpg", true); } } return art; }
std::string CVideoThumbLoader::GetLocalArt(const CFileItem &item, const std::string &type, bool checkFolder) { std::string art; if (!type.empty()) { art = item.FindLocalArt(type + ".jpg", checkFolder); if (art.empty()) art = item.FindLocalArt(type + ".png", checkFolder); } if (art.empty() && (type.empty() || type == "thumb")) { // backward compatibility art = item.FindLocalArt("", false); if (art.empty() && (checkFolder || (item.m_bIsFolder && !item.IsFileFolder()))) { // try movie.tbn art = item.FindLocalArt("movie.tbn", true); if (art.empty()) // try folder.jpg art = item.FindLocalArt("folder.jpg", true); } } return art; }