本文整理汇总了C++中CPVRChannelGroupPtr::GetLastEPGDate方法的典型用法代码示例。如果您正苦于以下问题:C++ CPVRChannelGroupPtr::GetLastEPGDate方法的具体用法?C++ CPVRChannelGroupPtr::GetLastEPGDate怎么用?C++ CPVRChannelGroupPtr::GetLastEPGDate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPVRChannelGroupPtr
的用法示例。
在下文中一共展示了CPVRChannelGroupPtr::GetLastEPGDate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetViewTimelineItems
void CGUIWindowPVRGuide::GetViewTimelineItems(CFileItemList &items)
{
CGUIEPGGridContainer* epgGridContainer = dynamic_cast<CGUIEPGGridContainer*>(GetControl(m_viewControl.GetCurrentControl()));
if (!epgGridContainer)
return;
CPVRChannelGroupPtr group;
{
CSingleLock lock(m_critSection);
// group change detected reset grid coordinates and refresh grid items
if (!m_bRefreshTimelineItems && *m_cachedChannelGroup != *GetGroup())
{
epgGridContainer->ResetCoordinates();
m_bRefreshTimelineItems = true;
RefreshTimelineItems();
}
if (m_newTimeline != nullptr)
{
m_cachedTimeline = m_newTimeline;
m_newTimeline.reset();
}
items.Clear();
items.RemoveDiscCache(GetID());
items.Assign(*m_cachedTimeline, false);
group = m_cachedChannelGroup;
}
CDateTime startDate(group->GetFirstEPGDate());
CDateTime endDate(group->GetLastEPGDate());
CDateTime currentDate = CDateTime::GetCurrentDateTime().GetAsUTCDateTime();
if (!startDate.IsValid())
startDate = currentDate;
if (!endDate.IsValid() || endDate < startDate)
endDate = startDate;
// limit start to linger time
CDateTime maxPastDate = currentDate - CDateTimeSpan(0, 0, g_advancedSettings.m_iEpgLingerTime, 0);
if (startDate < maxPastDate)
startDate = maxPastDate;
epgGridContainer->SetStartEnd(startDate, endDate);
}