void CGUIWindowVideoNav::OnPrepareFileItems(CFileItemList &items) { CGUIWindowVideoBase::OnPrepareFileItems(items); // set fanart CQueryParams params; CVideoDatabaseDirectory dir; dir.GetQueryParams(items.m_strPath,params); if (params.GetContentType() == VIDEODB_CONTENT_MUSICVIDEOS) CGUIWindowMusicNav::SetupFanart(items); NODE_TYPE node = dir.GetDirectoryChildType(items.m_strPath); // now filter as necessary bool filterWatched=false; if (node == NODE_TYPE_EPISODES || node == NODE_TYPE_SEASONS || node == NODE_TYPE_TITLE_MOVIES || node == NODE_TYPE_TITLE_TVSHOWS || node == NODE_TYPE_TITLE_MUSICVIDEOS || node == NODE_TYPE_RECENTLY_ADDED_EPISODES || node == NODE_TYPE_RECENTLY_ADDED_MOVIES || node == NODE_TYPE_RECENTLY_ADDED_MUSICVIDEOS) filterWatched = true; if (items.IsPlugin()) filterWatched = true; if (items.IsSmartPlayList()) { if (items.GetContent() == "tvshows") node = NODE_TYPE_TITLE_TVSHOWS; // so that the check below works filterWatched = true; } int watchMode = g_settings.GetWatchMode(m_vecItems->GetContent()); for (int i = 0; i < items.Size(); i++) { CFileItemPtr item = items.Get(i); if(item->HasVideoInfoTag() && (node == NODE_TYPE_TITLE_TVSHOWS || node == NODE_TYPE_SEASONS)) { if (watchMode == VIDEO_SHOW_UNWATCHED) item->GetVideoInfoTag()->m_iEpisode = item->GetPropertyInt("unwatchedepisodes"); if (watchMode == VIDEO_SHOW_WATCHED) item->GetVideoInfoTag()->m_iEpisode = item->GetPropertyInt("watchedepisodes"); item->SetProperty("numepisodes", item->GetVideoInfoTag()->m_iEpisode); } if(filterWatched) { if((watchMode==VIDEO_SHOW_WATCHED && item->GetVideoInfoTag()->m_playCount== 0) || (watchMode==VIDEO_SHOW_UNWATCHED && item->GetVideoInfoTag()->m_playCount > 0)) { items.Remove(i); i--; } } } }
bool CGUIViewStateWindowVideoNav::AutoPlayNextItem() { CQueryParams params; CVideoDatabaseDirectory::GetQueryParams(m_items.GetPath(),params); if (params.GetContentType() == VIDEODB_CONTENT_MUSICVIDEOS || params.GetContentType() == 6) // recently added musicvideos return CSettings::GetInstance().GetBool(CSettings::SETTING_MUSICPLAYER_AUTOPLAYNEXTITEM); return CSettings::GetInstance().GetBool(CSettings::SETTING_VIDEOPLAYER_AUTOPLAYNEXTITEM); }
bool CGUIViewStateWindowVideoNav::AutoPlayNextItem() { CQueryParams params; CVideoDatabaseDirectory::GetQueryParams(m_items.GetPath(),params); if (params.GetContentType() == VIDEODB_CONTENT_MUSICVIDEOS || params.GetContentType() == 6) // recently added musicvideos return CSettings::Get().GetBool("musicplayer.autoplaynextitem"); return CSettings::Get().GetBool("videoplayer.autoplaynextitem"); }
NODE_TYPE CDirectoryNodeDirector::GetChildType() const { CQueryParams params; CollectQueryParams(params); if (params.GetContentType() == VIDEODB_CONTENT_MOVIES) return NODE_TYPE_TITLE_MOVIES; if (params.GetContentType() == VIDEODB_CONTENT_MUSICVIDEOS) return NODE_TYPE_TITLE_MUSICVIDEOS; return NODE_TYPE_TITLE_TVSHOWS; }
// Collects Query params from this and all parent nodes. If a NODE_TYPE can // be used as a database parameter, it will be added to the // params object. void CDirectoryNode::CollectQueryParams(CQueryParams& params) const { params.SetQueryParam(m_Type, m_strName); CDirectoryNode* pParent=m_pParent; while (pParent!=NULL) { params.SetQueryParam(pParent->GetType(), pParent->GetName()); pParent=pParent->GetParent(); } }
bool CGUIWindowMusicBase::GetDirectory(const std::string &strDirectory, CFileItemList &items) { items.ClearArt(); bool bResult = CGUIMediaWindow::GetDirectory(strDirectory, items); if (bResult) { CMusicThumbLoader loader; loader.FillThumb(items); } CQueryParams params; CDirectoryNode::GetDatabaseInfo(items.GetPath(), params); if (params.GetAlbumId()) { map<string, string> artistArt; if (m_musicdatabase.GetArtistArtForItem(params.GetAlbumId(), MediaTypeAlbum, artistArt)) items.AppendArt(artistArt, MediaTypeArtist); map<string, string> albumArt; if (m_musicdatabase.GetArtForItem(params.GetAlbumId(), MediaTypeAlbum, albumArt)) items.AppendArt(albumArt, MediaTypeAlbum); } // add in the "New Playlist" item if we're in the playlists folder if ((items.GetPath() == "special://musicplaylists/") && !items.Contains("newplaylist://")) { CFileItemPtr newPlaylist(new CFileItem(CProfilesManager::GetInstance().GetUserDataItem("PartyMode.xsp"),false)); newPlaylist->SetLabel(g_localizeStrings.Get(16035)); newPlaylist->SetLabelPreformated(true); newPlaylist->m_bIsFolder = true; items.Add(newPlaylist); newPlaylist.reset(new CFileItem("newplaylist://", false)); newPlaylist->SetLabel(g_localizeStrings.Get(525)); newPlaylist->SetLabelPreformated(true); newPlaylist->SetSpecialSort(SortSpecialOnBottom); newPlaylist->SetCanQueue(false); items.Add(newPlaylist); newPlaylist.reset(new CFileItem("newsmartplaylist://music", false)); newPlaylist->SetLabel(g_localizeStrings.Get(21437)); newPlaylist->SetLabelPreformated(true); newPlaylist->SetSpecialSort(SortSpecialOnBottom); newPlaylist->SetCanQueue(false); items.Add(newPlaylist); } return bResult; }
bool CDirectoryNodeArtist::GetContent(CFileItemList& items) { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess = musicdatabase.GetArtistsNav(BuildPath(), items, params.GetGenreId(), g_guiSettings.GetBool("musiclibrary.albumartistsonly")); musicdatabase.Close(); return bSuccess; }
bool CDirectoryNodeDirector::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=videodatabase.GetDirectorsNav(BuildPath(), items, params.GetContentType()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeAlbum::GetContent(CFileItemList& items) { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=musicdatabase.GetAlbumsNav(BuildPath(), items, params.GetGenreId(), params.GetArtistId(),-1,-1); musicdatabase.Close(); return bSuccess; }
bool CDirectoryNodeMusicVideoAlbum::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=videodatabase.GetMusicVideoAlbumsNav(BuildPath(), items, params.GetActorId()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeYearAlbum::GetContent(CFileItemList& items) const { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=musicdatabase.GetAlbumsByYear(BuildPath(), items, params.GetYear()); musicdatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeYearSong::GetContent(CFileItemList& items) const { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); std::string strBaseDir=BuildPath(); bool bSuccess=musicdatabase.GetSongsByYear(strBaseDir, items, params.GetYear()); musicdatabase.Close(); return bSuccess; }
bool CDirectoryNodeYear::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir=BuildPath(); bool bSuccess=videodatabase.GetYearsNav(strBaseDir, items, params.GetContentType()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeTitleMusicVideos::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir=BuildPath(); bool bSuccess=videodatabase.GetMusicVideosNav(strBaseDir, items, params.GetGenreId(), params.GetYear(), params.GetActorId(), params.GetDirectorId(),params.GetStudioId(),params.GetAlbumId()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSong::GetContent(CFileItemList& items) { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir=BuildPath(); bool bSuccess=musicdatabase.GetSongsNav(strBaseDir, items, params.GetGenreId(), params.GetArtistId(), params.GetAlbumId()); musicdatabase.Close(); return bSuccess; }
NODE_TYPE CDirectoryNodeGrouped::GetChildType() const { CQueryParams params; CollectQueryParams(params); if (params.GetContentType() == VIDEODB_CONTENT_MOVIES) return NODE_TYPE_TITLE_MOVIES; if (params.GetContentType() == VIDEODB_CONTENT_MUSICVIDEOS) { if (GetType() == NODE_TYPE_ACTOR) return NODE_TYPE_MUSICVIDEOS_ALBUM; else return NODE_TYPE_TITLE_MUSICVIDEOS; } return NODE_TYPE_TITLE_TVSHOWS; }
bool CDirectoryNodeTitleMovies::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir=BuildPath(); bool bSuccess=videodatabase.GetMoviesNav(strBaseDir, items, params.GetGenreId(), params.GetYear(), params.GetActorId(), params.GetDirectorId(),params.GetStudioId(),params.GetSetId()); if (params.GetSetId() == -1) videodatabase.GetSetsNav("videodb://1/7/",items,params.GetContentType()); videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); int iFlatten = CSettings::Get().GetInt("videolibrary.flattentvshows"); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); bool bFlatten = (items.GetObjectCount() == 1 && iFlatten == 1) || iFlatten == 2; if (items.GetObjectCount() == 2 && iFlatten == 1) if (items[0]->GetVideoInfoTag()->m_iSeason == 0 || items[1]->GetVideoInfoTag()->m_iSeason == 0) bFlatten = true; // flatten if one season + specials if (iFlatten > 0 && !bFlatten && CMediaSettings::Get().GetWatchedMode("tvshows") == WatchedModeUnwatched) { int count = 0; for(int i = 0; i < items.Size(); i++) { if (items[i]->GetProperty("unwatchedepisodes").asInteger() != 0 && items[i]->GetVideoInfoTag()->m_iSeason != 0) count++; } bFlatten = (count < 2); // flatten if there is only 1 unwatched season (not counting specials) } if (bFlatten) { // flatten if one season or flatten always items.Clear(); CVideoDbUrl videoUrl; if (!videoUrl.FromString(BuildPath())) return false; videoUrl.AppendPath("-2/"); bSuccess=videodatabase.GetEpisodesNav(videoUrl.ToString(), items, params.GetGenreId(), params.GetYear(), params.GetActorId(), params.GetDirectorId(), params.GetTvShowId()); items.SetPath(videoUrl.ToString()); } videodatabase.Close(); return bSuccess; }
void CGUIWindowMusicBase::OnInfo(CFileItem *pItem, bool bShowInfo) { if ((pItem->IsMusicDb() && !pItem->HasMusicInfoTag()) || pItem->IsParentFolder() || URIUtils::IsSpecial(pItem->GetPath()) || StringUtils::StartsWithNoCase(pItem->GetPath(), "musicsearch://")) return; // nothing to do if (!pItem->m_bIsFolder) { // song lookup ShowSongInfo(pItem); return; } // this function called from outside this window - make sure the database is open m_musicdatabase.Open(); // we have a folder if (pItem->IsMusicDb()) { CQueryParams params; CDirectoryNode::GetDatabaseInfo(pItem->GetPath(), params); if (params.GetAlbumId() == -1) ShowArtistInfo(pItem); else ShowAlbumInfo(pItem); if (m_dlgProgress && bShowInfo) m_dlgProgress->Close(); return; } int albumID = m_musicdatabase.GetAlbumIdByPath(pItem->GetPath()); if (albumID != -1) { CAlbum album; if (!m_musicdatabase.GetAlbum(albumID, album)) return; CFileItem item(StringUtils::Format("musicdb://albums/%i/", albumID), album); if (ShowAlbumInfo(&item)) return; } CLog::Log(LOGINFO, "%s called on a folder containing no songs in the library - nothing can be done", __FUNCTION__); }
void CGUIViewStateWindowVideoNav::SaveViewState() { if (m_items.IsVideoDb()) { NODE_TYPE NodeType = CVideoDatabaseDirectory::GetDirectoryChildType(m_items.GetPath()); CQueryParams params; CVideoDatabaseDirectory::GetQueryParams(m_items.GetPath(),params); switch (NodeType) { case NODE_TYPE_ACTOR: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavactors")); break; case NODE_TYPE_YEAR: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavyears")); break; case NODE_TYPE_GENRE: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavgenres")); break; case NODE_TYPE_TITLE_MOVIES: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, params.GetSetId() > -1 ? NULL : CViewStateSettings::GetInstance().Get("videonavtitles")); break; case NODE_TYPE_EPISODES: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavepisodes")); break; case NODE_TYPE_TITLE_TVSHOWS: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavtvshows")); break; case NODE_TYPE_SEASONS: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavseasons")); break; case NODE_TYPE_TITLE_MUSICVIDEOS: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videonavmusicvideos")); break; default: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV); break; } } else { SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, CViewStateSettings::GetInstance().Get("videofiles")); } }
bool CDirectoryNodeSong::GetContent(CFileItemList& items) const { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); CStdString strBaseDir = BuildPath(); bool bSuccess = musicdatabase.GetSongsNav(strBaseDir, items, params.GetGenreId(), params.GetArtistId(), params.GetAlbumId()); //spotify //TODO scan through all addons that provide songs, also create a better naming system for addon sources bSuccess = g_spotify->GetTracks(items, strBaseDir,musicdatabase.GetArtistById(params.GetArtistId()),params.GetAlbumId()); musicdatabase.Close(); return bSuccess; }
void CGUIDialogMusicInfo::ShowFor(CFileItem* pItem) { if (pItem->IsParentFolder() || URIUtils::IsSpecial(pItem->GetPath()) || StringUtils::StartsWithNoCase(pItem->GetPath(), "musicsearch://")) return; // nothing to do if (!pItem->m_bIsFolder) { // Show Song information dialog CGUIDialogSongInfo::ShowFor(pItem); return; } // We have a folder album/artist info dialog only shown for db items if (pItem->IsMusicDb()) { if (!pItem->HasMusicInfoTag() || pItem->GetMusicInfoTag()->GetDatabaseId() < 1) { // Maybe only path is set, then set MusicInfoTag CQueryParams params; CDirectoryNode::GetDatabaseInfo(pItem->GetPath(), params); if (params.GetAlbumId() == -1) pItem->GetMusicInfoTag()->SetDatabaseId(params.GetArtistId(), MediaTypeArtist); else pItem->GetMusicInfoTag()->SetDatabaseId(params.GetAlbumId(), MediaTypeAlbum); } CGUIDialogMusicInfo *pDlgMusicInfo = CServiceBroker::GetGUI()->GetWindowManager(). GetWindow<CGUIDialogMusicInfo>(WINDOW_DIALOG_MUSIC_INFO); if (pDlgMusicInfo) { if (pDlgMusicInfo->SetItem(pItem)) { pDlgMusicInfo->Open(); if (pItem->GetMusicInfoTag()->GetType() == MediaTypeAlbum && pDlgMusicInfo->HasUpdatedUserrating()) { auto window = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIWindowMusicBase>(WINDOW_MUSIC_NAV); if (window) window->RefreshContent("albums"); } } } } }
void CGUIViewStateWindowVideoNav::SaveViewState() { if (m_items.IsVideoDb()) { NODE_TYPE NodeType = CVideoDatabaseDirectory::GetDirectoryChildType(m_items.GetPath()); CQueryParams params; CVideoDatabaseDirectory::GetQueryParams(m_items.GetPath(),params); switch (NodeType) { case NODE_TYPE_ACTOR: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavActors); break; case NODE_TYPE_YEAR: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavYears); break; case NODE_TYPE_GENRE: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavGenres); break; case NODE_TYPE_TITLE_MOVIES: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, params.GetSetId() > -1 ? NULL : &g_settings.m_viewStateVideoNavTitles); break; case NODE_TYPE_EPISODES: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavEpisodes); break; case NODE_TYPE_TITLE_TVSHOWS: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavTvShows); break; case NODE_TYPE_SEASONS: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavSeasons); break; case NODE_TYPE_TITLE_MUSICVIDEOS: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavMusicVideos); default: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV); break; } } else { SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoFiles); } }
bool CDirectoryNodeGrouped::GetContent(CFileItemList& items) const { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); std::string itemType = GetContentType(params); if (itemType.empty()) return false; // make sure to translate all IDs in the path into URL parameters CVideoDbUrl videoUrl; if (!videoUrl.FromString(BuildPath())) return false; return videodatabase.GetItems(videoUrl.ToString(), (VIDEODB_CONTENT_TYPE)params.GetContentType(), itemType, items); }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); if (items.Size() == 1 && g_guiSettings.GetBool("videolibrary.singleseason")) { items.Clear(); videodatabase.GetEpisodesNav(BuildPath()+"-1/",items,params.GetGenreId(),params.GetYear(),params.GetActorId(),params.GetDirectorId(),params.GetTvShowId()); items.m_strPath = BuildPath()+"-1/"; } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); int iFlatten = g_guiSettings.GetInt("videolibrary.flattentvshows"); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); if ((items.GetObjectCount() == 1 && iFlatten == 1) || iFlatten == 2) { // flatten if one season or flatten always items.Clear(); bSuccess=videodatabase.GetEpisodesNav(BuildPath()+"-1/",items,params.GetGenreId(),params.GetYear(),params.GetActorId(),params.GetDirectorId(),params.GetTvShowId()); items.m_strPath = BuildPath()+"-1/"; } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeSeasons::GetContent(CFileItemList& items) { CVideoDatabase videodatabase; if (!videodatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); int iFlatten = g_guiSettings.GetInt("videolibrary.flattentvshows"); bool bSuccess=videodatabase.GetSeasonsNav(BuildPath(), items, params.GetActorId(), params.GetDirectorId(), params.GetGenreId(), params.GetYear(), params.GetTvShowId()); bool bFlatten = (items.GetObjectCount() == 1 && iFlatten == 1) || iFlatten == 2; if (items.GetObjectCount() == 2 && iFlatten == 1) if (items[0]->GetVideoInfoTag()->m_iSeason == 0 || items[1]->GetVideoInfoTag()->m_iSeason == 0) bFlatten = true; // flatten if one season + specials if (!bFlatten && g_settings.GetWatchMode("tvshows") == VIDEO_SHOW_UNWATCHED) { int count = 0; for(int i = 0; i < items.Size(); i++) { if (items[i]->GetPropertyInt("unwatchedepisodes") != 0 && items[i]->GetVideoInfoTag()->m_iSeason != 0) count++; } bFlatten = (count < 2); // flatten if there is only 1 unwatched season (not counting specials) } if (bFlatten) { // flatten if one season or flatten always items.Clear(); bSuccess=videodatabase.GetEpisodesNav(BuildPath()+"-1/",items,params.GetGenreId(),params.GetYear(),params.GetActorId(),params.GetDirectorId(),params.GetTvShowId()); items.m_strPath = BuildPath()+"-1/"; } videodatabase.Close(); return bSuccess; }
bool CDirectoryNodeArtist::GetContent(CFileItemList& items) const { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess = musicdatabase.GetArtistsNav(BuildPath(), items, !CSettings::Get().GetBool(CSettings::SETTING_MUSICLIBRARY_SHOWCOMPILATIONARTISTS), params.GetGenreId()); musicdatabase.Close(); return bSuccess; }
bool CDirectoryNodeArtist::GetContent(CFileItemList& items) const { CMusicDatabase musicdatabase; if (!musicdatabase.Open()) return false; CQueryParams params; CollectQueryParams(params); bool bSuccess = musicdatabase.GetArtistsNav(BuildPath(), items, !CSettings::Get().GetBool("musiclibrary.showcompilationartists"), params.GetGenreId()); musicdatabase.Close(); return bSuccess; }