本文整理汇总了C++中CFileItemPtr::IsLiveTV方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileItemPtr::IsLiveTV方法的具体用法?C++ CFileItemPtr::IsLiveTV怎么用?C++ CFileItemPtr::IsLiveTV使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileItemPtr
的用法示例。
在下文中一共展示了CFileItemPtr::IsLiveTV方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetContextButtons
void CGUIWindowVideoNav::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
CGUIWindowVideoBase::GetContextButtons(itemNumber, buttons);
if (item && item->GetProperty("pluginreplacecontextitems").asBoolean())
return;
CVideoDatabaseDirectory dir;
NODE_TYPE node = dir.GetDirectoryChildType(m_vecItems->GetPath());
if (!item)
{
// nothing to do here
}
else if (m_vecItems->IsPath("sources://video/"))
{
// get the usual shares
CGUIDialogContextMenu::GetContextButtons("video", item, buttons);
// add scan button somewhere here
if (g_application.IsVideoScanning())
buttons.Add(CONTEXT_BUTTON_STOP_SCANNING, 13353); // Stop Scanning
if (!item->IsDVD() && item->GetPath() != "add" && !item->IsParentFolder() &&
(CProfilesManager::GetInstance().GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser))
{
CVideoDatabase database;
database.Open();
ADDON::ScraperPtr info = database.GetScraperForPath(item->GetPath());
if (!item->IsLiveTV() && !item->IsPlugin() && !item->IsAddonsPath() && !URIUtils::IsUPnP(item->GetPath()))
{
if (info && info->Content() != CONTENT_NONE)
{
buttons.Add(CONTEXT_BUTTON_SET_CONTENT, 20442);
buttons.Add(CONTEXT_BUTTON_SCAN, 13349);
}
else
buttons.Add(CONTEXT_BUTTON_SET_CONTENT, 20333);
}
}
}
else
{
// are we in the playlists location?
bool inPlaylists = m_vecItems->IsPath(CUtil::VideoPlaylistsLocation()) ||
m_vecItems->IsPath("special://videoplaylists/");
if (item->HasVideoInfoTag() && !item->GetVideoInfoTag()->m_artist.empty())
{
CMusicDatabase database;
database.Open();
if (database.GetArtistByName(StringUtils::Join(item->GetVideoInfoTag()->m_artist, g_advancedSettings.m_videoItemSeparator)) > -1)
buttons.Add(CONTEXT_BUTTON_GO_TO_ARTIST, 20396);
}
if (item->HasVideoInfoTag() && item->GetVideoInfoTag()->m_strAlbum.size() > 0)
{
CMusicDatabase database;
database.Open();
if (database.GetAlbumByName(item->GetVideoInfoTag()->m_strAlbum) > -1)
buttons.Add(CONTEXT_BUTTON_GO_TO_ALBUM, 20397);
}
if (item->HasVideoInfoTag() && item->GetVideoInfoTag()->m_strAlbum.size() > 0 &&
item->GetVideoInfoTag()->m_artist.size() > 0 &&
item->GetVideoInfoTag()->m_strTitle.size() > 0)
{
CMusicDatabase database;
database.Open();
if (database.GetSongByArtistAndAlbumAndTitle(StringUtils::Join(item->GetVideoInfoTag()->m_artist, g_advancedSettings.m_videoItemSeparator),
item->GetVideoInfoTag()->m_strAlbum,
item->GetVideoInfoTag()->m_strTitle) > -1)
{
buttons.Add(CONTEXT_BUTTON_PLAY_OTHER, 20398);
}
}
if (!item->IsParentFolder())
{
ADDON::ScraperPtr info;
VIDEO::SScanSettings settings;
GetScraperForItem(item.get(), info, settings);
if (info && info->Content() == CONTENT_TVSHOWS)
buttons.Add(CONTEXT_BUTTON_INFO, item->m_bIsFolder ? 20351 : 20352);
else if (info && info->Content() == CONTENT_MUSICVIDEOS)
buttons.Add(CONTEXT_BUTTON_INFO,20393);
else if (info && info->Content() == CONTENT_MOVIES)
buttons.Add(CONTEXT_BUTTON_INFO, 13346);
// can we update the database?
if (CProfilesManager::GetInstance().GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser)
{
if (!item->IsPlugin() && !item->IsScript() && !item->IsLiveTV() && !item->IsAddonsPath() &&
item->GetPath() != "sources://video/" &&
item->GetPath() != "special://videoplaylists/" &&
!StringUtils::StartsWith(item->GetPath(), "newsmartplaylist://") &&
!StringUtils::StartsWith(item->GetPath(), "newplaylist://") &&
!StringUtils::StartsWith(item->GetPath(), "newtag://"))
{
//.........这里部分代码省略.........
示例2: GetContextButtons
void CGUIWindowVideoNav::GetContextButtons(int itemNumber, CContextButtons &buttons)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
CGUIWindowVideoBase::GetContextButtons(itemNumber, buttons);
if (item && item->GetPropertyBOOL("pluginreplacecontextitems"))
return;
CVideoDatabaseDirectory dir;
NODE_TYPE node = dir.GetDirectoryChildType(m_vecItems->m_strPath);
if (!item)
{
CGUIDialogVideoScan *pScanDlg = (CGUIDialogVideoScan *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_SCAN);
if (pScanDlg && pScanDlg->IsScanning())
buttons.Add(CONTEXT_BUTTON_STOP_SCANNING, 13353);
else
buttons.Add(CONTEXT_BUTTON_UPDATE_LIBRARY, 653);
}
else if (m_vecItems->m_strPath.Equals("sources://video/"))
{
// get the usual shares
CGUIDialogContextMenu::GetContextButtons("video", item, buttons);
// add scan button somewhere here
CGUIDialogVideoScan *pScanDlg = (CGUIDialogVideoScan *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_SCAN);
if (pScanDlg && pScanDlg->IsScanning())
buttons.Add(CONTEXT_BUTTON_STOP_SCANNING, 13353); // Stop Scanning
if (!item->IsDVD() && item->m_strPath != "add" &&
(g_settings.GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser))
{
CVideoDatabase database;
database.Open();
ADDON::ScraperPtr info = database.GetScraperForPath(item->m_strPath);
if (!pScanDlg || (pScanDlg && !pScanDlg->IsScanning()))
{
if (!item->IsLiveTV() && !item->IsPlugin() && !item->IsAddonsPath())
{
if (info && info->Content() != CONTENT_NONE)
buttons.Add(CONTEXT_BUTTON_SET_CONTENT, 20442);
else
buttons.Add(CONTEXT_BUTTON_SET_CONTENT, 20333);
}
}
if (info && (!pScanDlg || (pScanDlg && !pScanDlg->IsScanning())))
buttons.Add(CONTEXT_BUTTON_SCAN, 13349);
}
}
else
{
ADDON::ScraperPtr info;
VIDEO::SScanSettings settings;
GetScraperForItem(item.get(), info, settings);
if (info && info->Content() == CONTENT_TVSHOWS)
buttons.Add(CONTEXT_BUTTON_INFO, item->m_bIsFolder ? 20351 : 20352);
else if (info && info->Content() == CONTENT_MUSICVIDEOS)
buttons.Add(CONTEXT_BUTTON_INFO,20393);
else if (!item->m_bIsFolder && !item->m_strPath.Left(19).Equals("newsmartplaylist://"))
buttons.Add(CONTEXT_BUTTON_INFO, 13346);
if (item->HasVideoInfoTag() && !item->GetVideoInfoTag()->m_strArtist.IsEmpty())
{
CMusicDatabase database;
database.Open();
if (database.GetArtistByName(item->GetVideoInfoTag()->m_strArtist) > -1)
buttons.Add(CONTEXT_BUTTON_GO_TO_ARTIST, 20396);
}
if (item->HasVideoInfoTag() && item->GetVideoInfoTag()->m_strAlbum.size() > 0)
{
CMusicDatabase database;
database.Open();
if (database.GetAlbumByName(item->GetVideoInfoTag()->m_strAlbum) > -1)
buttons.Add(CONTEXT_BUTTON_GO_TO_ALBUM, 20397);
}
if (item->HasVideoInfoTag() && item->GetVideoInfoTag()->m_strAlbum.size() > 0 &&
item->GetVideoInfoTag()->m_strArtist.size() > 0 &&
item->GetVideoInfoTag()->m_strTitle.size() > 0)
{
CMusicDatabase database;
database.Open();
if (database.GetSongByArtistAndAlbumAndTitle(item->GetVideoInfoTag()->m_strArtist,
item->GetVideoInfoTag()->m_strAlbum,
item->GetVideoInfoTag()->m_strTitle) > -1)
{
buttons.Add(CONTEXT_BUTTON_PLAY_OTHER, 20398);
}
}
if (!item->IsParentFolder())
{
// can we update the database?
if (g_settings.GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser)
{
if (node == NODE_TYPE_TITLE_TVSHOWS)
{
CGUIDialogVideoScan *pScanDlg = (CGUIDialogVideoScan *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_SCAN);
//.........这里部分代码省略.........
示例3: OnContextButton
bool CGUIWindowVideoNav::OnContextButton(int itemNumber, CONTEXT_BUTTON button)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
if (CGUIDialogContextMenu::OnContextButton("video", item, button))
{
//TODO should we search DB for entries from plugins?
if (button == CONTEXT_BUTTON_REMOVE_SOURCE && !item->IsPlugin()
&& !item->IsLiveTV() &&!item->IsRSS())
{
OnUnAssignContent(item->m_strPath,20375,20340,20341);
}
Update(m_vecItems->m_strPath);
return true;
}
switch (button)
{
case CONTEXT_BUTTON_EDIT:
UpdateVideoTitle(item.get());
CUtil::DeleteVideoDatabaseDirectoryCache();
Update(m_vecItems->m_strPath);
return true;
case CONTEXT_BUTTON_SET_SEASON_THUMB:
case CONTEXT_BUTTON_SET_ACTOR_THUMB:
case CONTEXT_BUTTON_SET_ARTIST_THUMB:
case CONTEXT_BUTTON_SET_MOVIESET_THUMB:
{
// Grab the thumbnails from the web
CStdString strPath;
CFileItemList items;
URIUtils::AddFileToFolder(g_advancedSettings.m_cachePath,"imdbthumbs",strPath);
CFileItemPtr cacheItem(new CFileItem(strPath,true));
CFileUtils::DeleteItem(cacheItem,true);
XFILE::CDirectory::Create(strPath);
CFileItemPtr noneitem(new CFileItem("thumb://None", false));
CStdString cachedThumb = m_vecItems->Get(itemNumber)->GetCachedSeasonThumb();
if (button == CONTEXT_BUTTON_SET_ACTOR_THUMB)
cachedThumb = m_vecItems->Get(itemNumber)->GetCachedActorThumb();
if (button == CONTEXT_BUTTON_SET_ARTIST_THUMB)
cachedThumb = m_vecItems->Get(itemNumber)->GetCachedArtistThumb();
if (button == CONTEXT_BUTTON_SET_MOVIESET_THUMB)
cachedThumb = m_vecItems->Get(itemNumber)->GetCachedVideoThumb();
if (CFile::Exists(cachedThumb))
{
CFileItemPtr item(new CFileItem("thumb://Current", false));
item->SetThumbnailImage(cachedThumb);
item->SetLabel(g_localizeStrings.Get(20016));
items.Add(item);
}
noneitem->SetIconImage("DefaultFolder.png");
noneitem->SetLabel(g_localizeStrings.Get(20018));
vector<CStdString> thumbs;
if (button != CONTEXT_BUTTON_SET_ARTIST_THUMB)
{
CVideoInfoTag tag;
if (button == CONTEXT_BUTTON_SET_SEASON_THUMB)
m_database.GetTvShowInfo("",tag,m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_iDbId);
else
tag = *m_vecItems->Get(itemNumber)->GetVideoInfoTag();
if (button == CONTEXT_BUTTON_SET_SEASON_THUMB)
tag.m_strPictureURL.GetThumbURLs(thumbs, m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_iSeason);
else
tag.m_strPictureURL.GetThumbURLs(thumbs);
for (unsigned int i = 0; i < thumbs.size(); i++)
{
CStdString strItemPath;
strItemPath.Format("thumb://Remote%i",i);
CFileItemPtr item(new CFileItem(strItemPath, false));
item->SetThumbnailImage(thumbs[i]);
item->SetIconImage("DefaultPicture.png");
item->SetLabel(g_localizeStrings.Get(20015));
items.Add(item);
// TODO: Do we need to clear the cached image?
// CTextureCache::Get().ClearCachedImage(thumbs[i]);
}
}
bool local=false;
if (button == CONTEXT_BUTTON_SET_ARTIST_THUMB)
{
CStdString picturePath;
CStdString strPath = m_vecItems->Get(itemNumber)->m_strPath;
URIUtils::RemoveSlashAtEnd(strPath);
int nPos=strPath.ReverseFind("/");
if (nPos>-1)
{
// try to guess where the user should start
// browsing for the artist thumb
CMusicDatabase database;
database.Open();
long idArtist=database.GetArtistByName(m_vecItems->Get(itemNumber)->GetLabel());
database.GetArtistPath(idArtist, picturePath);
}
//.........这里部分代码省略.........
示例4: OnContextButton
bool CGUIWindowVideoNav::OnContextButton(int itemNumber, CONTEXT_BUTTON button)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
if (CGUIDialogContextMenu::OnContextButton("video", item, button))
{
//TODO should we search DB for entries from plugins?
if (button == CONTEXT_BUTTON_REMOVE_SOURCE && !item->IsPlugin()
&& !item->IsLiveTV() &&!item->IsRSS() && !URIUtils::IsUPnP(item->GetPath()))
{
OnUnAssignContent(item->GetPath(),20375,20340,20341);
}
Refresh();
return true;
}
switch (button)
{
case CONTEXT_BUTTON_EDIT:
{
CONTEXT_BUTTON ret = (CONTEXT_BUTTON)CGUIDialogVideoInfo::ManageVideoItem(item);
if (ret >= 0)
{
if (ret == CONTEXT_BUTTON_MARK_WATCHED)
m_viewControl.SetSelectedItem(itemNumber + 1);
Refresh(true);
}
return true;
}
case CONTEXT_BUTTON_SET_SEASON_ART:
case CONTEXT_BUTTON_SET_ACTOR_THUMB:
case CONTEXT_BUTTON_SET_ARTIST_THUMB:
{
std::string type = "season";
if (button == CONTEXT_BUTTON_SET_ACTOR_THUMB)
type = "actor";
else if (button == CONTEXT_BUTTON_SET_ARTIST_THUMB)
type = "artist";
bool result = CGUIDialogVideoInfo::ManageVideoItemArtwork(m_vecItems->Get(itemNumber), type);
Refresh();
return result;
}
case CONTEXT_BUTTON_GO_TO_ARTIST:
{
CStdString strPath;
CMusicDatabase database;
database.Open();
strPath = StringUtils::Format("musicdb://artists/%ld/",
database.GetArtistByName(StringUtils::Join(m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_artist, g_advancedSettings.m_videoItemSeparator)));
g_windowManager.ActivateWindow(WINDOW_MUSIC_NAV,strPath);
return true;
}
case CONTEXT_BUTTON_GO_TO_ALBUM:
{
CStdString strPath;
CMusicDatabase database;
database.Open();
strPath = StringUtils::Format("musicdb://albums/%ld/",
database.GetAlbumByName(m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_strAlbum));
g_windowManager.ActivateWindow(WINDOW_MUSIC_NAV,strPath);
return true;
}
case CONTEXT_BUTTON_PLAY_OTHER:
{
CMusicDatabase database;
database.Open();
CSong song;
if (database.GetSong(database.GetSongByArtistAndAlbumAndTitle(StringUtils::Join(m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_artist, g_advancedSettings.m_videoItemSeparator),m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_strAlbum,
m_vecItems->Get(itemNumber)->GetVideoInfoTag()->m_strTitle),
song))
{
CApplicationMessenger::Get().PlayFile(song);
}
return true;
}
default:
break;
}
return CGUIWindowVideoBase::OnContextButton(itemNumber, button);
}