本文整理汇总了C++中CEpg::GetTagBetween方法的典型用法代码示例。如果您正苦于以下问题:C++ CEpg::GetTagBetween方法的具体用法?C++ CEpg::GetTagBetween怎么用?C++ CEpg::GetTagBetween使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEpg
的用法示例。
在下文中一共展示了CEpg::GetTagBetween方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateEpgEvent
void CPVRTimers::UpdateEpgEvent(CPVRTimerInfoTagPtr timer)
{
CSingleLock lock(timer->m_critSection);
/* already got an epg event set */
if (timer->m_epgTag)
return;
/* try to get the channel */
CPVRChannelPtr channel = g_PVRChannelGroups->GetByUniqueID(timer->m_iClientChannelUid, timer->m_iClientId);
if (!channel)
return;
/* try to get the EPG table */
CEpg *epg = channel->GetEPG();
if (!epg)
return;
/* try to set the timer on the epg tag that matches with a 2 minute margin */
CEpgInfoTagPtr epgTag = epg->GetTagBetween(timer->StartAsUTC() - CDateTimeSpan(0, 0, 2, 0), timer->EndAsUTC() + CDateTimeSpan(0, 0, 2, 0));
if (!epgTag)
epgTag = epg->GetTagAround(timer->StartAsUTC());
if (epgTag)
{
timer->m_epgTag = epgTag;
timer->m_genre = epgTag->Genre();
timer->m_iGenreType = epgTag->GenreType();
timer->m_iGenreSubType = epgTag->GenreSubType();
epgTag->SetTimer(timer);
}
}
示例2: UpdateEpgEvent
void CPVRTimerInfoTag::UpdateEpgEvent(bool bClear /* = false */)
{
if (bClear)
{
if (m_epgInfo)
{
m_epgInfo->SetTimer(NULL);
m_epgInfo = NULL;
}
}
else
{
/* already got an epg event set */
if (m_epgInfo)
return;
/* try to get the channel */
CPVRChannel *channel = (CPVRChannel *) g_PVRChannelGroups->GetByUniqueID(m_iClientChannelUid, m_iClientId);
if (!channel)
return;
/* try to get the EPG table */
CEpg *epg = channel->GetEPG();
if (!epg)
return;
/* try to set the timer on the epg tag that matches with a 2 minute margin */
m_epgInfo = (CEpgInfoTag *) epg->GetTagBetween(StartAsLocalTime() - CDateTimeSpan(0, 0, 2, 0), EndAsLocalTime() + CDateTimeSpan(0, 0, 2, 0));
if (!m_epgInfo)
m_epgInfo = (CEpgInfoTag *) epg->GetTagAround(StartAsLocalTime());
if (m_epgInfo)
m_epgInfo->SetTimer(this);
}
}
示例3: UpdateEpgEvent
void CPVRTimerInfoTag::UpdateEpgEvent(bool bClear /* = false */)
{
CSingleLock lock(m_critSection);
if (bClear)
{
CEpgInfoTag *epgTag = GetEpgInfoTag();
if (epgTag)
epgTag->OnTimerDeleted();
}
else
{
/* already got an epg event set */
if (m_iEpgId != -1)
return;
/* try to get the channel */
CPVRChannel *channel = (CPVRChannel *) g_PVRChannelGroups->GetByUniqueID(m_iClientChannelUid, m_iClientId);
if (!channel)
return;
/* try to get the EPG table */
CEpg *epg = channel->GetEPG();
if (!epg)
return;
/* try to set the timer on the epg tag that matches with a 2 minute margin */
CEpgInfoTag *epgTag = (CEpgInfoTag *) epg->GetTagBetween(StartAsUTC() - CDateTimeSpan(0, 0, 2, 0), EndAsUTC() + CDateTimeSpan(0, 0, 2, 0));
if (!epgTag)
epgTag = (CEpgInfoTag *) epg->GetTagAround(StartAsUTC());
if (epgTag)
{
m_iEpgId = epgTag->m_iEpgId;
m_epgStart = epgTag->StartAsUTC();
m_genre = epgTag->Genre();
m_iGenreType = epgTag->GenreType();
m_iGenreSubType = epgTag->GenreSubType();
epgTag->SetTimer(this);
}
}
}