Пример #1
0
        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 { }
        }
Пример #2
0
        public static DacpContainer GetContainer(DacpDatabase database, DacpNodeDictionary nodes)
        {
            // Base Playlist
            if (nodes.GetBool("abpl"))
            {
                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));
        }