本文整理汇总了C++中CFileItemList::Copy方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItemList::Copy方法的具体用法?C++ CFileItemList::Copy怎么用?C++ CFileItemList::Copy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItemList
的用法示例。
在下文中一共展示了CFileItemList::Copy方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PlayListPlayerInsert
void CApplicationMessenger::PlayListPlayerInsert(int playlist, const CFileItemList &list, int index)
{
ThreadMessage tMsg = {TMSG_PLAYLISTPLAYER_INSERT};
CFileItemList* listcopy = new CFileItemList();
listcopy->Copy(list);
tMsg.lpVoid = (void *)listcopy;
tMsg.dwParam1 = playlist;
tMsg.dwParam2 = index;
SendMessage(tMsg, true);
}
示例2: MediaPlay
void CApplicationMessenger::MediaPlay(const CFileItemList &list, int song)
{
ThreadMessage tMsg = {TMSG_MEDIA_PLAY};
CFileItemList* listcopy = new CFileItemList();
listcopy->Copy(list);
tMsg.lpVoid = (void*)listcopy;
tMsg.dwParam1 = song;
tMsg.dwParam2 = 1;
SendMessage(tMsg, true);
}
示例3: GetDirectory
bool GetDirectory(CFileItemList& list)
{
/* if it was not finished or failed, return failure */
if(!m_result->m_event.WaitMSec(0) || !m_result->m_result)
{
list.Clear();
return false;
}
list.Copy(m_result->m_list);
return true;
}
示例4: AddItems
bool CPluginDirectory::AddItems(int handle, const CFileItemList *items, int totalItems)
{
CSingleLock lock(m_handleLock);
CPluginDirectory *dir = dirFromHandle(handle);
if (!dir)
return false;
CFileItemList pItemList;
pItemList.Copy(*items);
dir->m_listItems->Append(pItemList);
dir->m_totalItems = totalItems;
return !dir->m_cancelled;
}
示例5: AddItems
bool CPluginDirectory::AddItems(int handle, const CFileItemList *items, int totalItems)
{
CSingleLock lock(m_handleLock);
if (handle < 0 || handle >= (int)globalHandles.size())
{
CLog::Log(LOGERROR, " %s - called with an invalid handle.", __FUNCTION__);
return false;
}
CPluginDirectory *dir = globalHandles[handle];
CFileItemList pItemList;
pItemList.Copy(*items);
dir->m_listItems->Append(pItemList);
dir->m_totalItems = totalItems;
return !dir->m_cancelled;
}
示例6: PlayListPlayerAdd
void CApplicationMessenger::PlayListPlayerAdd(int playlist, const CFileItemList &list)
{
/*
参数:
1、
返回:
1、
说明:
1、
*/
ThreadMessage tMsg = {TMSG_PLAYLISTPLAYER_ADD};
CFileItemList* listcopy = new CFileItemList();
listcopy->Copy(list);
tMsg.lpVoid = (void*)listcopy;
tMsg.dwParam1 = playlist;
SendMessage(tMsg, true);
}
示例7: GetDirectory
bool CDirectoryCache::GetDirectory(const CStdString& strPath, CFileItemList &items, bool retrieveAll)
{
CSingleLock lock (m_cs);
CStdString storedPath = URIUtils::SubstitutePath(strPath);
URIUtils::RemoveSlashAtEnd(storedPath);
ciCache i = m_cache.find(storedPath);
if (i != m_cache.end())
{
CDir* dir = i->second;
if (dir->m_cacheType == XFILE::DIR_CACHE_ALWAYS ||
(dir->m_cacheType == XFILE::DIR_CACHE_ONCE && retrieveAll))
{
items.Copy(*dir->m_Items);
dir->SetLastAccess(m_accessCounter);
#ifdef _DEBUG
m_cacheHits+=items.Size();
#endif
return true;
}
}
return false;
}
示例8: GetAll
void CFavouritesService::GetAll(CFileItemList& items) const
{
CSingleLock lock(m_criticalSection);
items.Clear();
items.Copy(m_favourites);
}
示例9: OnBrowse
void CGUIDialogMediaFilter::OnBrowse(const Filter &filter, CFileItemList &items, bool countOnly /* = false */)
{
CFileItemList selectItems;
if (m_mediaType == "movies" || m_mediaType == "tvshows" || m_mediaType == "episodes" || m_mediaType == "musicvideos")
{
CVideoDatabase videodb;
if (!videodb.Open())
return;
CSmartPlaylist tmpFilter = *m_filter;
for (vector<CSmartPlaylistRule>::iterator rule = tmpFilter.m_ruleCombination.m_rules.begin(); rule != tmpFilter.m_ruleCombination.m_rules.end(); rule++)
{
if (rule->m_field == filter.field)
{
tmpFilter.m_ruleCombination.m_rules.erase(rule);
break;
}
}
std::set<CStdString> playlists;
CDatabase::Filter dbfilter;
dbfilter.where = tmpFilter.GetWhereClause(videodb, playlists);
VIDEODB_CONTENT_TYPE type = VIDEODB_CONTENT_MOVIES;
if (m_mediaType == "tvshows")
type = VIDEODB_CONTENT_TVSHOWS;
else if (m_mediaType == "episodes")
type = VIDEODB_CONTENT_EPISODES;
else if (m_mediaType == "musicvideos")
type = VIDEODB_CONTENT_MUSICVIDEOS;
if (filter.field == FieldGenre)
videodb.GetGenresNav(m_dbUrl->ToString(), selectItems, type, dbfilter, countOnly);
else if (filter.field == FieldActor || filter.field == FieldArtist)
videodb.GetActorsNav(m_dbUrl->ToString(), selectItems, type, dbfilter, countOnly);
else if (filter.field == FieldDirector)
videodb.GetDirectorsNav(m_dbUrl->ToString(), selectItems, type, dbfilter, countOnly);
else if (filter.field == FieldStudio)
videodb.GetStudiosNav(m_dbUrl->ToString(), selectItems, type, dbfilter, countOnly);
else if (filter.field == FieldAlbum)
videodb.GetMusicVideoAlbumsNav(m_dbUrl->ToString(), selectItems, -1, dbfilter, countOnly);
else if (filter.field == FieldTag)
videodb.GetTagsNav(m_dbUrl->ToString(), selectItems, type, dbfilter, countOnly);
}
else if (m_mediaType == "artists" || m_mediaType == "albums" || m_mediaType == "songs")
{
CMusicDatabase musicdb;
if (!musicdb.Open())
return;
CSmartPlaylist tmpFilter = *m_filter;
for (vector<CSmartPlaylistRule>::iterator rule = tmpFilter.m_ruleCombination.m_rules.begin(); rule != tmpFilter.m_ruleCombination.m_rules.end(); rule++)
{
if (rule->m_field == filter.field)
{
tmpFilter.m_ruleCombination.m_rules.erase(rule);
break;
}
}
std::set<CStdString> playlists;
CDatabase::Filter dbfilter;
dbfilter.where = tmpFilter.GetWhereClause(musicdb, playlists);
if (filter.field == FieldGenre)
musicdb.GetGenresNav(m_dbUrl->ToString(), selectItems, dbfilter, countOnly);
else if (filter.field == FieldArtist)
musicdb.GetArtistsNav(m_dbUrl->ToString(), selectItems, m_mediaType == "albums", -1, -1, -1, dbfilter, SortDescription(), countOnly);
else if (filter.field == FieldAlbum)
musicdb.GetAlbumsNav(m_dbUrl->ToString(), selectItems, -1, -1, dbfilter, SortDescription(), countOnly);
else if (filter.field == FieldAlbumType)
musicdb.GetAlbumTypesNav(m_dbUrl->ToString(), selectItems, dbfilter, countOnly);
else if (filter.field == FieldMusicLabel)
musicdb.GetMusicLabelsNav(m_dbUrl->ToString(), selectItems, dbfilter, countOnly);
}
if (selectItems.Size() <= 0)
return;
if (countOnly)
{
items.Copy(selectItems);
return;
}
// sort the items
selectItems.Sort(SORT_METHOD_LABEL, SortOrderAscending);
CGUIDialogSelect* pDialog = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT);
pDialog->Reset();
pDialog->SetItems(&selectItems);
CStdString strHeading;
strHeading.Format(g_localizeStrings.Get(13401), g_localizeStrings.Get(filter.label));
pDialog->SetHeading(strHeading);
pDialog->SetMultiSelection(true);
if (filter.rule != NULL && !filter.rule->m_parameter.empty())
pDialog->SetSelected(filter.rule->m_parameter);
pDialog->DoModal();
//.........这里部分代码省略.........
示例10: GetDirectory
bool CRSSDirectory::GetDirectory(const CStdString& path, CFileItemList &items)
{
CStdString strPath(path);
CUtil::RemoveSlashAtEnd(strPath);
/* check cache */
if(m_path == strPath)
{
items.Copy(m_items);
return true;
}
/* clear cache */
m_items.Clear();
m_path == "";
TiXmlDocument xmlDoc;
if (!xmlDoc.LoadFile(strPath))
{
CLog::Log(LOGERROR,"failed to load xml from <%s>. error: <%d>", strPath.c_str(), xmlDoc.ErrorId());
return false;
}
if (xmlDoc.Error())
{
CLog::Log(LOGERROR,"error parsing xml doc from <%s>. error: <%d>", strPath.c_str(), xmlDoc.ErrorId());
return false;
}
TiXmlElement* rssXmlNode = xmlDoc.RootElement();
if (!rssXmlNode)
return false;
TiXmlHandle docHandle( &xmlDoc );
TiXmlElement* channelXmlNode = docHandle.FirstChild( "rss" ).FirstChild( "channel" ).Element();
if (channelXmlNode)
ParseItem(&items, channelXmlNode);
else
return false;
TiXmlElement* child = NULL;
for (child = channelXmlNode->FirstChildElement("item"); child; child = child->NextSiblingElement())
{
// Create new item,
CFileItemPtr item(new CFileItem());
ParseItem(item.get(), child);
item->SetProperty("isrss", "1");
if (!item->m_strPath.IsEmpty())
items.Add(item);
}
items.AddSortMethod(SORT_METHOD_UNSORTED , 231, LABEL_MASKS("%L", "%D", "%L", "")); // FileName, Duration | Foldername, empty
items.AddSortMethod(SORT_METHOD_LABEL , 551, LABEL_MASKS("%L", "%D", "%L", "")); // FileName, Duration | Foldername, empty
items.AddSortMethod(SORT_METHOD_SIZE , 553, LABEL_MASKS("%L", "%I", "%L", "%I")); // FileName, Size | Foldername, Size
items.AddSortMethod(SORT_METHOD_DATE , 552, LABEL_MASKS("%L", "%J", "%L", "%J")); // FileName, Date | Foldername, Date
m_items.Copy(items);
m_path = strPath;
return true;
}