bool CGUIWindowPVRBase::StartRecordFile(CFileItem *item, bool bAdvanced) { if (!item->HasEPGInfoTag()) return false; const CEpgInfoTagPtr tag = item->GetEPGInfoTag(); CPVRChannelPtr channel = tag->ChannelTag(); if (!channel || !g_PVRManager.CheckParentalLock(channel)) return false; CFileItemPtr timer = g_PVRTimers->GetTimerForEpgTag(item); if (timer && timer->HasPVRTimerInfoTag()) { CGUIDialogOK::ShowAndGetInput(CVariant{19033}, CVariant{19034}); return false; } bool bReturn(false); if (bAdvanced) { CPVRTimerInfoTagPtr newTimer = CPVRTimerInfoTag::CreateFromEpg(tag, true); if (newTimer) { CFileItem *newItem = new CFileItem(newTimer); if (ShowTimerSettings(newItem)) bReturn = g_PVRTimers->AddTimer(newItem->GetPVRTimerInfoTag()); delete newItem; } } else { // ask for confirmation before starting a timer if (!CGUIDialogYesNo::ShowAndGetInput( CVariant{264} /* "Record" */, CVariant{tag->PVRChannelName()}, CVariant{""}, CVariant{tag->Title()})) return false; CPVRTimerInfoTagPtr newTimer = CPVRTimerInfoTag::CreateFromEpg(tag); if (newTimer) bReturn = g_PVRTimers->AddTimer(newTimer); } return bReturn; }
bool CGUIWindowPVRBase::StartRecordFile(const CFileItem &item) { if (!item.HasEPGInfoTag()) return false; const CEpgInfoTagPtr tag = item.GetEPGInfoTag(); CPVRChannelPtr channel = tag->ChannelTag(); if (!channel || !g_PVRManager.CheckParentalLock(*channel)) return false; CFileItemPtr timer = g_PVRTimers->GetTimerForEpgTag(&item); if (timer && timer->HasPVRTimerInfoTag()) { CGUIDialogOK::ShowAndGetInput(19033,19034,0,0); return false; } // ask for confirmation before starting a timer CGUIDialogYesNo* pDialog = (CGUIDialogYesNo*)g_windowManager.GetWindow(WINDOW_DIALOG_YES_NO); if (!pDialog) return false; pDialog->SetHeading(264); pDialog->SetLine(0, tag->PVRChannelName()); pDialog->SetLine(1, ""); pDialog->SetLine(2, tag->Title()); pDialog->DoModal(); if (!pDialog->IsConfirmed()) return false; CPVRTimerInfoTag *newTimer = CPVRTimerInfoTag::CreateFromEpg(*tag); bool bReturn(false); if (newTimer) { bReturn = g_PVRTimers->AddTimer(*newTimer); delete newTimer; } return bReturn; }