void CGUIDialogPVRChannelsOSD::ShowInfo(int item) { /* Check file item is in list range and get his pointer */ if (item < 0 || item >= (int)m_vecItems->Size()) return; CFileItemPtr pItem = m_vecItems->Get(item); if (pItem && pItem->IsPVRChannel()) { /* Get the current running show on this channel from the EPG storage */ CPVREpgInfoTag *epgnow = pItem->GetPVRChannelInfoTag()->GetEPGNow(); if (!epgnow) return; CFileItem *itemNow = new CFileItem(*epgnow); /* Load programme info dialog */ CGUIDialogPVRGuideInfo* pDlgInfo = (CGUIDialogPVRGuideInfo*)g_windowManager.GetWindow(WINDOW_DIALOG_PVR_GUIDE_INFO); if (!pDlgInfo) return; /* inform dialog about the file item and open dialog window */ pDlgInfo->SetProgInfo(itemNow); pDlgInfo->DoModal(); delete itemNow; /* delete previuosly created FileItem */ } return; }
void SSortFileItem::ByChannel(CFileItemPtr &item) { if (!item) return; if (item->IsEPG() || item->IsPVRChannel()) { CPVRChannel *channel = item->GetPVRChannelInfoTag(); if (channel) item->SetSortLabel(channel->ChannelName()); } }
bool CGUIWindowPVRBase::OnContextButton(int itemNumber, CONTEXT_BUTTON button) { bool bReturn = false; switch(button) { case CONTEXT_BUTTON_MENU_HOOKS: if (itemNumber >= 0 && itemNumber < m_vecItems->Size()) { CFileItemPtr item = m_vecItems->Get(itemNumber); if (item->IsEPG() && item->GetEPGInfoTag()->HasPVRChannel()) g_PVRClients->ProcessMenuHooks(item->GetEPGInfoTag()->ChannelTag()->ClientID(), PVR_MENUHOOK_EPG, item.get()); else if (item->IsPVRChannel()) g_PVRClients->ProcessMenuHooks(item->GetPVRChannelInfoTag()->ClientID(), PVR_MENUHOOK_CHANNEL, item.get()); else if (item->IsDeletedPVRRecording()) g_PVRClients->ProcessMenuHooks(item->GetPVRRecordingInfoTag()->m_iClientId, PVR_MENUHOOK_DELETED_RECORDING, item.get()); else if (item->IsUsablePVRRecording()) g_PVRClients->ProcessMenuHooks(item->GetPVRRecordingInfoTag()->m_iClientId, PVR_MENUHOOK_RECORDING, item.get()); else if (item->IsPVRTimer()) g_PVRClients->ProcessMenuHooks(item->GetPVRTimerInfoTag()->m_iClientId, PVR_MENUHOOK_TIMER, item.get()); bReturn = true; } break; case CONTEXT_BUTTON_FIND: { int windowSearchId = m_bRadio ? WINDOW_RADIO_SEARCH : WINDOW_TV_SEARCH; CGUIWindowPVRBase *windowSearch = (CGUIWindowPVRBase*) g_windowManager.GetWindow(windowSearchId); if (windowSearch && itemNumber >= 0 && itemNumber < m_vecItems->Size()) { CFileItemPtr item = m_vecItems->Get(itemNumber); g_windowManager.ActivateWindow(windowSearchId); bReturn = windowSearch->OnContextButton(*item.get(), button); } break; } default: bReturn = false; } return bReturn || CGUIMediaWindow::OnContextButton(itemNumber, button); }