本文整理汇总了C++中CGUIEPGGridContainer::ResetCoordinates方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIEPGGridContainer::ResetCoordinates方法的具体用法?C++ CGUIEPGGridContainer::ResetCoordinates怎么用?C++ CGUIEPGGridContainer::ResetCoordinates使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIEPGGridContainer
的用法示例。
在下文中一共展示了CGUIEPGGridContainer::ResetCoordinates方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
示例2: GetViewTimelineItems
void CGUIWindowPVRGuide::GetViewTimelineItems(CFileItemList &items)
{
CGUIEPGGridContainer* epgGridContainer = (CGUIEPGGridContainer*) GetControl(m_viewControl.GetCurrentControl());
if (!epgGridContainer)
return;
CPVRChannelGroupPtr group = GetGroup();
// group change detected reset grid coordinate
if (*m_cachedChannelGroup != *group)
epgGridContainer->ResetCoordinates();
if (m_bUpdateRequired || m_cachedTimeline->IsEmpty() || *m_cachedChannelGroup != *group)
{
m_bUpdateRequired = false;
m_cachedTimeline->Clear();
m_cachedChannelGroup = group;
m_cachedChannelGroup->GetEPGAll(*m_cachedTimeline, true);
}
items.Clear();
items.RemoveDiscCache(GetID());
items.Assign(*m_cachedTimeline, false);
CDateTime startDate(m_cachedChannelGroup->GetFirstEPGDate());
CDateTime endDate(m_cachedChannelGroup->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);
}
示例3: GetDirectory
bool CGUIWindowPVRGuide::GetDirectory(const std::string &strDirectory, CFileItemList &items)
{
bool bRefresh = false;
{
CSingleLock lock(m_critSection);
// group change detected reset grid coordinates and refresh grid items
if (!m_bRefreshTimelineItems && *m_cachedChannelGroup != *GetChannelGroup())
{
CGUIEPGGridContainer* epgGridContainer = GetGridControl();
if (!epgGridContainer)
return true;
epgGridContainer->ResetCoordinates();
m_bRefreshTimelineItems = true;
bRefresh = true;
}
}
// never call RefreshTimelineItems with locked mutex!
if (bRefresh)
RefreshTimelineItems();
{
CSingleLock lock(m_critSection);
// Note: no need to do anything if no new data available. items always contains previous data.
if (m_newTimeline)
{
items.RemoveDiscCache(GetID());
items.Assign(*m_newTimeline, false);
m_newTimeline.reset();
}
}
return true;
}
示例4: GetViewTimelineItems
void CGUIWindowPVRGuide::GetViewTimelineItems(CFileItemList &items)
{
CSingleLock lock(m_critSection);
// group change detected reset grid coordinates and refresh grid items
if (!m_bRefreshTimelineItems && *m_cachedChannelGroup != *GetChannelGroup())
{
CGUIEPGGridContainer* epgGridContainer = GetGridControl();
if (!epgGridContainer)
return;
epgGridContainer->ResetCoordinates();
m_bRefreshTimelineItems = true;
RefreshTimelineItems();
}
// Note: no need to do anything if no new data available. items always contains previous data.
if (m_newTimeline)
{
items.RemoveDiscCache(GetID());
items.Assign(*m_newTimeline, false);
m_newTimeline.reset();
}
}