本文整理汇总了C++中CEpgInfoTag::ChannelTag方法的典型用法代码示例。如果您正苦于以下问题:C++ CEpgInfoTag::ChannelTag方法的具体用法?C++ CEpgInfoTag::ChannelTag怎么用?C++ CEpgInfoTag::ChannelTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CEpgInfoTag
的用法示例。
在下文中一共展示了CEpgInfoTag::ChannelTag方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: StartRecordFile
bool CGUIWindowPVRCommon::StartRecordFile(CFileItem *item)
{
if (!item->HasEPGInfoTag())
return false;
CEpgInfoTag *tag = item->GetEPGInfoTag();
if (!tag || !tag->ChannelTag() || tag->ChannelTag()->ChannelNumber() <= 0)
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->ChannelTag()->ChannelName());
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: StopRecordFile
bool CGUIWindowPVRCommon::StopRecordFile(CFileItem *item)
{
if (!item->HasEPGInfoTag())
return false;
CEpgInfoTag *tag = item->GetEPGInfoTag();
if (!tag || !tag->ChannelTag() || tag->ChannelTag()->ChannelNumber() <= 0)
return false;
CPVRTimerInfoTag *timer = g_PVRTimers->GetMatch(item);
if (!timer || timer->m_bIsRepeating)
return false;
return g_PVRTimers->DeleteTimer(*timer);
}
示例3: UpdatePlayingTag
void CPVRGUIInfo::UpdatePlayingTag(void)
{
CPVRChannelPtr currentChannel;
CPVRRecording recording;
if (g_PVRManager.GetCurrentChannel(currentChannel))
{
CEpgInfoTag epgTag;
bool bHasEpgTag = GetPlayingTag(epgTag);
CPVRChannelPtr channel;
if (bHasEpgTag)
channel = epgTag.ChannelTag();
if (!bHasEpgTag || !epgTag.IsActive() ||
!channel || *channel != *currentChannel)
{
CEpgInfoTag newTag;
{
CSingleLock lock(m_critSection);
ResetPlayingTag();
if (currentChannel->GetEPGNow(newTag))
{
m_playingEpgTag = new CEpgInfoTag(newTag);
m_iDuration = m_playingEpgTag->GetDuration() * 1000;
}
}
g_PVRManager.UpdateCurrentFile();
}
}
else if (g_PVRClients->GetPlayingRecording(recording))
{
ResetPlayingTag();
m_iDuration = recording.GetDuration() * 1000;
}
}
示例4: 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;
}
示例5: 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;
}
示例6: 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())));
}
示例7: MatchChannelGroup
bool EpgSearchFilter::MatchChannelGroup(const CEpgInfoTag &tag) const
{
bool bReturn(true);
if (m_iChannelGroup != EPG_SEARCH_UNSET && g_PVRManager.IsStarted())
{
const CPVRChannelGroup *group = g_PVRChannelGroups->GetByIdFromAll(m_iChannelGroup);
bReturn = (group && group->IsGroupMember(*tag.ChannelTag()));
}
return bReturn;
}
示例8: MatchChannelNumber
bool EpgSearchFilter::MatchChannelNumber(const CEpgInfoTag &tag) const
{
bool bReturn(true);
if (m_iChannelNumber != EPG_SEARCH_UNSET && g_PVRManager.IsStarted())
{
const CPVRChannelGroup *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;
}
示例9: ActionRecord
bool CGUIWindowPVRCommon::ActionRecord(CFileItem *item)
{
bool bReturn = false;
CEpgInfoTag *epgTag = item->GetEPGInfoTag();
if (!epgTag)
return bReturn;
CPVRChannelPtr channel = epgTag->ChannelTag();
if (!channel || !g_PVRManager.CheckParentalLock(*channel))
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);
if (newTimer)
{
bReturn = g_PVRTimers->AddTimer(*newTimer);
delete newTimer;
}
else
{
bReturn = false;
}
}
else
{
CGUIDialogOK::ShowAndGetInput(19033,19034,0,0);
bReturn = true;
}
return bReturn;
}
示例10: StartRecordFile
bool CGUIWindowPVRCommon::StartRecordFile(CFileItem *item)
{
if (!item->HasEPGInfoTag())
return false;
CEpgInfoTag *tag = item->GetEPGInfoTag();
CPVRChannelPtr channel;
if (tag)
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;
}
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;
}
示例11: 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->ChannelTag())
{
CLog::Log(LOGDEBUG, "JSONRPC: schedule recording - channel: '%s' start: '%s' end: '%s'", tag->ChannelTag()->ChannelName().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;
}
示例12: ActionPlayEpg
bool CGUIWindowPVRCommon::ActionPlayEpg(CFileItem *item)
{
bool bReturn = false;
CEpgInfoTag *epgTag = item->GetEPGInfoTag();
if (!epgTag)
return bReturn;
const CPVRChannel *channel = epgTag->ChannelTag();
if (!channel || channel->ChannelNumber() > 0)
return bReturn;
bReturn = g_application.PlayFile(CFileItem(*channel));
if (!bReturn)
{
/* cannot play file */
CGUIDialogOK::ShowAndGetInput(19033,0,19035,0);
}
return bReturn;
}
示例13: ActionPlayEpg
bool CGUIWindowPVRCommon::ActionPlayEpg(CFileItem *item)
{
CEpgInfoTag *epgTag = item->GetEPGInfoTag();
if (!epgTag)
return false;
CPVRChannelPtr channel = epgTag->ChannelTag();
if (!channel || channel->ChannelNumber() > 0 ||
!g_PVRManager.CheckParentalLock(*channel))
return false;
PlayBackRet ret = g_application.PlayFile(CFileItem(*channel));
if (ret == PLAYBACK_FAIL)
{
CStdString msg;
msg.Format(g_localizeStrings.Get(19035).c_str(), channel->ChannelName().c_str()); // CHANNELNAME could not be played. Check the log for details.
CGUIDialogOK::ShowAndGetInput(19033, 0, msg, 0);
}
return ret == PLAYBACK_OK;
}
示例14: MatchChannelType
bool EpgSearchFilter::MatchChannelType(const CEpgInfoTag &tag) const
{
return (g_PVRManager.IsStarted() && tag.ChannelTag()->IsRadio() == m_bIsRadio);
}