Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}