本文整理汇总了C++中CGUIWindowVideoNav::OnItemInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIWindowVideoNav::OnItemInfo方法的具体用法?C++ CGUIWindowVideoNav::OnItemInfo怎么用?C++ CGUIWindowVideoNav::OnItemInfo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIWindowVideoNav
的用法示例。
在下文中一共展示了CGUIWindowVideoNav::OnItemInfo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnContextButton
bool CGUIWindowMusicNav::OnContextButton(int itemNumber, CONTEXT_BUTTON button)
{
CFileItemPtr item;
if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
item = m_vecItems->Get(itemNumber);
switch (button)
{
case CONTEXT_BUTTON_INFO:
{
if (!item->IsVideoDb())
return CGUIWindowMusicBase::OnContextButton(itemNumber,button);
// music videos - artists
if (StringUtils::StartsWithNoCase(item->GetPath(), "videodb://musicvideos/artists/"))
{
long idArtist = m_musicdatabase.GetArtistByName(item->GetLabel());
if (idArtist == -1)
return false;
std::string path = StringUtils::Format("musicdb://artists/%ld/", idArtist);
CArtist artist;
m_musicdatabase.GetArtist(idArtist, artist, false);
*item = CFileItem(artist);
item->SetPath(path);
CGUIWindowMusicBase::OnContextButton(itemNumber,button);
Refresh();
m_viewControl.SetSelectedItem(itemNumber);
return true;
}
// music videos - albums
if (StringUtils::StartsWithNoCase(item->GetPath(), "videodb://musicvideos/albums/"))
{
long idAlbum = m_musicdatabase.GetAlbumByName(item->GetLabel());
if (idAlbum == -1)
return false;
std::string path = StringUtils::Format("musicdb://albums/%ld/", idAlbum);
CAlbum album;
m_musicdatabase.GetAlbum(idAlbum, album, false);
*item = CFileItem(path,album);
item->SetPath(path);
CGUIWindowMusicBase::OnContextButton(itemNumber,button);
Refresh();
m_viewControl.SetSelectedItem(itemNumber);
return true;
}
if (item->HasVideoInfoTag() && !item->GetVideoInfoTag()->m_strTitle.empty())
{
CGUIWindowVideoNav* pWindow = (CGUIWindowVideoNav*)g_windowManager.GetWindow(WINDOW_VIDEO_NAV);
if (pWindow)
{
ADDON::ScraperPtr info;
pWindow->OnItemInfo(item.get(),info);
Refresh();
}
}
return true;
}
case CONTEXT_BUTTON_INFO_ALL:
OnItemInfoAll(itemNumber);
return true;
case CONTEXT_BUTTON_SET_DEFAULT:
CSettings::GetInstance().SetString(CSettings::SETTING_MYMUSIC_DEFAULTLIBVIEW, GetQuickpathName(item->GetPath()));
CSettings::GetInstance().Save();
return true;
case CONTEXT_BUTTON_CLEAR_DEFAULT:
CSettings::GetInstance().SetString(CSettings::SETTING_MYMUSIC_DEFAULTLIBVIEW, "");
CSettings::GetInstance().Save();
return true;
case CONTEXT_BUTTON_GO_TO_ARTIST:
{
std::string strPath;
CVideoDatabase database;
database.Open();
strPath = StringUtils::Format("videodb://musicvideos/artists/%i/",
database.GetMatchingMusicVideo(item->GetMusicInfoTag()->GetArtistString()));
g_windowManager.ActivateWindow(WINDOW_VIDEO_NAV,strPath);
return true;
}
case CONTEXT_BUTTON_PLAY_OTHER:
{
CVideoDatabase database;
database.Open();
CVideoInfoTag details;
database.GetMusicVideoInfo("", details, database.GetMatchingMusicVideo(item->GetMusicInfoTag()->GetArtistString(), item->GetMusicInfoTag()->GetAlbum(), item->GetMusicInfoTag()->GetTitle()));
CApplicationMessenger::GetInstance().PostMsg(TMSG_MEDIA_PLAY, 0, 0, static_cast<void*>(new CFileItem(details)));
return true;
}
case CONTEXT_BUTTON_RENAME:
if (!item->IsVideoDb() && !item->IsReadOnly())
OnRenameItem(itemNumber);
CGUIDialogVideoInfo::UpdateVideoItemTitle(item);
//.........这里部分代码省略.........