public LibraryViewDialog(DACPDatabase database) { InitializeComponent(); CurrentDatabase = database; Loaded += LibraryViewDialog_Loaded; }
public DACPSearchResults(DACPDatabase database, string searchString) : base(true) { Database = database; SearchString = searchString; // Add search result sections string wildcardSearch = "*" + searchString + "*"; Add(new SearchResultSection <Album>(database, async(db, token) => await db.MusicContainer.SearchAlbumsAsync(wildcardSearch, token))); Add(new SearchResultSection <Artist>(database, async(db, token) => await db.MusicContainer.SearchArtistsAsync(wildcardSearch, token))); Add(new SongsSearchResultSection(database, wildcardSearch, async(db, token) => await db.MusicContainer.SearchSongsAsync(wildcardSearch, token))); if (database.MoviesContainer != null) { Add(new SearchResultSection <Movie>(database, async(db, token) => await db.MoviesContainer.SearchMoviesAsync(wildcardSearch, token))); } if (database.PodcastsContainer != null) { Add(new SearchResultSection <Podcast>(database, async(db, token) => await db.PodcastsContainer.SearchShowsAsync(wildcardSearch, token))); } if (database.TVShowsContainer != null) { Add(new SearchResultSection <TVShow>(database, async(db, token) => await db.TVShowsContainer.SearchShowsAsync(wildcardSearch, token))); Add(new SearchResultSection <TVShowEpisode>(database, async(db, token) => await db.TVShowsContainer.SearchEpisodesAsync(wildcardSearch, token))); } if (database.iTunesUContainer != null) { Add(new SearchResultSection <iTunesUCourse>(database, async(db, token) => await(db.iTunesUContainer.SearchCoursesAsync(wildcardSearch, token)))); } if (database.BooksContainer != null) { Add(new SearchResultSection <Audiobook>(database, async(db, token) => await db.BooksContainer.SearchAudiobooksAsync(wildcardSearch, token))); } }
protected override Playlist GetContainer(DACPDatabase database) { var playlists = database.Playlists; if (playlists == null) { return(null); } return(database.Playlists.First(pl => pl.ID == _playlistID)); }
protected void UpdateCurrentDatabase() { var server = CurrentServer; if (server == null || !server.IsConnected) { CurrentDatabase = null; } else { CurrentDatabase = GetDatabase(server); } UpdateDBAndTitleVisibilities(); }
public static DACPContainer GetContainer(DACPDatabase database, DACPNodeDictionary nodes) { // Base Playlist if (nodes.GetBool("abpl")) { if (database.Server.IsAppleTV) { return(new MusicContainer(database, nodes)); } return(new DACPContainer(database, nodes)); } // Special playlist type ContainerType type = (ContainerType)nodes.GetByte("aePS"); switch (type) { case ContainerType.Playlist: return(new Playlist(database, nodes)); case ContainerType.Podcasts: return(new PodcastsContainer(database, nodes)); case ContainerType.Movies: return(new MoviesContainer(database, nodes)); case ContainerType.TVShows: return(new TVShowsContainer(database, nodes)); case ContainerType.Music: return(new MusicContainer(database, nodes)); case ContainerType.iTunesU: return(new iTunesUContainer(database, nodes)); case ContainerType.Books: return(new BooksContainer(database, nodes)); case ContainerType.GeniusMix: return(new GeniusMix(database, nodes)); case ContainerType.iTunesRadio: return(new iTunesRadioStation(database, nodes)); } return(new DACPContainer(database, nodes)); }
protected override MusicContainer GetContainer(DACPDatabase database) { return(database.MusicContainer); }
public iTunesRadioStation(DACPDatabase database, DACPNodeDictionary nodes) : base(database, nodes) { }
public BooksContainer(DACPDatabase database, DACPNodeDictionary nodes) : base(database, nodes) { }
protected async Task <bool> GetDatabasesAsync() { DACPRequest request = new DACPRequest("/databases"); try { var databases = await GetListAsync(request, n => DACPDatabase.GetDatabase(this, n)).ConfigureAwait(false); if (databases == null || databases.Count == 0) { return(false); } List <DACPDatabase> newSharedDatabases = new List <DACPDatabase>(); for (int i = 0; i < databases.Count; i++) { var db = databases[i]; // The main database will be first in the list if (i == 0) { if (MainDatabase != null && MainDatabase.ID == db.ID) { continue; } bool success = await db.RequestContainersAsync().ConfigureAwait(false); if (!success) { return(false); } MainDatabase = db; continue; } // Shared database if (db.Type == DatabaseType.Shared) { newSharedDatabases.Add(db); continue; } // Internet Radio if (db.Type == DatabaseType.InternetRadio) { if (InternetRadioDatabase != null && InternetRadioDatabase.ID == db.ID) { continue; } InternetRadioDatabase = db; continue; } // iTunes Radio if (db.Type == DatabaseType.iTunesRadio) { if (iTunesRadioDatabase != null && iTunesRadioDatabase.ID == db.ID) { continue; } iTunesRadioDatabase = (iTunesRadioDatabase)db; // Attempt to load the stations asynchronously to determine whether iTunes Radio is enabled. var task = iTunesRadioDatabase.RequestStationsAsync(); continue; } } // Update shared databases Dictionary <int, DACPDatabase> removedSharedDBs = SharedDatabases.ToDictionary(db => db.ID); foreach (var sharedDB in newSharedDatabases) { removedSharedDBs.Remove(sharedDB.ID); if (SharedDatabases.Any(db => db.ID == sharedDB.ID)) { continue; } SharedDatabases.Add(sharedDB); } foreach (DACPDatabase db in removedSharedDBs.Values) { SharedDatabases.Remove(db); } } catch (Exception e) { HandleHTTPException(request, e); return(false); } return(true); }
public static void OpenComposersPage(DACPDatabase database) { Navigate("/Pages/Browse/Music/ComposersPage.xaml?databaseID={0}", database.ID); }
public Playlist(DACPDatabase database, DACPNodeDictionary nodes) : base(database, nodes) { }
protected override BooksContainer GetContainer(DACPDatabase database) { return(database.BooksContainer); }
protected override iTunesUContainer GetContainer(DACPDatabase database) { return(database.iTunesUContainer); }
protected override TVShowsContainer GetContainer(DACPDatabase database) { return(database.TVShowsContainer); }
protected override PodcastsContainer GetContainer(DACPDatabase database) { return(database.PodcastsContainer); }
public static void OpenSearchPage(DACPDatabase database) { Navigate("/Pages/Search/SearchPage.xaml?databaseID={0}", database.ID); }
public static void OpenLibraryPage(DACPDatabase database) { Navigate("/Pages/Library/LibraryPage.xaml?databaseID={0}", database.ID); }
public static void OpenGeniusMixesPage(DACPDatabase database) { Navigate("/Pages/Browse/GeniusMixes/GeniusMixesPage.xaml?databaseID={0}", database.ID); }
internal SongsSearchResultSection(DACPDatabase database, string searchString, Func <DACPDatabase, CancellationToken, Task <IEnumerable <Song> > > action) : base(database, action) { _searchString = searchString; }
public static void OpenTVShowsPage(DACPDatabase database) { Navigate("/Pages/Browse/TVShows/TVShowsPage.xaml?databaseID={0}", database.ID); }
public DACPContainer(DACPDatabase database, DACPNodeDictionary nodes) : base(database.Server, nodes) { Database = database; }
public static void OpenPodcastsPage(DACPDatabase database) { Navigate("/Pages/Browse/Podcasts/PodcastsPage.xaml?databaseID={0}", database.ID); }
public static void OpeniTunesUCoursesPage(DACPDatabase database) { Navigate("/Pages/Browse/iTunesU/iTunesUCoursesPage.xaml?databaseID={0}", database.ID); }
public static void OpenAudiobooksPage(DACPDatabase database) { Navigate("/Pages/Browse/Audiobooks/AudiobooksPage.xaml?databaseID={0}", database.ID); }
public GeniusMix(DACPDatabase database, DACPNodeDictionary nodes) : base(database, nodes) { }
public static void OpenInternetRadioCategoriesPage(DACPDatabase database) { Navigate("/Pages/Browse/InternetRadio/InternetRadioCategoriesPage.xaml?databaseID={0}", database.ID); }
protected override Playlist GetContainer(DACPDatabase database) { return(database.Playlists.First(pl => pl.ID == _playlistID)); }
public static void OpeniTunesRadioStationsPage(DACPDatabase database) { Navigate("/Pages/Browse/iTunesRadio/iTunesRadioStationsPage.xaml?databaseID={0}", database.ID); }
internal SearchResultSection(DACPDatabase database, Func <DACPDatabase, CancellationToken, Task <IEnumerable <T> > > action) { Database = database; _action = action; }
protected abstract T GetContainer(DACPDatabase database);