本文整理汇总了C++中CGUIWindowPVRBase类的典型用法代码示例。如果您正苦于以下问题:C++ CGUIWindowPVRBase类的具体用法?C++ CGUIWindowPVRBase怎么用?C++ CGUIWindowPVRBase使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CGUIWindowPVRBase类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: channel
bool CPVRGUIActions::HideChannel(const CFileItemPtr &item) const
{
const CPVRChannelPtr channel(item->GetPVRChannelInfoTag());
/* check if the channel tag is valid */
if (!channel || channel->ChannelNumber() <= 0)
return false;
if (!CGUIDialogYesNo::ShowAndGetInput(CVariant{19054}, // "Hide channel"
CVariant{19039}, // "Are you sure you want to hide this channel?"
CVariant{""},
CVariant{channel->ChannelName()}))
return false;
if (!g_PVRChannelGroups->GetGroupAll(channel->IsRadio())->RemoveFromGroup(channel))
return false;
CGUIWindowPVRBase *pvrWindow = dynamic_cast<CGUIWindowPVRBase *>(g_windowManager.GetWindow(g_windowManager.GetActiveWindow()));
if (pvrWindow)
pvrWindow->DoRefresh();
else
CLog::Log(LOGERROR, "CPVRGUIActions - %s - called on non-pvr window. no refresh possible.", __FUNCTION__);
return true;
}
示例2: HideProgressDialog
bool CPVRManager::Load(bool bShowProgress)
{
if (!bShowProgress)
HideProgressDialog();
/* load at least one client */
while (IsInitialising() && m_addons && !m_addons->HasCreatedClients())
Sleep(50);
if (!IsInitialising() || !m_addons->HasCreatedClients())
return false;
CLog::Log(LOGDEBUG, "PVRManager - %s - active clients found. continue to start", __FUNCTION__);
/* reset observer for pvr windows */
for (std::size_t i = 0; i != ARRAY_SIZE(m_pvrWindowIds); i++)
{
CSingleExit exit(m_critSection);
CGUIWindowPVRBase *pWindow = (CGUIWindowPVRBase *) g_windowManager.GetWindow(m_pvrWindowIds[i]);
if (pWindow)
pWindow->ResetObservers();
}
/* load all channels and groups */
if (bShowProgress)
ShowProgressDialog(g_localizeStrings.Get(19236), 0); // Loading channels from clients
if (!m_channelGroups->Load() || !IsInitialising())
return false;
/* get timers from the backends */
if (bShowProgress)
ShowProgressDialog(g_localizeStrings.Get(19237), 50); // Loading timers from clients
m_timers->Load();
/* get recordings from the backend */
if (bShowProgress)
ShowProgressDialog(g_localizeStrings.Get(19238), 75); // Loading recordings from clients
m_recordings->Load();
if (!IsInitialising())
return false;
/* start the other pvr related update threads */
if (bShowProgress)
ShowProgressDialog(g_localizeStrings.Get(19239), 85); // Starting background threads
m_guiInfo->Start();
/* close the progess dialog */
if (bShowProgress)
HideProgressDialog();
return true;
}
示例3: MarkUnwatched
bool CPVRGUIActions::MarkUnwatched(const CFileItemPtr &item) const
{
if (!g_PVRRecordings->SetRecordingsPlayCount(item, 0))
return false;
CGUIWindowPVRBase *pvrWindow = dynamic_cast<CGUIWindowPVRBase *>(g_windowManager.GetWindow(g_windowManager.GetActiveWindow()));
if (pvrWindow)
pvrWindow->DoRefresh();
else
CLog::Log(LOGERROR, "CPVRGUIActions - %s - called on non-pvr window. no refresh possible.", __FUNCTION__);
return true;
}
示例4: switch
bool CGUIWindowPVRBase::OnContextButton(int itemNumber, CONTEXT_BUTTON button)
{
bool bReturn = false;
switch(button)
{
case CONTEXT_BUTTON_MENU_HOOKS:
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
{
CFileItemPtr item = m_vecItems->Get(itemNumber);
if (item->IsEPG() && item->GetEPGInfoTag()->HasPVRChannel())
g_PVRClients->ProcessMenuHooks(item->GetEPGInfoTag()->ChannelTag()->ClientID(), PVR_MENUHOOK_EPG, item.get());
else if (item->IsPVRChannel())
g_PVRClients->ProcessMenuHooks(item->GetPVRChannelInfoTag()->ClientID(), PVR_MENUHOOK_CHANNEL, item.get());
else if (item->IsDeletedPVRRecording())
g_PVRClients->ProcessMenuHooks(item->GetPVRRecordingInfoTag()->m_iClientId, PVR_MENUHOOK_DELETED_RECORDING, item.get());
else if (item->IsUsablePVRRecording())
g_PVRClients->ProcessMenuHooks(item->GetPVRRecordingInfoTag()->m_iClientId, PVR_MENUHOOK_RECORDING, item.get());
else if (item->IsPVRTimer())
g_PVRClients->ProcessMenuHooks(item->GetPVRTimerInfoTag()->m_iClientId, PVR_MENUHOOK_TIMER, item.get());
bReturn = true;
}
break;
case CONTEXT_BUTTON_FIND:
{
int windowSearchId = m_bRadio ? WINDOW_RADIO_SEARCH : WINDOW_TV_SEARCH;
CGUIWindowPVRBase *windowSearch = (CGUIWindowPVRBase*) g_windowManager.GetWindow(windowSearchId);
if (windowSearch && itemNumber >= 0 && itemNumber < m_vecItems->Size())
{
CFileItemPtr item = m_vecItems->Get(itemNumber);
g_windowManager.ActivateWindow(windowSearchId);
bReturn = windowSearch->OnContextButton(*item.get(), button);
}
break;
}
default:
bReturn = false;
}
return bReturn || CGUIMediaWindow::OnContextButton(itemNumber, button);
}
示例5: tag
bool CGUIDialogPVRGuideInfo::OnClickButtonFind(CGUIMessage &message)
{
bool bReturn = false;
if (message.GetSenderId() == CONTROL_BTN_FIND)
{
const CEpgInfoTagPtr tag(m_progItem->GetEPGInfoTag());
if (tag && tag->HasPVRChannel())
{
int windowSearchId = tag->ChannelTag()->IsRadio() ? WINDOW_RADIO_SEARCH : WINDOW_TV_SEARCH;
CGUIWindowPVRBase *windowSearch = (CGUIWindowPVRBase*) g_windowManager.GetWindow(windowSearchId);
if (windowSearch)
{
Close();
g_windowManager.ActivateWindow(windowSearchId);
bReturn = windowSearch->OnContextButton(*m_progItem.get(), CONTEXT_BUTTON_FIND);
}
}
}
return bReturn;
}
示例6: timer
bool CPVRGUIActions::RenameTimer(const CFileItemPtr &item) const
{
if (!item->HasPVRTimerInfoTag())
return false;
const CPVRTimerInfoTagPtr timer(item->GetPVRTimerInfoTag());
std::string strNewName(timer->m_strTitle);
if (CGUIKeyboardFactory::ShowAndGetInput(strNewName,
CVariant{g_localizeStrings.Get(19042)}, // "Are you sure you want to rename this timer?"
false))
{
if (!g_PVRTimers->RenameTimer(*item, strNewName))
return false;
}
CGUIWindowPVRBase *pvrWindow = dynamic_cast<CGUIWindowPVRBase *>(g_windowManager.GetWindow(g_windowManager.GetActiveWindow()));
if (pvrWindow)
pvrWindow->DoRefresh();
else
CLog::Log(LOGERROR, "CPVRGUIActions - %s - called on non-pvr window. no refresh possible.", __FUNCTION__);
return true;
}