本文整理汇总了C++中CGUIEPGGridContainer::SetTimelineItems方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIEPGGridContainer::SetTimelineItems方法的具体用法?C++ CGUIEPGGridContainer::SetTimelineItems怎么用?C++ CGUIEPGGridContainer::SetTimelineItems使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIEPGGridContainer
的用法示例。
在下文中一共展示了CGUIEPGGridContainer::SetTimelineItems方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RefreshTimelineItems
bool CGUIWindowPVRGuideBase::RefreshTimelineItems()
{
bool bRefreshTimelineItems;
{
CSingleLock lock(m_critSection);
bRefreshTimelineItems = m_bRefreshTimelineItems;
m_bRefreshTimelineItems = false;
}
if (bRefreshTimelineItems)
{
CGUIEPGGridContainer* epgGridContainer = GetGridControl();
if (epgGridContainer)
{
const CPVRChannelGroupPtr group(GetChannelGroup());
if (!group)
return false;
std::unique_ptr<CFileItemList> timeline(new CFileItemList);
// can be very expensive. never call with lock acquired.
group->GetEPGAll(*timeline, true);
CDateTime startDate(group->GetFirstEPGDate());
CDateTime endDate(group->GetLastEPGDate());
const CDateTime currentDate(CDateTime::GetCurrentDateTime().GetAsUTCDateTime());
if (!startDate.IsValid())
startDate = currentDate;
if (!endDate.IsValid() || endDate < startDate)
endDate = startDate;
// limit start to linger time
int iPastDays = CServiceBroker::GetPVRManager().EpgContainer().GetPastDaysToDisplay();
const CDateTime maxPastDate(currentDate - CDateTimeSpan(iPastDays, 0, 0, 0));
if (startDate < maxPastDate)
startDate = maxPastDate;
// can be very expensive. never call with lock acquired.
epgGridContainer->SetTimelineItems(timeline, startDate, endDate);
{
CSingleLock lock(m_critSection);
m_newTimeline = std::move(timeline);
m_cachedChannelGroup = group;
}
return true;
}
}
return false;
}
示例2: RefreshTimelineItems
bool CGUIWindowPVRGuide::RefreshTimelineItems()
{
if (m_bRefreshTimelineItems)
{
m_bRefreshTimelineItems = false;
CGUIEPGGridContainer* epgGridContainer = GetGridControl();
if (epgGridContainer)
{
const CPVRChannelGroupPtr group(GetChannelGroup());
if (!group)
return false;
std::unique_ptr<CFileItemList> timeline(new CFileItemList);
// can be very expensive. never call with lock acquired.
group->GetEPGAll(*timeline, true);
CDateTime startDate(group->GetFirstEPGDate());
CDateTime endDate(group->GetLastEPGDate());
const CDateTime currentDate(CDateTime::GetCurrentDateTime().GetAsUTCDateTime());
if (!startDate.IsValid())
startDate = currentDate;
if (!endDate.IsValid() || endDate < startDate)
endDate = startDate;
// limit start to linger time
const CDateTime maxPastDate(currentDate - CDateTimeSpan(0, 0, g_advancedSettings.m_iEpgLingerTime, 0));
if (startDate < maxPastDate)
startDate = maxPastDate;
// can be very expensive. never call with lock acquired.
epgGridContainer->SetTimelineItems(timeline, startDate, endDate);
{
CSingleLock lock(m_critSection);
m_newTimeline = std::move(timeline);
m_cachedChannelGroup = group;
}
return true;
}
}
return false;
}