Example #1
0
        private void Play(IEnumerable <BaseData> data, bool deep)
        {
            Playlist.PlaylistManager.Instance.ClearPlaylist();

            List <PlaylistSong> songs = new List <PlaylistSong>();

            foreach (BaseData datum in data)
            {
                if (datum is Artist artist)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetArtistData(
                                       artist: artist,
                                       deep: deep));
                }
                else if (datum is Album album)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetAlbumData(
                                       album: album,
                                       deep: deep));
                }
                else if (datum is Song song)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetSongData(song));
                }
                else if (datum is Recording recording)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetSongData(recording));
                }
                else
                {
                    Console.WriteLine($"Unexpected LibraryContext: {datum}.  Likey error.");
                    return;
                }
            }

            if (data.Count() == 1)
            {
                Playlist.PlaylistManager.Instance.PlaylistName =
                    PlaylistTransferRequestHandler.GetDefaultPlaylistName(
                        data: data.First());
            }
            else
            {
                Playlist.PlaylistManager.Instance.PlaylistName = "Assorted";
            }

            Playlist.PlaylistManager.Instance.Rebuild(songs);
            Player.MusicManager.Instance.Next();
        }
Example #2
0
        private void Add(IEnumerable <BaseData> data, bool deep, int position = -1)
        {
            List <PlaylistSong> songs = new List <PlaylistSong>();

            foreach (BaseData datum in data)
            {
                if (datum is Artist artist)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetArtistData(
                                       artist: artist,
                                       deep: deep));
                }
                else if (datum is Album album)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetAlbumData(
                                       album: album,
                                       deep: deep));
                }
                else if (datum is Song song)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetSongData(song));
                }
                else if (datum is Recording recording)
                {
                    songs.AddRange(PlaylistTransferRequestHandler.GetSongData(recording));
                }
                else
                {
                    Console.WriteLine($"Unexpected LibraryContext: {datum}.  Likey error.");
                    return;
                }
            }

            if (position == -1)
            {
                Playlist.PlaylistManager.Instance.AddBack(songs);
            }
            else
            {
                Playlist.PlaylistManager.Instance.InsertSongs(position, songs);
            }
        }