本文整理汇总了C++中CFileItemPtr::IsNFO方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItemPtr::IsNFO方法的具体用法?C++ CFileItemPtr::IsNFO怎么用?C++ CFileItemPtr::IsNFO使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItemPtr
的用法示例。
在下文中一共展示了CFileItemPtr::IsNFO方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CountFiles
int CMusicInfoScanner::CountFiles(const CFileItemList &items, bool recursive)
{
int count = 0;
for (int i=0; i<items.Size(); ++i)
{
const CFileItemPtr pItem=items[i];
if (recursive && pItem->m_bIsFolder)
count+=CountFilesRecursively(pItem->GetPath());
else if (pItem->IsAudio() && !pItem->IsPlayList() && !pItem->IsNFO())
count++;
}
return count;
}
示例2: OnLoaderFinish
void CMusicInfoLoader::OnLoaderFinish()
{
// cleanup last loaded songs from database
m_songsMap.Clear();
// cleanup cache loaded from HD
m_mapFileItems->Clear();
if (!m_bStop)
{ // check for art
VECSONGS songs;
songs.reserve(m_pVecItems->Size());
for (int i = 0; i < m_pVecItems->Size(); ++i)
{
CFileItemPtr pItem = m_pVecItems->Get(i);
if (pItem->m_bIsFolder || pItem->IsPlayList() || pItem->IsNFO() || pItem->IsInternetStream())
continue;
if (pItem->HasMusicInfoTag() && pItem->GetMusicInfoTag()->Loaded())
{
CSong song(*pItem->GetMusicInfoTag());
song.strThumb = pItem->GetArt("thumb");
song.idSong = i; // for the lookup below
songs.push_back(song);
}
}
VECALBUMS albums;
CMusicInfoScanner::CategoriseAlbums(songs, albums);
CMusicInfoScanner::FindArtForAlbums(albums, m_pVecItems->GetPath());
for (VECALBUMS::iterator i = albums.begin(); i != albums.end(); ++i)
{
string albumArt = i->art["thumb"];
for (VECSONGS::iterator j = i->songs.begin(); j != i->songs.end(); ++j)
{
if (!j->strThumb.empty())
m_pVecItems->Get(j->idSong)->SetArt("thumb", j->strThumb);
else
m_pVecItems->Get(j->idSong)->SetArt("thumb", albumArt);
}
}
}
// Save loaded items to HD
if (!m_strCacheFileName.IsEmpty())
SaveCache(m_strCacheFileName, *m_pVecItems);
else if (!m_bStop && (m_databaseHits > 1 || m_tagReads > 0))
m_pVecItems->Save();
m_musicDatabase.Close();
}
示例3: GetPathHash
int CMusicInfoScanner::GetPathHash(const CFileItemList &items, CStdString &hash)
{
// Create a hash based on the filenames, filesize and filedate. Also count the number of files
if (0 == items.Size()) return 0;
XBMC::XBMC_MD5 md5state;
int count = 0;
for (int i = 0; i < items.Size(); ++i)
{
const CFileItemPtr pItem = items[i];
md5state.append(pItem->GetPath());
md5state.append((unsigned char *)&pItem->m_dwSize, sizeof(pItem->m_dwSize));
FILETIME time = pItem->m_dateTime;
md5state.append((unsigned char *)&time, sizeof(FILETIME));
if (pItem->IsAudio() && !pItem->IsPlayList() && !pItem->IsNFO())
count++;
}
md5state.getDigest(hash);
return count;
}
示例4: OnInfo
void CGUIWindowVideoFiles::OnInfo(CFileItem* pItem, const SScraperInfo& info)
{
if ( !pItem ) return ;
bool bFolder(false);
if (info.strContent.Equals("tvshows"))
{
CGUIWindowVideoBase::OnInfo(pItem,info);
return;
}
CStdString strFolder = "";
CStdString strFile = pItem->m_strPath;
if (pItem->m_bIsFolder && pItem->IsParentFolder()) return ;
if (pItem->m_bIsShareOrDrive) // oh no u don't
return ;
if (pItem->m_bIsFolder)
{
// IMDB is done on a folder
// stack and then find first file in folder
bFolder = true;
CFileItemList vecitems;
GetStackedDirectory(pItem->m_strPath, vecitems);
bool bFoundFile(false);
for (int i = 0; i < (int)vecitems.Size(); ++i)
{
CFileItemPtr item = vecitems[i];
if (!item->m_bIsFolder)
{
if (item->IsVideo() && !item->IsNFO() && !item->IsPlayList() &&
item->m_strPath.Find("-trailer.") == -1)
{
bFoundFile = true;
strFile = item->m_strPath;
break;
}
}
else
{ // check for a dvdfolder
if (item->GetLabel().CompareNoCase("VIDEO_TS") == 0)
{ // found a dvd folder - grab the main .ifo file
CUtil::AddFileToFolder(item->m_strPath, "VIDEO_TS.IFO", strFile);
if (CFile::Exists(strFile))
{
bFoundFile = true;
break;
}
}
// check for a "CD1" folder
if (item->GetLabel().CompareNoCase("CD1") == 0)
{
CFileItemList items;
GetStackedDirectory(item->m_strPath, items);
for (int i = 0; i < items.Size(); i++)
{
CFileItemPtr item = items[i];
if (!item->m_bIsFolder && item->IsVideo() && !item->IsNFO() &&
!item->IsPlayList())
{
bFoundFile = true;
strFile = item->m_strPath;
break;
}
}
if (bFoundFile)
break;
}
}
}
if (!bFoundFile)
{
// no video file in this folder?
if (info.strContent.Equals("movies"))
CGUIDialogOK::ShowAndGetInput(13346,20349,20022,20022);
return ;
}
}
// setup our item with the label and thumb information
CFileItem item(strFile, false);
item.SetLabel(pItem->GetLabel());
// hack since our label sometimes contains extensions
if(!pItem->m_bIsFolder && !g_guiSettings.GetBool("filelists.hideextensions") &&
!pItem->IsLabelPreformated())
{
item.RemoveExtension();
}
item.SetCachedVideoThumb();
if (!item.HasThumbnail() && pItem->GetProperty("HasAutoThumb") != "1") // inherit from the original item if it exists
item.SetThumbnailImage(pItem->GetThumbnailImage());
if (!info.strContent.Equals("plugin"))
AddFileToDatabase(&item);
else
{
if (pItem->HasVideoInfoTag())
*item.GetVideoInfoTag() = *pItem->GetVideoInfoTag();
}
// we need to also request any thumbs also be applied to the folder item
//.........这里部分代码省略.........