CEpgInfoTagPtr CEpgContainer::GetTagById(const CPVRChannelPtr &channel, unsigned int iBroadcastId) const { CEpgInfoTagPtr retval; if (iBroadcastId == EPG_TAG_INVALID_UID) return retval; if (channel) { const CEpgPtr epg(channel->GetEPG()); if (epg) retval = epg->GetTagByBroadcastId(iBroadcastId); } else { for (const auto &epgEntry : m_epgs) { retval = epgEntry.second->GetTagByBroadcastId(iBroadcastId); if (retval) break; } } return retval; }
CEpgInfoTagPtr CPVRTimerInfoTag::GetEpgInfoTag(bool bCreate /* = true */) const { if (!m_epgTag && bCreate) { CPVRChannelPtr channel(g_PVRChannelGroups->GetByUniqueID(m_iClientChannelUid, m_iClientId)); if (channel) { const CEpgPtr epg(channel->GetEPG()); if (epg) { CSingleLock lock(m_critSection); if (!m_epgTag) { if (m_iEpgUid != EPG_TAG_INVALID_UID) { m_epgTag = epg->GetTagByBroadcastId(m_iEpgUid); } else if (!m_bStartAnyTime && !m_bEndAnyTime) { // if no epg uid present, try to find a tag according to timer's start/end time m_epgTag = epg->GetTagBetween(StartAsUTC() - CDateTimeSpan(0, 0, 2, 0), EndAsUTC() + CDateTimeSpan(0, 0, 2, 0)); } if (m_epgTag) m_epgTag->SetTimer(g_PVRTimers->GetById(m_iTimerId)); } } } } return m_epgTag; }
CEpgInfoTagPtr CEpgContainer::GetTagById(const CPVRChannelPtr &channel, unsigned int iBroadcastId) const { CEpgInfoTagPtr retval; if (!channel || iBroadcastId == EPG_TAG_INVALID_UID) return retval; const CEpgPtr epg(channel->GetEPG()); if (epg) retval = epg->GetTagByBroadcastId(iBroadcastId); return retval; }