本文整理汇总了C++中CPVRChannelGroupPtr::GetMembers方法的典型用法代码示例。如果您正苦于以下问题:C++ CPVRChannelGroupPtr::GetMembers方法的具体用法?C++ CPVRChannelGroupPtr::GetMembers怎么用?C++ CPVRChannelGroupPtr::GetMembers使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPVRChannelGroupPtr
的用法示例。
在下文中一共展示了CPVRChannelGroupPtr::GetMembers方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetDirectory
bool CPVRChannelGroupsContainer::GetDirectory(const CStdString& strPath, CFileItemList &results)
{
CStdString strBase(strPath);
/* get the filename from curl */
CURL url(strPath);
CStdString fileName = url.GetFileName();
URIUtils::RemoveSlashAtEnd(fileName);
if (fileName == "channels")
{
CFileItemPtr item;
/* all tv channels */
item.reset(new CFileItem(strBase + "/tv/", true));
item->SetLabel(g_localizeStrings.Get(19020));
item->SetLabelPreformated(true);
results.Add(item);
/* all radio channels */
item.reset(new CFileItem(strBase + "/radio/", true));
item->SetLabel(g_localizeStrings.Get(19021));
item->SetLabelPreformated(true);
results.Add(item);
return true;
}
else if (fileName == "channels/tv")
{
return GetGroupsDirectory(&results, false);
}
else if (fileName == "channels/radio")
{
return GetGroupsDirectory(&results, true);
}
else if (fileName.Left(12) == "channels/tv/")
{
CStdString strGroupName(fileName.substr(12));
URIUtils::RemoveSlashAtEnd(strGroupName);
CPVRChannelGroupPtr group = GetTV()->GetByName(strGroupName);
if (!group)
group = GetGroupAllTV();
if (group)
group->GetMembers(results, !fileName.Right(7).Equals(".hidden"));
return true;
}
else if (fileName.Left(15) == "channels/radio/")
{
CStdString strGroupName(fileName.substr(15));
URIUtils::RemoveSlashAtEnd(strGroupName);
CPVRChannelGroupPtr group = GetRadio()->GetByName(strGroupName);
if (!group)
group = GetGroupAllRadio();
if (group)
group->GetMembers(results, !fileName.Right(7).Equals(".hidden"));
return true;
}
return false;
}
示例2: UpdateChannelSpin
void CGUIDialogPVRGuideSearch::UpdateChannelSpin(void)
{
int iChannelGroup = GetSpinValue(CONTROL_SPIN_GROUPS);
std::vector< std::pair<std::string, int> > labels;
labels.push_back(std::make_pair(g_localizeStrings.Get(19217), EPG_SEARCH_UNSET));
CPVRChannelGroupPtr group;
if (iChannelGroup == EPG_SEARCH_UNSET)
group = g_PVRChannelGroups->GetGroupAll(m_searchFilter->m_bIsRadio);
else
group = g_PVRChannelGroups->GetByIdFromAll(iChannelGroup);
if (!group)
group = g_PVRChannelGroups->GetGroupAll(m_searchFilter->m_bIsRadio);
std::vector<PVRChannelGroupMember> groupMembers(group->GetMembers());
for (std::vector<PVRChannelGroupMember>::const_iterator it = groupMembers.begin(); it != groupMembers.end(); ++it)
{
if ((*it).channel)
labels.push_back(std::make_pair((*it).channel->ChannelName(), (*it).iChannelNumber));
}
SET_CONTROL_LABELS(CONTROL_SPIN_CHANNELS, m_searchFilter->m_iChannelNumber, &labels);
}
示例3: GetChannels
JSONRPC_STATUS CPVROperations::GetChannels(const std::string &method, ITransportLayer *transport, IClient *client, const CVariant ¶meterObject, CVariant &result)
{
if (!g_PVRManager.IsStarted())
return FailedToExecute;
CPVRChannelGroupsContainer *channelGroupContainer = g_PVRChannelGroups;
if (channelGroupContainer == NULL)
return FailedToExecute;
CPVRChannelGroupPtr channelGroup;
CVariant id = parameterObject["channelgroupid"];
if (id.isInteger())
channelGroup = channelGroupContainer->GetByIdFromAll((int)id.asInteger());
else if (id.isString())
channelGroup = channelGroupContainer->GetGroupAll(id.asString() == "allradio");
if (channelGroup == NULL)
return InvalidParams;
CFileItemList channels;
if (channelGroup->GetMembers(channels) < 0)
return InvalidParams;
HandleFileItemList("channelid", false, "channels", channels, parameterObject, result, true);
return OK;
}
示例4: Update
void CGUIDialogPVRChannelsOSD::Update()
{
// lock our display, as this window is rendered from the player thread
g_graphicsContext.Lock();
if (!IsObserving(g_infoManager))
g_infoManager.RegisterObserver(this);
if (!IsObserving(g_EpgContainer))
g_EpgContainer.RegisterObserver(this);
m_viewControl.SetCurrentView(DEFAULT_VIEW_LIST);
// empty the list ready for population
Clear();
CPVRChannelPtr channel(g_PVRManager.GetCurrentChannel());
if (channel)
{
CPVRChannelGroupPtr group = g_PVRManager.GetPlayingGroup(channel->IsRadio());
if (group)
{
group->GetMembers(*m_vecItems);
m_viewControl.SetItems(*m_vecItems);
if (!m_group)
{
m_group = group;
m_viewControl.SetSelectedItem(CGUIWindowPVRBase::GetSelectedItemPath(channel->IsRadio()));
SaveSelectedItemPath(group->GroupID());
}
}
}
g_graphicsContext.Unlock();
}
示例5: Update
void CGUIDialogPVRChannelsOSD::Update(bool selectPlayingChannel)
{
// lock our display, as this window is rendered from the player thread
g_graphicsContext.Lock();
if (!IsObserving(g_infoManager))
g_infoManager.RegisterObserver(this);
m_viewControl.SetCurrentView(DEFAULT_VIEW_LIST);
// empty the list ready for population
Clear();
CPVRChannelPtr channel;
g_PVRManager.GetCurrentChannel(channel);
CPVRChannelGroupPtr group = g_PVRManager.GetPlayingGroup(channel->IsRadio());
if (group)
{
group->GetMembers(*m_vecItems);
m_viewControl.SetItems(*m_vecItems);
m_viewControl.SetSelectedItem(selectPlayingChannel ? group->GetIndex(*channel) : GetLastSelectedItem(group->GroupID()));
}
g_graphicsContext.Unlock();
}
示例6: Update
void CGUIDialogPVRChannelsOSD::Update()
{
g_infoManager.RegisterObserver(this);
CServiceBroker::GetPVRManager().EpgContainer().RegisterObserver(this);
m_viewControl.SetCurrentView(DEFAULT_VIEW_LIST);
// empty the list ready for population
Clear();
CPVRChannelPtr channel(CServiceBroker::GetPVRManager().GetPlayingChannel());
if (channel)
{
CPVRChannelGroupPtr group = CServiceBroker::GetPVRManager().GetPlayingGroup(channel->IsRadio());
if (group)
{
group->GetMembers(*m_vecItems);
m_viewControl.SetItems(*m_vecItems);
if (!m_group)
{
m_group = group;
m_viewControl.SetSelectedItem(CServiceBroker::GetPVRManager().GUIActions()->GetSelectedItemPath(channel->IsRadio()));
SaveSelectedItemPath(group->GroupID());
}
}
}
}
示例7: FillChannelGroupDetails
void CPVROperations::FillChannelGroupDetails(const CPVRChannelGroupPtr &channelGroup, const CVariant ¶meterObject, CVariant &result, bool append /* = false */)
{
if (channelGroup == NULL)
return;
CVariant object(CVariant::VariantTypeObject);
object["channelgroupid"] = channelGroup->GroupID();
object["channeltype"] = channelGroup->IsRadio() ? "radio" : "tv";
object["label"] = channelGroup->GroupName();
if (append)
result.append(object);
else
{
CFileItemList channels;
channelGroup->GetMembers(channels);
object["channels"] = CVariant(CVariant::VariantTypeArray);
HandleFileItemList("channelid", false, "channels", channels, parameterObject["channels"], object, false);
result = object;
}
}
示例8: 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();
}
示例9: GetDirectory
bool CPVRChannelGroupsContainer::GetDirectory(const std::string& strPath, CFileItemList &results) const
{
std::string strBase(strPath);
URIUtils::RemoveSlashAtEnd(strBase);
/* get the filename from curl */
CURL url(strPath);
std::string fileName = url.GetFileName();
URIUtils::RemoveSlashAtEnd(fileName);
if (fileName == "channels")
{
CFileItemPtr item;
/* all tv channels */
item.reset(new CFileItem(strBase + "/tv/", true));
item->SetLabel(g_localizeStrings.Get(19020));
item->SetLabelPreformatted(true);
results.Add(item);
/* all radio channels */
item.reset(new CFileItem(strBase + "/radio/", true));
item->SetLabel(g_localizeStrings.Get(19021));
item->SetLabelPreformatted(true);
results.Add(item);
return true;
}
else if (fileName == "channels/tv")
{
return GetGroupsDirectory(&results, false);
}
else if (fileName == "channels/radio")
{
return GetGroupsDirectory(&results, true);
}
else if (StringUtils::StartsWith(fileName, "channels/tv/"))
{
std::string strGroupName(fileName.substr(12));
URIUtils::RemoveSlashAtEnd(strGroupName);
CPVRChannelGroupPtr group;
if (strGroupName == "*") // all channels
group = GetGroupAllTV();
else
group = GetTV()->GetByName(strGroupName);
if (group)
{
group->GetMembers(results, !StringUtils::EndsWithNoCase(fileName, ".hidden"));
}
else
{
CLog::Log(LOGERROR, "CPVRChannelGroupsContainer - %s - unable to obtain members of channel group '%s'", __FUNCTION__, strGroupName.c_str());
return false;
}
FilterDirectory(url, results);
return true;
}
else if (StringUtils::StartsWith(fileName, "channels/radio/"))
{
std::string strGroupName(fileName.substr(15));
URIUtils::RemoveSlashAtEnd(strGroupName);
CPVRChannelGroupPtr group;
if (strGroupName == "*") // all channels
group = GetGroupAllRadio();
else
group = GetRadio()->GetByName(strGroupName);
if (group)
{
group->GetMembers(results, !StringUtils::EndsWithNoCase(fileName, ".hidden"));
}
else
{
CLog::Log(LOGERROR, "CPVRChannelGroupsContainer - %s - unable to obtain members of channel group '%s'", __FUNCTION__, strGroupName.c_str());
return false;
}
FilterDirectory(url, results);
return true;
}
return false;
}
示例10: StartPlayback
bool CPVRManager::StartPlayback(PlaybackType type /* = PlaybackTypeAny */)
{
bool bIsRadio(false);
bool bReturn(false);
bool bIsPlaying(false);
CFileItemPtr channel;
// check if the desired PlaybackType is already playing,
// and if not, try to grab the last played channel of this type
switch (type)
{
case PlaybackTypeRadio:
if (IsPlayingRadio())
bIsPlaying = true;
else
channel = m_channelGroups->GetGroupAllRadio()->GetLastPlayedChannel();
bIsRadio = true;
break;
case PlaybackTypeTv:
if (IsPlayingTV())
bIsPlaying = true;
else
channel = m_channelGroups->GetGroupAllTV()->GetLastPlayedChannel();
break;
default:
if (IsPlaying())
bIsPlaying = true;
else
channel = m_channelGroups->GetLastPlayedChannel();
}
// we're already playing? Then nothing to do
if (bIsPlaying)
return true;
// if we have a last played channel, start playback
if (channel && channel->HasPVRChannelInfoTag())
{
bReturn = StartPlayback(channel->GetPVRChannelInfoTag(), false);
}
else
{
// if we don't, find the active channel group of the demanded type and play it's first channel
CPVRChannelGroupPtr channelGroup = GetPlayingGroup(bIsRadio);
if (channelGroup)
{
// try to start playback of first channel in this group
std::vector<PVRChannelGroupMember> groupMembers(channelGroup->GetMembers());
if (!groupMembers.empty())
bReturn = StartPlayback((*groupMembers.begin()).channel, false);
}
}
if (!bReturn)
{
CLog::Log(LOGNOTICE, "PVRManager - %s - could not determine %s channel to start playback with. No last played channel found, and first channel of active group could also not be determined.", __FUNCTION__, bIsRadio ? "radio": "tv");
std::string msg = StringUtils::Format(g_localizeStrings.Get(19035).c_str(), g_localizeStrings.Get(bIsRadio ? 19021 : 19020).c_str()); // RADIO/TV could not be played. Check the log for details.
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error,
g_localizeStrings.Get(19166), // PVR information
msg);
}
return bReturn;
}