本文整理汇总了C++中CPVRChannelPtr::IsHidden方法的典型用法代码示例。如果您正苦于以下问题:C++ CPVRChannelPtr::IsHidden方法的具体用法?C++ CPVRChannelPtr::IsHidden怎么用?C++ CPVRChannelPtr::IsHidden使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPVRChannelPtr
的用法示例。
在下文中一共展示了CPVRChannelPtr::IsHidden方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RemoveFromGroup
bool CPVRChannelGroupInternal::RemoveFromGroup(const CPVRChannelPtr &channel)
{
if (!IsGroupMember(channel))
return false;
/* check if this channel is currently playing if we are hiding it */
CPVRChannelPtr currentChannel(CServiceBroker::GetPVRManager().GetPlayingChannel());
if (currentChannel && currentChannel == channel)
{
HELPERS::ShowOKDialogText(CVariant{19098}, CVariant{19102});
return false;
}
CSingleLock lock(m_critSection);
/* switch the hidden flag */
if (!channel->IsHidden())
{
channel->SetHidden(true);
++m_iHiddenChannels;
}
else
{
channel->SetHidden(false);
if (m_iHiddenChannels > 0)
--m_iHiddenChannels;
}
/* renumber this list */
SortAndRenumber();
/* and persist */
return channel->Persist() &&
Persist();
}
示例2: GetEPGDate
CDateTime CPVRChannelGroup::GetEPGDate(EpgDateType epgDateType) const
{
CDateTime date;
CEpgPtr epg;
CPVRChannelPtr channel;
CSingleLock lock(m_critSection);
for (PVR_CHANNEL_GROUP_MEMBERS::const_iterator it = m_members.begin(); it != m_members.end(); ++it)
{
channel = it->second.channel;
if (!channel->IsHidden() && (epg = channel->GetEPG()))
{
CDateTime epgDate;
switch (epgDateType)
{
case EPG_FIRST_DATE:
epgDate = epg->GetFirstDate();
if (epgDate.IsValid() && (!date.IsValid() || epgDate < date))
date = epgDate;
break;
case EPG_LAST_DATE:
epgDate = epg->GetLastDate();
if (epgDate.IsValid() && (!date.IsValid() || epgDate > date))
date = epgDate;
break;
}
}
}
return date;
}
示例3: GetEPGNowOrNext
int CPVRChannelGroup::GetEPGNowOrNext(CFileItemList &results, bool bGetNext) const
{
int iInitialSize = results.Size();
CEpgInfoTagPtr epgNext;
CPVRChannelPtr channel;
CSingleLock lock(m_critSection);
for (PVR_CHANNEL_GROUP_SORTED_MEMBERS::const_iterator it = m_sortedMembers.begin(); it != m_sortedMembers.end(); ++it)
{
channel = (*it).channel;
CEpgPtr epg = channel->GetEPG();
if (epg && !channel->IsHidden())
{
epgNext = bGetNext ? epg->GetTagNext() : epg->GetTagNow();
if (epgNext)
{
CFileItemPtr entry(new CFileItem(epgNext));
entry->SetLabel2(epgNext->StartAsLocalTime().GetAsLocalizedTime("", false));
entry->SetPath(channel->Path());
entry->SetArt("thumb", channel->IconPath());
results.Add(entry);
}
}
}
return results.Size() - iInitialSize;
}
示例4: GetEPGAll
int CPVRChannelGroup::GetEPGAll(CFileItemList &results, bool bIncludeChannelsWithoutEPG /* = false */) const
{
int iInitialSize = results.Size();
CEpgInfoTagPtr epgTag;
CPVRChannelPtr channel;
CSingleLock lock(m_critSection);
for (PVR_CHANNEL_GROUP_SORTED_MEMBERS::const_iterator it = m_sortedMembers.begin(); it != m_sortedMembers.end(); ++it)
{
channel = (*it).channel;
if (!channel->IsHidden())
{
int iAdded = 0;
CEpgPtr epg = channel->GetEPG();
if (epg)
{
// XXX channel pointers aren't set in some occasions. this works around the issue, but is not very nice
epg->SetChannel(channel);
iAdded = epg->Get(results);
}
if (bIncludeChannelsWithoutEPG && iAdded == 0)
{
// Add dummy EPG tag associated with this channel
epgTag = CEpgInfoTag::CreateDefaultTag();
epgTag->SetPVRChannel(channel);
results.Add(CFileItemPtr(new CFileItem(epgTag)));
}
}
}
return results.Size() - iInitialSize;
}
示例5: AddToGroup
bool CPVRChannelGroupInternal::AddToGroup(CPVRChannel &channel, int iChannelNumber /* = 0 */)
{
CSingleLock lock(m_critSection);
bool bReturn(false);
/* get the actual channel since this is called from a fileitemlist copy */
CPVRChannelPtr realChannel = GetByChannelID(channel.ChannelID());
if (!realChannel)
return bReturn;
/* switch the hidden flag */
if (realChannel->IsHidden())
{
realChannel->SetHidden(false);
m_iHiddenChannels--;
SortAndRenumber();
}
/* move this channel and persist */
bReturn = (iChannelNumber > 0l) ?
MoveChannel(realChannel->ChannelNumber(), iChannelNumber, true) :
MoveChannel(realChannel->ChannelNumber(), m_members.size() - m_iHiddenChannels, true);
if (m_bLoaded)
realChannel->Persist();
return bReturn;
}
示例6: WriteClientChannelInfo
/*!
* @brief Copy over channel info from xbmcChannel to addonClient.
* @param xbmcChannel The channel on XBMC's side.
* @param addonChannel The channel on the addon's side.
*/
void CPVRClient::WriteClientChannelInfo(const CPVRChannelPtr &xbmcChannel, PVR_CHANNEL &addonChannel)
{
assert(xbmcChannel.get());
memset(&addonChannel, 0, sizeof(addonChannel));
addonChannel.iUniqueId = xbmcChannel->UniqueID();
addonChannel.iChannelNumber = xbmcChannel->ClientChannelNumber();
addonChannel.iSubChannelNumber = xbmcChannel->ClientSubChannelNumber();
strncpy(addonChannel.strChannelName, xbmcChannel->ClientChannelName().c_str(), sizeof(addonChannel.strChannelName) - 1);
strncpy(addonChannel.strIconPath, xbmcChannel->IconPath().c_str(), sizeof(addonChannel.strIconPath) - 1);
addonChannel.iEncryptionSystem = xbmcChannel->EncryptionSystem();
addonChannel.bIsRadio = xbmcChannel->IsRadio();
addonChannel.bIsHidden = xbmcChannel->IsHidden();
strncpy(addonChannel.strInputFormat, xbmcChannel->InputFormat().c_str(), sizeof(addonChannel.strInputFormat) - 1);
strncpy(addonChannel.strStreamURL, xbmcChannel->StreamURL().c_str(), sizeof(addonChannel.strStreamURL) - 1);
}
示例7: UpdateFromScraper
bool CEpg::UpdateFromScraper(time_t start, time_t end)
{
bool bGrabSuccess = false;
if (ScraperName() == "client")
{
CPVRChannelPtr channel = Channel();
if (!channel)
{
CLog::Log(LOGWARNING, "EPG - %s - channel not found, can't update", __FUNCTION__);
}
else if (!channel->EPGEnabled())
{
#if EPG_DEBUGGING
CLog::Log(LOGDEBUG, "EPG - %s - EPG updating disabled in the channel configuration", __FUNCTION__);
#endif
bGrabSuccess = true;
}
else if (channel->IsHidden())
{
#if EPG_DEBUGGING
CLog::Log(LOGDEBUG, "EPG - %s - channel '%s' on client '%i' is hidden", __FUNCTION__, channel->ChannelName().c_str(), channel->ClientID());
#endif
bGrabSuccess = true;
}
else if (!g_PVRClients->SupportsEPG(channel->ClientID()))
{
CLog::Log(LOGDEBUG, "EPG - %s - the backend for channel '%s' on client '%i' does not support EPGs", __FUNCTION__, channel->ChannelName().c_str(), channel->ClientID());
}
else
{
CLog::Log(LOGDEBUG, "EPG - %s - updating EPG for channel '%s' from client '%i'", __FUNCTION__, channel->ChannelName().c_str(), channel->ClientID());
bGrabSuccess = (g_PVRClients->GetEPGForChannel(channel, this, start, end) == PVR_ERROR_NO_ERROR);
}
}
else if (m_strScraperName.empty()) /* no grabber defined */
CLog::Log(LOGWARNING, "EPG - %s - no EPG scraper defined for table '%s'", __FUNCTION__, m_strName.c_str());
else
{
CLog::Log(LOGINFO, "EPG - %s - updating EPG table '%s' with scraper '%s'", __FUNCTION__, m_strName.c_str(), m_strScraperName.c_str());
CLog::Log(LOGWARNING, "loading the EPG via scraper has not been implemented yet");
// TODO: Add Support for Web EPG Scrapers here
}
return bGrabSuccess;
}
示例8: GetMembers
int CPVRChannelGroupInternal::GetMembers(CFileItemList &results, bool bGroupMembers /* = true */) const
{
int iOrigSize = results.Size();
CSingleLock lock(m_critSection);
for (unsigned int iChannelPtr = 0; iChannelPtr < m_members.size(); iChannelPtr++)
{
CPVRChannelPtr channel = m_members.at(iChannelPtr).channel;
if (!channel)
continue;
if (bGroupMembers != channel->IsHidden())
{
CFileItemPtr pFileItem(new CFileItem(*channel));
results.Add(pFileItem);
}
}
return results.Size() - iOrigSize;
}
示例9: GetEPGAll
int CPVRChannelGroup::GetEPGAll(CFileItemList &results) const
{
int iInitialSize = results.Size();
CEpg* epg;
CPVRChannelPtr channel;
CSingleLock lock(m_critSection);
for (PVR_CHANNEL_GROUP_SORTED_MEMBERS::const_iterator it = m_sortedMembers.begin(); it != m_sortedMembers.end(); ++it)
{
channel = (*it).channel;
if (!channel->IsHidden() && (epg = channel->GetEPG()) != NULL)
{
// XXX channel pointers aren't set in some occasions. this works around the issue, but is not very nice
epg->SetChannel(channel);
epg->Get(results);
}
}
return results.Size() - iInitialSize;
}
示例10: lock
std::vector<std::shared_ptr<CPVREpgInfoTag>> CPVRChannelGroup::GetEPGAll(bool bIncludeChannelsWithoutEPG /* = false */) const
{
std::vector<std::shared_ptr<CPVREpgInfoTag>> tags;
CPVREpgInfoTagPtr epgTag;
CPVRChannelPtr channel;
CSingleLock lock(m_critSection);
for (PVR_CHANNEL_GROUP_SORTED_MEMBERS::const_iterator it = m_sortedMembers.begin(); it != m_sortedMembers.end(); ++it)
{
channel = (*it).channel;
if (!channel->IsHidden())
{
bool bEmpty = false;
CPVREpgPtr epg = channel->GetEPG();
if (epg)
{
const std::vector<std::shared_ptr<CPVREpgInfoTag>> epgTags = epg->GetTags();
bEmpty = epgTags.empty();
if (!bEmpty)
tags.insert(tags.end(), epgTags.begin(), epgTags.end());
}
if (bIncludeChannelsWithoutEPG && bEmpty)
{
// Add dummy EPG tag associated with this channel
if (epg)
epgTag = std::make_shared<CPVREpgInfoTag>(epg->GetChannelData(), epg->EpgID());
else
epgTag = std::make_shared<CPVREpgInfoTag>(std::make_shared<CPVREpgChannelData>(*channel), -1);
tags.emplace_back(epgTag);
}
}
}
return tags;
}
示例11: RemoveFromGroup
bool CPVRChannelGroupInternal::RemoveFromGroup(const CPVRChannel &channel)
{
CSingleLock lock(m_critSection);
/* check if this channel is currently playing if we are hiding it */
CPVRChannelPtr currentChannel;
if (g_PVRManager.GetCurrentChannel(currentChannel) && *currentChannel == channel)
{
CGUIDialogOK::ShowAndGetInput(19098,19101,0,19102);
return false;
}
/* get the actual channel since this is called from a fileitemlist copy */
CPVRChannelPtr realChannel = GetByChannelID(channel.ChannelID());
if (!realChannel)
return false;
/* switch the hidden flag */
if (!realChannel->IsHidden())
{
realChannel->SetHidden(true);
++m_iHiddenChannels;
}
else
{
realChannel->SetHidden(false);
--m_iHiddenChannels;
}
/* renumber this list */
SortAndRenumber();
/* and persist */
return realChannel->Persist() &&
Persist();
}
示例12: RemoveFromGroup
bool CPVRChannelGroupInternal::RemoveFromGroup(const CPVRChannelPtr &channel)
{
CSingleLock lock(m_critSection);
assert(channel.get());
if (!IsGroupMember(channel))
return false;
/* check if this channel is currently playing if we are hiding it */
CPVRChannelPtr currentChannel(g_PVRManager.GetCurrentChannel());
if (currentChannel && currentChannel == channel)
{
CGUIDialogOK::ShowAndGetInput(CVariant{19098}, CVariant{19102});
return false;
}
/* switch the hidden flag */
if (!channel->IsHidden())
{
channel->SetHidden(true);
++m_iHiddenChannels;
}
else
{
channel->SetHidden(false);
if (m_iHiddenChannels > 0)
--m_iHiddenChannels;
}
/* renumber this list */
SortAndRenumber();
/* and persist */
return channel->Persist() &&
Persist();
}
示例13: IsGroupMember
bool CPVRChannelGroupInternal::IsGroupMember(const CPVRChannelPtr &channel) const
{
return !channel->IsHidden();
}
示例14: Update
void CGUIDialogPVRChannelManager::Update()
{
// lock our display, as this window is rendered from the player thread
g_graphicsContext.Lock();
m_viewControl.SetCurrentView(CONTROL_LIST_CHANNELS);
// empty the lists ready for population
Clear();
CPVRChannelGroupPtr channels = g_PVRChannelGroups->GetGroupAll(m_bIsRadio);
// No channels available, nothing to do.
if(!channels)
return;
std::vector<PVRChannelGroupMember> groupMembers(channels->GetMembers());
CFileItemPtr channelFile;
for (std::vector<PVRChannelGroupMember>::const_iterator it = groupMembers.begin(); it != groupMembers.end(); ++it)
{
channelFile = CFileItemPtr(new CFileItem((*it).channel));
if (!channelFile || !channelFile->HasPVRChannelInfoTag())
continue;
const CPVRChannelPtr channel(channelFile->GetPVRChannelInfoTag());
channelFile->SetProperty("ActiveChannel", !channel->IsHidden());
channelFile->SetProperty("Name", channel->ChannelName());
channelFile->SetProperty("UseEPG", channel->EPGEnabled());
channelFile->SetProperty("Icon", channel->IconPath());
channelFile->SetProperty("EPGSource", (int)0);
channelFile->SetProperty("ParentalLocked", channel->IsLocked());
channelFile->SetProperty("Number", StringUtils::Format("%i", channel->ChannelNumber()));
std::string clientName;
g_PVRClients->GetClientName(channel->ClientID(), clientName);
channelFile->SetProperty("ClientName", clientName);
channelFile->SetProperty("SupportsSettings", g_PVRClients->SupportsChannelSettings(channel->ClientID()));
m_channelItems->Add(channelFile);
}
{
std::vector< std::pair<std::string, int> > labels;
labels.push_back(std::make_pair(g_localizeStrings.Get(19210), 0));
/// TODO: Add Labels for EPG scrapers here
SET_CONTROL_LABELS(SPIN_EPGSOURCE_SELECTION, 0, &labels);
}
m_clientsWithSettingsList = g_PVRClients->GetClientsSupportingChannelSettings(m_bIsRadio);
if (!m_clientsWithSettingsList.empty())
m_bAllowNewChannel = true;
if (m_bAllowNewChannel)
SET_CONTROL_VISIBLE(BUTTON_NEW_CHANNEL);
else
SET_CONTROL_HIDDEN(BUTTON_NEW_CHANNEL);
Renumber();
m_viewControl.SetItems(*m_channelItems);
m_viewControl.SetSelectedItem(m_iSelected);
g_graphicsContext.Unlock();
}