本文整理汇总了C++中CEpgInfoTag::HasPVRChannel方法的典型用法代码示例。如果您正苦于以下问题:C++ CEpgInfoTag::HasPVRChannel方法的具体用法?C++ CEpgInfoTag::HasPVRChannel怎么用?C++ CEpgInfoTag::HasPVRChannel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEpgInfoTag
的用法示例。
在下文中一共展示了CEpgInfoTag::HasPVRChannel方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: StartRecordFile
bool CGUIWindowPVRCommon::StartRecordFile(CFileItem *item)
{
if (!item->HasEPGInfoTag())
return false;
CEpgInfoTag *tag = item->GetEPGInfoTag();
if (!tag || !tag->HasPVRChannel())
return false;
CPVRTimerInfoTag *timer = g_PVRTimers->GetMatch(item);
if (timer)
{
CGUIDialogOK::ShowAndGetInput(19033,19034,0,0);
return false;
}
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);
CFileItem *newTimerItem = new CFileItem(*newtimer);
return g_PVRTimers->AddTimer(*newTimerItem);
}
示例2: ActionPlayEpg
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;
}
示例3: OnClickButtonSwitch
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;
}
示例4: FilterEntry
bool EpgSearchFilter::FilterEntry(const CEpgInfoTag &tag) const
{
return (MatchGenre(tag) &&
MatchDuration(tag) &&
MatchStartAndEndTimes(tag) &&
MatchSearchTerm(tag)) &&
(!tag.HasPVRChannel() ||
(MatchChannelNumber(tag) &&
MatchChannelGroup(tag) &&
(!m_bFTAOnly || !tag.ChannelTag()->IsEncrypted())));
}
示例5: StopRecordFile
bool CGUIWindowPVRCommon::StopRecordFile(CFileItem *item)
{
if (!item->HasEPGInfoTag())
return false;
CEpgInfoTag *tag = item->GetEPGInfoTag();
if (!tag || !tag->HasPVRChannel())
return false;
CPVRTimerInfoTag *timer = g_PVRTimers->GetMatch(item);
if (!timer || timer->m_bIsRepeating)
return false;
return g_PVRTimers->DeleteTimer(*timer);
}
示例6: ActionRecord
bool CGUIWindowPVRCommon::ActionRecord(CFileItem *item)
{
bool bReturn = false;
CEpgInfoTag *epgTag = item->GetEPGInfoTag();
if (!epgTag)
return bReturn;
if (!epgTag->HasPVRChannel())
return bReturn;
if (epgTag->Timer() == NULL)
{
/* create a confirmation dialog */
CGUIDialogYesNo* pDialog = (CGUIDialogYesNo*) g_windowManager.GetWindow(WINDOW_DIALOG_YES_NO);
if (!pDialog)
return bReturn;
pDialog->SetHeading(264);
pDialog->SetLine(0, "");
pDialog->SetLine(1, epgTag->Title());
pDialog->SetLine(2, "");
pDialog->DoModal();
/* prompt for the user's confirmation */
if (!pDialog->IsConfirmed())
return bReturn;
CPVRTimerInfoTag *newtimer = CPVRTimerInfoTag::CreateFromEpg(*epgTag);
CFileItem *item = new CFileItem(*newtimer);
bReturn = g_PVRTimers->AddTimer(*item);
}
else
{
CGUIDialogOK::ShowAndGetInput(19033,19034,0,0);
bReturn = true;
}
return bReturn;
}
示例7: ScheduleRecording
JSON_STATUS CPVROperations::ScheduleRecording(const CStdString &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result)
{
if (!g_PVRManager.IsStarted())
{
CLog::Log(LOGDEBUG, "JSONRPC: PVR not started");
return FailedToExecute;
}
int iEpgId = (int)parameterObject["epgid"].asInteger();
int iUniqueId = (int)parameterObject["uniqueid"].asInteger();
int iStartTime = (int)parameterObject["starttime"].asInteger();
if (iEpgId > 0 && iUniqueId > 0 && iStartTime > 0)
{
CDateTime startTime(iStartTime);
CEpgInfoTag *tag = g_EpgContainer.GetById(iEpgId)->GetTag(iUniqueId, startTime);
if (tag && tag->HasPVRChannel())
{
CLog::Log(LOGDEBUG, "JSONRPC: schedule recording - channel: '%s' start: '%s' end: '%s'", tag->PVRChannelName().c_str(), tag->StartAsLocalTime().GetAsLocalizedDateTime(false, false).c_str(), tag->EndAsLocalTime().GetAsLocalizedDateTime(false, false).c_str());
CPVRTimerInfoTag *newTimer = CPVRTimerInfoTag::CreateFromEpg(*tag);
bool bCreated = (newTimer != NULL);
bool bAdded = false;
if (bCreated)
{
CLog::Log(LOGDEBUG, "JSONRPC: recording scheduled");
bAdded = CPVRTimers::AddTimer(*newTimer);
}
else
{
CLog::Log(LOGERROR, "JSONRPC: failed to schedule recording");
}
delete newTimer;
return bAdded ? ACK : InternalError;
}
}
return InvalidParams;
}