本文整理汇总了C++中CFileItem::GetPVRChannelInfoTag方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItem::GetPVRChannelInfoTag方法的具体用法?C++ CFileItem::GetPVRChannelInfoTag怎么用?C++ CFileItem::GetPVRChannelInfoTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItem
的用法示例。
在下文中一共展示了CFileItem::GetPVRChannelInfoTag方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnContextButton
bool CGUIWindowPVRSearch::OnContextButton(const CFileItem &item, CONTEXT_BUTTON button)
{
bool bReturn = false;
switch(button)
{
case CONTEXT_BUTTON_FIND:
{
m_searchfilter.Reset();
// construct the search term
if (item.IsEPG())
m_searchfilter.m_strSearchTerm = "\"" + item.GetEPGInfoTag()->Title() + "\"";
else if (item.IsPVRChannel())
{
const CEpgInfoTagPtr tag(item.GetPVRChannelInfoTag()->GetEPGNow());
if (tag)
m_searchfilter.m_strSearchTerm = "\"" + tag->Title() + "\"";
}
else if (item.IsUsablePVRRecording())
m_searchfilter.m_strSearchTerm = "\"" + item.GetPVRRecordingInfoTag()->m_strTitle + "\"";
else if (item.IsPVRTimer())
{
const CPVRTimerInfoTagPtr info(item.GetPVRTimerInfoTag());
const CEpgInfoTagPtr tag(info->GetEpgInfoTag());
if (tag)
m_searchfilter.m_strSearchTerm = "\"" + tag->Title() + "\"";
else
m_searchfilter.m_strSearchTerm = "\"" + info->m_strTitle + "\"";
}
m_bSearchConfirmed = true;
Refresh(true);
bReturn = true;
break;
}
default:
bReturn = false;
}
return bReturn;
}
示例2: UpdateChannel
bool CPVRChannelGroup::UpdateChannel(const CFileItem &item, bool bHidden, bool bVirtual, bool bEPGEnabled, bool bParentalLocked, int iEPGSource, int iChannelNumber, const std::string &strChannelName, const std::string &strIconPath, const std::string &strStreamURL, bool bUserSetIcon)
{
if (!item.HasPVRChannelInfoTag())
return false;
CSingleLock lock(m_critSection);
/* get the real channel from the group */
CPVRChannelPtr channel = GetByUniqueID(item.GetPVRChannelInfoTag()->UniqueID());
if (!channel)
return false;
channel->SetChannelName(strChannelName, true);
channel->SetHidden(bHidden);
channel->SetLocked(bParentalLocked);
channel->SetIconPath(strIconPath, bUserSetIcon);
if (bVirtual)
channel->SetStreamURL(strStreamURL);
if (iEPGSource == 0)
channel->SetEPGScraper("client");
// TODO add other scrapers
channel->SetEPGEnabled(bEPGEnabled);
/* set new values in the channel tag */
if (bHidden)
{
SortByChannelNumber(); // or previous changes will be overwritten
RemoveFromGroup(*channel);
}
else
{
SetChannelNumber(*channel, iChannelNumber);
}
return true;
}
示例3: UpdateChannel
bool CPVRChannelGroup::UpdateChannel(const CFileItem &item, bool bHidden, bool bEPGEnabled, bool bParentalLocked, int iEPGSource, int iChannelNumber, const std::string &strChannelName, const std::string &strIconPath, bool bUserSetIcon)
{
if (!item.HasPVRChannelInfoTag())
return false;
CSingleLock lock(m_critSection);
/* get the real channel from the group */
const PVRChannelGroupMember& member(GetByUniqueID(item.GetPVRChannelInfoTag()->StorageId()));
if (!member.channel)
return false;
member.channel->SetChannelName(strChannelName, true);
member.channel->SetHidden(bHidden);
member.channel->SetLocked(bParentalLocked);
member.channel->SetIconPath(strIconPath, bUserSetIcon);
if (iEPGSource == 0)
member.channel->SetEPGScraper("client");
//! @todo add other scrapers
member.channel->SetEPGEnabled(bEPGEnabled);
/* set new values in the channel tag */
if (bHidden)
{
SortByChannelNumber(); // or previous changes will be overwritten
RemoveFromGroup(member.channel);
}
else
{
SetChannelNumber(member.channel, iChannelNumber);
}
return true;
}
示例4: UpdateItem
bool CPVRManager::UpdateItem(CFileItem& item)
{
/* Don't update if a recording is played */
if (item.IsPVRRecording())
return false;
if (!item.IsPVRChannel())
{
CLog::Log(LOGERROR, "CPVRManager - %s - no channel tag provided", __FUNCTION__);
return false;
}
CSingleLock lock(m_critSection);
if (!m_currentFile || *m_currentFile->GetPVRChannelInfoTag() == *item.GetPVRChannelInfoTag())
return false;
g_application.CurrentFileItem() = *m_currentFile;
g_infoManager.SetCurrentItem(*m_currentFile);
CPVRChannel* channelTag = item.GetPVRChannelInfoTag();
CEpgInfoTag epgTagNow;
bool bHasTagNow = channelTag->GetEPGNow(epgTagNow);
if (channelTag->IsRadio())
{
CMusicInfoTag* musictag = item.GetMusicInfoTag();
if (musictag)
{
musictag->SetTitle(bHasTagNow ?
epgTagNow.Title() :
g_guiSettings.GetBool("epg.hidenoinfoavailable") ?
StringUtils::EmptyString :
g_localizeStrings.Get(19055)); // no information available
if (bHasTagNow)
musictag->SetGenre(epgTagNow.Genre());
musictag->SetDuration(bHasTagNow ? epgTagNow.GetDuration() : 3600);
musictag->SetURL(channelTag->Path());
musictag->SetArtist(channelTag->ChannelName());
musictag->SetAlbumArtist(channelTag->ChannelName());
musictag->SetLoaded(true);
musictag->SetComment(StringUtils::EmptyString);
musictag->SetLyrics(StringUtils::EmptyString);
}
}
else
{
CVideoInfoTag *videotag = item.GetVideoInfoTag();
if (videotag)
{
videotag->m_strTitle = bHasTagNow ?
epgTagNow.Title() :
g_guiSettings.GetBool("epg.hidenoinfoavailable") ?
StringUtils::EmptyString :
g_localizeStrings.Get(19055); // no information available
if (bHasTagNow)
videotag->m_genre = epgTagNow.Genre();
videotag->m_strPath = channelTag->Path();
videotag->m_strFileNameAndPath = channelTag->Path();
videotag->m_strPlot = bHasTagNow ? epgTagNow.Plot() : StringUtils::EmptyString;
videotag->m_strPlotOutline = bHasTagNow ? epgTagNow.PlotOutline() : StringUtils::EmptyString;
videotag->m_iEpisode = bHasTagNow ? epgTagNow.EpisodeNum() : 0;
}
}
return false;
}
示例5: UpdateItem
bool CPVRManager::UpdateItem(CFileItem& item)
{
/* Don't update if a recording is played */
if (item.IsPVRRecording())
return false;
if (!item.IsPVRChannel())
{
CLog::Log(LOGERROR, "CPVRManager - %s - no channel tag provided", __FUNCTION__);
return false;
}
CSingleLock lock(m_critSection);
if (!m_currentFile || *m_currentFile->GetPVRChannelInfoTag() == *item.GetPVRChannelInfoTag())
return false;
g_application.SetCurrentFileItem(*m_currentFile);
CFileItemPtr itemptr(new CFileItem(*m_currentFile));
g_infoManager.SetCurrentItem(itemptr);
CPVRChannelPtr channelTag(item.GetPVRChannelInfoTag());
CEpgInfoTagPtr epgTagNow(channelTag->GetEPGNow());
if (channelTag->IsRadio())
{
CMusicInfoTag* musictag = item.GetMusicInfoTag();
if (musictag)
{
musictag->SetTitle(epgTagNow ?
epgTagNow->Title() :
CSettings::GetInstance().GetBool(CSettings::SETTING_EPG_HIDENOINFOAVAILABLE) ?
"" :
g_localizeStrings.Get(19055)); // no information available
if (epgTagNow)
musictag->SetGenre(epgTagNow->Genre());
musictag->SetDuration(epgTagNow ? epgTagNow->GetDuration() : 3600);
musictag->SetURL(channelTag->Path());
musictag->SetArtist(channelTag->ChannelName());
musictag->SetAlbumArtist(channelTag->ChannelName());
musictag->SetLoaded(true);
musictag->SetComment("");
musictag->SetLyrics("");
}
}
else
{
CVideoInfoTag *videotag = item.GetVideoInfoTag();
if (videotag)
{
videotag->m_strTitle = epgTagNow ?
epgTagNow->Title() :
CSettings::GetInstance().GetBool(CSettings::SETTING_EPG_HIDENOINFOAVAILABLE) ?
"" :
g_localizeStrings.Get(19055); // no information available
if (epgTagNow)
videotag->m_genre = epgTagNow->Genre();
videotag->m_strPath = channelTag->Path();
videotag->m_strFileNameAndPath = channelTag->Path();
videotag->m_strPlot = epgTagNow ? epgTagNow->Plot() : "";
videotag->m_strPlotOutline = epgTagNow ? epgTagNow->PlotOutline() : "";
videotag->m_iEpisode = epgTagNow ? epgTagNow->EpisodeNumber() : 0;
}
}
return false;
}