void CGUIDialogPVRGuideSearch::UpdateChannelSpin(void) { CGUISpinControlEx *pSpin = (CGUISpinControlEx *)GetControl(CONTROL_SPIN_CHANNELS); CGUISpinControlEx *pSpinGroups = (CGUISpinControlEx *)GetControl(CONTROL_SPIN_GROUPS); if (!pSpin || !pSpinGroups) return; int iChannelGroup = pSpin->GetValue(); pSpin->Clear(); pSpin->AddLabel(g_localizeStrings.Get(19217), EPG_SEARCH_UNSET); int iGroupId = (iChannelGroup == EPG_SEARCH_UNSET) ? XBMC_INTERNAL_GROUP_TV : iChannelGroup; CPVRChannelGroupPtr group = g_PVRChannelGroups->GetByIdFromAll(iGroupId); if (!group) group = g_PVRChannelGroups->GetGroupAllTV(); for (int iChannelPtr = 0; iChannelPtr < group->Size(); iChannelPtr++) { CFileItemPtr channel = group->GetByIndex(iChannelPtr); if (!channel || !channel->HasPVRChannelInfoTag()) continue; int iChannelNumber = group->GetChannelNumber(*channel->GetPVRChannelInfoTag()); pSpin->AddLabel(channel->GetPVRChannelInfoTag()->ChannelName().c_str(), iChannelNumber); } }
void CGUIDialogPVRGuideSearch::UpdateChannelSpin(void) { int iChannelGroup = GetSpinValue(CONTROL_SPIN_GROUPS); std::vector< std::pair<std::string, int> > labels; labels.push_back(std::make_pair(g_localizeStrings.Get(19217), EPG_SEARCH_UNSET)); CPVRChannelGroupPtr group; if (iChannelGroup == EPG_SEARCH_UNSET) group = g_PVRChannelGroups->GetGroupAll(m_searchFilter->m_bIsRadio); else group = g_PVRChannelGroups->GetByIdFromAll(iChannelGroup); if (!group) group = g_PVRChannelGroups->GetGroupAll(m_searchFilter->m_bIsRadio); for (int iChannelPtr = 0; iChannelPtr < group->Size(); iChannelPtr++) { CFileItemPtr channel = group->GetByIndex(iChannelPtr); if (!channel || !channel->HasPVRChannelInfoTag()) continue; int iChannelNumber = group->GetChannelNumber(*channel->GetPVRChannelInfoTag()); labels.push_back(std::make_pair(channel->GetPVRChannelInfoTag()->ChannelName(), iChannelNumber)); } SET_CONTROL_LABELS(CONTROL_SPIN_CHANNELS, m_searchFilter->m_iChannelNumber, &labels); }
bool EpgSearchFilter::MatchChannelNumber(const CEpgInfoTag &tag) const { bool bReturn(true); if (m_iChannelNumber != EPG_SEARCH_UNSET && g_PVRManager.IsStarted()) { CPVRChannelGroupPtr group = (m_iChannelGroup != EPG_SEARCH_UNSET) ? g_PVRChannelGroups->GetByIdFromAll(m_iChannelGroup) : g_PVRChannelGroups->GetGroupAllTV(); if (!group) group = CPVRManager::Get().ChannelGroups()->GetGroupAllTV(); bReturn = (m_iChannelNumber == (int) group->GetChannelNumber(*tag.ChannelTag())); } return bReturn; }
bool CPVREpgSearchFilter::MatchChannelNumber(const CPVREpgInfoTagPtr &tag) const { bool bReturn(true); if (m_channelNumber.IsValid() && CServiceBroker::GetPVRManager().IsStarted()) { CPVRChannelGroupPtr group = (m_iChannelGroup != EPG_SEARCH_UNSET) ? CServiceBroker::GetPVRManager().ChannelGroups()->GetByIdFromAll(m_iChannelGroup) : CServiceBroker::GetPVRManager().ChannelGroups()->GetGroupAllTV(); if (!group) group = CServiceBroker::GetPVRManager().ChannelGroups()->GetGroupAllTV(); bReturn = (m_channelNumber == group->GetChannelNumber(tag->Channel())); } return bReturn; }