protected override void ProcessNodes(DACPNodeDictionary nodes) { base.ProcessNodes(nodes); BasePlaylist = nodes.GetBool("abpl"); Type = (ContainerType)nodes.GetByte("aePS"); ItemCount = nodes.GetInt("mimc"); ParentContainerID = nodes.GetInt("mpco"); try { HasChildContainers = (nodes.GetInt("f\uFFFDch") > 0); } catch { } }
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)); }