bool CGUIWindowPVRBase::ActionPlayEpg(CFileItem *item) { if (!item || !item->HasEPGInfoTag()) return false; CPVRChannelPtr channel; CEpgInfoTag *epgTag = item->GetEPGInfoTag(); if (epgTag->HasPVRChannel()) channel = epgTag->ChannelTag(); if (!channel || !g_PVRManager.CheckParentalLock(*channel)) return false; CFileItem fileItem; if (epgTag->HasRecording()) fileItem = CFileItem(*epgTag->Recording()); else fileItem = CFileItem(*channel); g_application.SwitchToFullScreen(); if (!PlayFile(&fileItem)) { // CHANNELNAME could not be played. Check the log for details. std::string msg = StringUtils::Format(g_localizeStrings.Get(19035).c_str(), channel->ChannelName().c_str()); CGUIDialogOK::ShowAndGetInput(19033, 0, msg, 0); return false; } return true; }
bool CGUIDialogPVRGuideInfo::OnClickButtonSwitch(CGUIMessage &message) { bool bReturn = false; if (message.GetSenderId() == CONTROL_BTN_SWITCH) { Close(); PlayBackRet ret = PLAYBACK_CANCELED; CEpgInfoTag *epgTag = m_progItem->GetEPGInfoTag(); if (epgTag) { if (epgTag->HasRecording()) ret = g_application.PlayFile(CFileItem(*epgTag->Recording())); else if (epgTag->HasPVRChannel()) ret = g_application.PlayFile(CFileItem(*epgTag->ChannelTag())); } else ret = PLAYBACK_FAIL; if (ret == PLAYBACK_FAIL) { CStdString msg = StringUtils::Format(g_localizeStrings.Get(19035).c_str(), g_localizeStrings.Get(19029).c_str()); // Channel could not be played. Check the log for details. CGUIDialogOK::ShowAndGetInput(19033, 0, msg, 0); } else if (ret == PLAYBACK_OK) { bReturn = true; } } return bReturn; }