本文整理汇总了C++中CFileItemPtr::GetPVRChannelInfoTag方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItemPtr::GetPVRChannelInfoTag方法的具体用法?C++ CFileItemPtr::GetPVRChannelInfoTag怎么用?C++ CFileItemPtr::GetPVRChannelInfoTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItemPtr
的用法示例。
在下文中一共展示了CFileItemPtr::GetPVRChannelInfoTag方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
for (int iChannelPtr = 0; iChannelPtr < group->Size(); iChannelPtr++)
{
CFileItemPtr channel = group->GetByIndex(iChannelPtr);
if (!channel || !channel->HasPVRChannelInfoTag())
continue;
int iChannelNumber = group->GetChannelNumber(*channel->GetPVRChannelInfoTag());
labels.push_back(std::make_pair(channel->GetPVRChannelInfoTag()->ChannelName(), iChannelNumber));
}
SET_CONTROL_LABELS(CONTROL_SPIN_CHANNELS, m_searchFilter->m_iChannelNumber, &labels);
}
示例2: UpdateChannelSpin
void CGUIDialogPVRGuideSearch::UpdateChannelSpin(void)
{
CGUISpinControlEx *pSpin = (CGUISpinControlEx *)GetControl(CONTROL_SPIN_CHANNELS);
CGUISpinControlEx *pSpinGroups = (CGUISpinControlEx *)GetControl(CONTROL_SPIN_GROUPS);
if (!pSpin || !pSpinGroups)
return;
int iChannelGroup = pSpin->GetValue();
pSpin->Clear();
pSpin->AddLabel(g_localizeStrings.Get(19217), EPG_SEARCH_UNSET);
int iGroupId = (iChannelGroup == EPG_SEARCH_UNSET) ?
XBMC_INTERNAL_GROUP_TV :
iChannelGroup;
CPVRChannelGroupPtr group = g_PVRChannelGroups->GetByIdFromAll(iGroupId);
if (!group)
group = g_PVRChannelGroups->GetGroupAllTV();
for (int iChannelPtr = 0; iChannelPtr < group->Size(); iChannelPtr++)
{
CFileItemPtr channel = group->GetByIndex(iChannelPtr);
if (!channel || !channel->HasPVRChannelInfoTag())
continue;
int iChannelNumber = group->GetChannelNumber(*channel->GetPVRChannelInfoTag());
pSpin->AddLabel(channel->GetPVRChannelInfoTag()->ChannelName().c_str(), iChannelNumber);
}
}
示例3: TranslatePVRFilename
std::string CPVRFile::TranslatePVRFilename(const std::string& pathFile)
{
if (!g_PVRManager.IsStarted())
return "";
std::string FileName = pathFile;
if (FileName.substr(0, 14) == "pvr://channels")
{
CFileItemPtr channel = g_PVRChannelGroups->GetByPath(FileName);
if (channel && channel->HasPVRChannelInfoTag())
{
std::string stream = channel->GetPVRChannelInfoTag()->StreamURL();
if(!stream.empty())
{
if (stream.compare(6, 7, "stream/") == 0)
{
// pvr://stream
// This function was added to retrieve the stream URL for this item
// Is is used for the MediaPortal (ffmpeg) PVR addon
// see PVRManager.cpp
return g_PVRClients->GetStreamURL(*channel->GetPVRChannelInfoTag());
}
else
{
return stream;
}
}
}
}
return FileName;
}
示例4: ChannelUpDown
bool CPVRManager::ChannelUpDown(unsigned int *iNewChannelNumber, bool bPreview, bool bUp)
{
bool bReturn = false;
if (IsPlayingTV() || IsPlayingRadio())
{
CFileItem currentFile(g_application.CurrentFileItem());
CPVRChannel *currentChannel = currentFile.GetPVRChannelInfoTag();
CPVRChannelGroupPtr group = GetPlayingGroup(currentChannel->IsRadio());
if (group)
{
CFileItemPtr newChannel = bUp ?
group->GetByChannelUp(*currentChannel) :
group->GetByChannelDown(*currentChannel);
if (newChannel && newChannel->HasPVRChannelInfoTag() &&
PerformChannelSwitch(*newChannel->GetPVRChannelInfoTag(), bPreview))
{
*iNewChannelNumber = newChannel->GetPVRChannelInfoTag()->ChannelNumber();
bReturn = true;
}
}
}
return bReturn;
}
示例5: GetByChannelUpDown
CFileItemPtr CPVRChannelGroup::GetByChannelUpDown(const CFileItem &channel, bool bChannelUp) const
{
if (channel.HasPVRChannelInfoTag())
{
CSingleLock lock(m_critSection);
int iChannelIndex = GetIndex(*channel.GetPVRChannelInfoTag());
bool bGotChannel(false);
while (!bGotChannel)
{
if (bChannelUp)
iChannelIndex++;
else
iChannelIndex--;
if (iChannelIndex >= (int)m_members.size())
iChannelIndex = 0;
else if (iChannelIndex < 0)
iChannelIndex = m_members.size() - 1;
CFileItemPtr current = GetByIndex(iChannelIndex);
if (!current || *current->GetPVRChannelInfoTag() == *channel.GetPVRChannelInfoTag())
break;
if (!current->GetPVRChannelInfoTag()->IsHidden())
return current;
}
}
CFileItemPtr retVal(new CFileItem);
return retVal;
}
示例6: GetLastPlayedChannel
CFileItemPtr CPVRChannelGroupsContainer::GetLastPlayedChannel(void) const
{
CFileItemPtr channelTV = m_groupsTV->GetGroupAll()->GetLastPlayedChannel();
CFileItemPtr channelRadio = m_groupsRadio->GetGroupAll()->GetLastPlayedChannel();
if (!channelTV ||
(channelRadio && channelRadio->GetPVRChannelInfoTag()->LastWatched() > channelTV->GetPVRChannelInfoTag()->LastWatched()))
return channelRadio;
return channelTV;
}
示例7: RenameChannel
void CGUIDialogPVRChannelManager::RenameChannel(CFileItemPtr pItem)
{
std::string strChannelName = pItem->GetProperty("Name").asString();
if (strChannelName != pItem->GetPVRChannelInfoTag()->ChannelName())
{
CPVRChannelPtr channel = pItem->GetPVRChannelInfoTag();
channel->SetChannelName(strChannelName);
if (!g_PVRClients->RenameChannel(channel))
CGUIDialogOK::ShowAndGetInput(2103, 0, 16029, 0); // Add-on error;Check the log file for details.
}
}
示例8: RenameChannel
void CGUIDialogPVRChannelManager::RenameChannel(const CFileItemPtr &pItem)
{
std::string strChannelName = pItem->GetProperty("Name").asString();
if (strChannelName != pItem->GetPVRChannelInfoTag()->ChannelName())
{
CPVRChannelPtr channel = pItem->GetPVRChannelInfoTag();
channel->SetChannelName(strChannelName);
if (!CServiceBroker::GetPVRManager().Clients()->RenameChannel(channel))
CGUIDialogOK::ShowAndGetInput(CVariant{2103}, CVariant{16029}); // Add-on error;Check the log file for details.
}
}
示例9: OnContextButton
bool CGUIDialogPVRChannelManager::OnContextButton(int itemNumber, CONTEXT_BUTTON button)
{
/* Check file item is in list range and get his pointer */
if (itemNumber < 0 || itemNumber >= (int)m_channelItems->Size()) return false;
CFileItemPtr pItem = m_channelItems->Get(itemNumber);
if (!pItem)
return false;
if (button == CONTEXT_BUTTON_MOVE)
{
m_bMovingMode = true;
pItem->Select(true);
}
else if (button == CONTEXT_BUTTON_SETTINGS)
{
if (!g_PVRClients->OpenDialogChannelSettings(pItem->GetPVRChannelInfoTag()))
CGUIDialogOK::ShowAndGetInput(2103, 0, 16029, 0); // Add-on error;Check the log file for details.
}
else if (button == CONTEXT_BUTTON_DELETE)
{
CGUIDialogYesNo* pDialog = (CGUIDialogYesNo*)g_windowManager.GetWindow(WINDOW_DIALOG_YES_NO);
if (!pDialog)
return true;
pDialog->SetHeading(19211); // Delete channel
pDialog->SetText(750); // Are you sure?
pDialog->DoModal();
if (pDialog->IsConfirmed())
{
CPVRChannelPtr channel = pItem->GetPVRChannelInfoTag();
if (g_PVRClients->DeleteChannel(channel))
{
g_PVRChannelGroups->GetGroupAll(channel->IsRadio())->RemoveFromGroup(channel);
m_channelItems->Remove(m_iSelected);
m_viewControl.SetItems(*m_channelItems);
Renumber();
}
else
CGUIDialogOK::ShowAndGetInput(2103, 0, 16029, 0); // Add-on error;Check the log file for details.
}
}
else if (button == CONTEXT_BUTTON_EDIT_SOURCE)
{
std::string strURL = pItem->GetProperty("StreamURL").asString();
if (CGUIKeyboardFactory::ShowAndGetInput(strURL, g_localizeStrings.Get(19214), false))
pItem->SetProperty("StreamURL", strURL);
}
return true;
}
示例10: GotoChannel
void CGUIDialogPVRChannelsOSD::GotoChannel(int item)
{
/* Check file item is in list range and get his pointer */
if (item < 0 || item >= (int)m_vecItems->Size()) return;
CFileItemPtr pItem = m_vecItems->Get(item);
if (pItem->GetPath() == g_application.CurrentFile())
{
CloseOrSelect(item);
return;
}
if (g_PVRManager.IsPlaying() && pItem->HasPVRChannelInfoTag() && g_application.m_pPlayer)
{
CPVRChannel *channel = pItem->GetPVRChannelInfoTag();
if (!g_PVRManager.CheckParentalLock(*channel) ||
!g_application.m_pPlayer->SwitchChannel(*channel))
{
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error,
g_localizeStrings.Get(19166), // PVR information
g_localizeStrings.Get(19035)); // This channel cannot be played. Check the log for details.
return;
}
}
else
CApplicationMessenger::Get().PlayFile(*pItem);
m_group = GetPlayingGroup();
CloseOrSelect(item);
}
示例11: GetContextButtons
void CGUIWindowPVRChannels::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
if (itemNumber < 0 || itemNumber >= m_vecItems->Size())
return;
CFileItemPtr pItem = m_vecItems->Get(itemNumber);
CPVRChannelPtr channel(pItem->GetPVRChannelInfoTag());
if (channel->GetEPGNow())
{
buttons.Add(CONTEXT_BUTTON_INFO, 19047); /* Programme information */
buttons.Add(CONTEXT_BUTTON_FIND, 19003); /* Find similar */
}
if (channel->IsRecording())
buttons.Add(CONTEXT_BUTTON_STOP_RECORD, 19059); /* Stop recording */
else if (g_PVRClients->SupportsTimers(channel->ClientID()))
buttons.Add(CONTEXT_BUTTON_START_RECORD, 264); /* Record */
if (CServiceBroker::GetADSP().IsProcessing())
buttons.Add(CONTEXT_BUTTON_ACTIVE_ADSP_SETTINGS, 15047); /* Audio DSP settings */
if (g_PVRClients->HasMenuHooks(channel->ClientID(), PVR_MENUHOOK_CHANNEL))
buttons.Add(CONTEXT_BUTTON_MENU_HOOKS, 19195); /* PVR client specific action */
// Add parent buttons before the Manage button
CGUIWindowPVRBase::GetContextButtons(itemNumber, buttons);
buttons.Add(CONTEXT_BUTTON_EDIT, 16106); /* Manage... */
}
示例12: GotoChannel
void CGUIDialogPVRChannelsOSD::GotoChannel(int item)
{
/* Check file item is in list range and get his pointer */
if (item < 0 || item >= (int)m_vecItems->Size()) return;
CFileItemPtr pItem = m_vecItems->Get(item);
if (pItem->GetPath() == g_application.CurrentFile())
{
CloseOrSelect(item);
return;
}
if (g_PVRManager.IsPlaying() && pItem->HasPVRChannelInfoTag() && g_application.m_pPlayer)
{
CPVRChannel *channel = pItem->GetPVRChannelInfoTag();
if (!g_application.m_pPlayer->SwitchChannel(*channel))
{
Close(true);
return;
}
}
else
CApplicationMessenger::Get().PlayFile(*pItem);
CloseOrSelect(item);
}
示例13: GotoChannel
void CGUIDialogPVRChannelsOSD::GotoChannel(int item)
{
/* Check file item is in list range and get his pointer */
if (item < 0 || item >= (int)m_vecItems->Size()) return;
CFileItemPtr pItem = m_vecItems->Get(item);
if (pItem->GetPath() == g_application.CurrentFile())
{
CloseOrSelect(item);
return;
}
if (g_PVRManager.IsPlaying() && pItem->HasPVRChannelInfoTag() && g_application.m_pPlayer->HasPlayer())
{
CPVRChannelPtr channel = pItem->GetPVRChannelInfoTag();
if (!g_PVRManager.CheckParentalLock(channel) ||
!g_application.m_pPlayer->SwitchChannel(channel))
{
std::string msg = StringUtils::Format(g_localizeStrings.Get(19035).c_str(), channel->ChannelName().c_str()); // CHANNELNAME could not be played. Check the log for details.
CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Error,
g_localizeStrings.Get(19166), // PVR information
msg);
return;
}
}
else
CApplicationMessenger::Get().PostMsg(TMSG_MEDIA_PLAY, 0, 0, static_cast<void*>(new CFileItem(*pItem)));
m_group = GetPlayingGroup();
CloseOrSelect(item);
}
示例14: ActionButtonUngroupedChannels
bool CGUIDialogPVRGroupManager::ActionButtonUngroupedChannels(CGUIMessage &message)
{
bool bReturn = false;
unsigned int iControl = message.GetSenderId();
if (m_viewUngroupedChannels.HasControl(iControl)) // list/thumb control
{
m_iSelectedUngroupedChannel = m_viewUngroupedChannels.GetSelectedItem();
int iAction = message.GetParam1();
if (iAction == ACTION_SELECT_ITEM || iAction == ACTION_MOUSE_LEFT_CLICK)
{
if (m_channelGroups->GetFileCount() == 0)
{
CGUIDialogOK::ShowAndGetInput(19033,19137,0,19138);
}
else if (m_ungroupedChannels->GetFileCount() > 0)
{
CFileItemPtr pItemChannel = m_ungroupedChannels->Get(m_iSelectedUngroupedChannel);
if (m_selectedGroup->AddToGroup(*pItemChannel->GetPVRChannelInfoTag()))
Update();
}
}
bReturn = true;
}
return bReturn;
}
示例15: OnPlaybackStarted
void CPVRManager::OnPlaybackStarted(const CFileItemPtr item)
{
m_playingChannel.reset();
m_playingRecording.reset();
m_playingEpgTag.reset();
if (item->HasPVRChannelInfoTag())
{
const CPVRChannelPtr channel(item->GetPVRChannelInfoTag());
m_playingChannel = channel;
SetPlayingGroup(channel);
UpdateLastWatched(channel);
}
else if (item->HasPVRRecordingInfoTag())
{
m_playingRecording = item->GetPVRRecordingInfoTag();
}
else if (item->HasEPGInfoTag())
{
m_playingEpgTag = item->GetEPGInfoTag();
}
m_guiActions->OnPlaybackStarted(item);
}