本文整理汇总了C++中VideoMetadataListManager类的典型用法代码示例。如果您正苦于以下问题:C++ VideoMetadataListManager类的具体用法?C++ VideoMetadataListManager怎么用?C++ VideoMetadataListManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了VideoMetadataListManager类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: buildDbList
void VideoListImp::buildDbList()
{
metadata_list ml;
VideoMetadataListManager::loadAllFromDatabase(ml);
m_metadata.setList(ml);
metadata_view_list mlist;
mlist.reserve(m_metadata.getList().size());
back_insert_iterator<metadata_view_list> mli(mlist);
transform(m_metadata.getList().begin(), m_metadata.getList().end(),
mli, to_metadata_ptr());
// print_meta_list(mlist);
metadata_path_sort mps(true);
sort(mlist.begin(), mlist.end(), mps);
// TODO: break out the prefix in the DB so this isn't needed
typedef map<QString, meta_dir_node *> prefix_to_node_map;
prefix_to_node_map ptnm;
QStringList dirs = GetVideoDirs();
if (dirs.isEmpty())
return;
QString test_prefix(dirs[0]);
meta_dir_node *video_root = &m_metadata_tree;
if (dirs.size() == 1)
{
video_root->setPathRoot();
video_root->setPath(test_prefix);
video_root->setName("videos");
ptnm.insert(prefix_to_node_map::value_type(test_prefix, video_root));
}
for (metadata_view_list::iterator p = mlist.begin(); p != mlist.end(); ++p)
{
AddMetadataToDir(*p, video_root);
}
// print_dir_tree(m_metadata_tree); // AEW DEBUG
}
开发者ID:aravilife,项目名称:mythtv-stabilize2,代码行数:45,代码来源:videolist.cpp
示例2: fillDataFromID
bool VideoMetadata::fillDataFromID(const VideoMetadataListManager &cache)
{
if (m_imp->getID() == 0)
return false;
VideoMetadataListManager::VideoMetadataPtr mp = cache.byID(m_imp->getID());
if (mp.get())
{
*this = *mp;
return true;
}
return false;
}
开发者ID:StefanRoss,项目名称:mythtv,代码行数:14,代码来源:videometadata.cpp
示例3: FillDataFromFilename
bool VideoMetadata::FillDataFromFilename(const VideoMetadataListManager &cache)
{
if (m_imp->getFilename().isEmpty())
return false;
VideoMetadataListManager::VideoMetadataPtr mp =
cache.byFilename(m_imp->getFilename());
if (mp)
{
*this = *mp;
return true;
}
return false;
}
开发者ID:StefanRoss,项目名称:mythtv,代码行数:15,代码来源:videometadata.cpp
示例4: buildGroupList
void VideoListImp::buildGroupList(metadata_list_type whence)
{
metadata_list ml;
VideoMetadataListManager::loadAllFromDatabase(ml);
m_metadata.setList(ml);
metadata_view_list mlist;
mlist.reserve(m_metadata.getList().size());
back_insert_iterator<metadata_view_list> mli(mlist);
transform(m_metadata.getList().begin(), m_metadata.getList().end(),
mli, to_metadata_ptr());
metadata_path_sort mps(true);
sort(mlist.begin(), mlist.end(), mps);
typedef map<QString, meta_dir_node *> group_to_node_map;
group_to_node_map gtnm;
meta_dir_node *video_root = &m_metadata_tree;
smart_dir_node sdn = video_root->addSubDir("All");
meta_dir_node* all_group_node = sdn.get();
for (metadata_view_list::iterator p = mlist.begin(); p != mlist.end(); ++p)
{
VideoMetadata *data = *p;
all_group_node->addEntry(smart_meta_node(new meta_data_node(data)));
vector<QString> groups;
switch (whence)
{
case ltDBGenreGroup:
{
vector<pair <int, QString> > genres =
data->GetGenres();
for (vector<pair <int, QString> >::iterator i =
genres.begin(); i != genres.end(); ++i)
{
pair<int, QString> item = *i;
groups.push_back(item.second);
}
break;
}
case ltDBCategoryGroup:
{
groups.push_back(data->GetCategory());
break;
}
case ltDBYearGroup:
{
groups.push_back(QString::number(data->GetYear()));
break;
}
case ltDBDirectorGroup:
{
groups.push_back(data->GetDirector());
break;
}
case ltDBStudioGroup:
{
groups.push_back(data->GetStudio());
break;
}
case ltDBCastGroup:
{
vector<pair<int, QString> > cast = data->GetCast();
for (vector<pair<int, QString> >::iterator i =
cast.begin(); i != cast.end(); ++i)
{
pair<int, QString> item = *i;
groups.push_back(item.second);
}
break;
}
case ltDBUserRatingGroup:
{
int i = data->GetUserRating();
groups.push_back(QString::number(i));
break;
}
case ltDBInsertDateGroup:
{
QDate date = data->GetInsertdate();
QString tmp = MythDate::toString(
date, MythDate::kDateFull | MythDate::kSimplify);
groups.push_back(tmp);
break;
}
default:
{
LOG(VB_GENERAL, LOG_ERR, "Invalid type of grouping");
break;
}
}
//.........这里部分代码省略.........
开发者ID:aravilife,项目名称:mythtv-stabilize2,代码行数:101,代码来源:videolist.cpp
示例5: fillMetadata
void VideoListImp::fillMetadata(metadata_list_type whence)
{
if (m_metadata_list_type != whence)
{
m_metadata_list_type = whence;
// flush existing data
metadata_list ml;
m_metadata.setList(ml);
m_metadata_tree.clear();
switch (whence)
{
case ltFileSystem:
buildFsysList();
break;
case ltDBMetadata:
buildDbList();
break;
case ltTVMetadata:
buildTVList();
break;
case ltDBGenreGroup:
case ltDBCategoryGroup:
case ltDBYearGroup:
case ltDBDirectorGroup:
case ltDBStudioGroup:
case ltDBCastGroup:
case ltDBUserRatingGroup:
case ltDBInsertDateGroup:
buildGroupList(whence);
break;
case ltNone:
break;
}
}
}
开发者ID:aravilife,项目名称:mythtv-stabilize2,代码行数:36,代码来源:videolist.cpp
注:本文中的VideoMetadataListManager类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论