public void Execute(object parameter)
        {
            //// saves parameter to be used, if redo is invoked
            //RedoContext = parameter;

            String url = _mwvm.Navigation.CurrentLocation + (String)parameter;
            PlaylistItemModel playlistItem = new PlaylistItemModel(url);
            playlistItem.RemoveCommand = _mwvm.CommandLib.RemoveFromPlaylistCommand;

            bool isNotSupported = false;
            foreach (var type in SupportedFileTypes.ToStringArray())
            {
                if (!parameter.ToString().EndsWith(type))
                {
                    isNotSupported = true;
                }
                else
                {
                    _mwvm.Playlist.AddToPlaylist(playlistItem);
                    isNotSupported = false;
                    break;
                }
            }
            if (isNotSupported)
                throw new PlaylistException("Not able to add this file!\nFileformat not supported.");

            _playlistItem = playlistItem;
        }
        public void Execute(object parameter)
        {
            PlaylistItemModel item = (PlaylistItemModel)parameter;

            _mwvm.Playlist.RemoveFromPLaylist(item);

            _playlistItem = item;
        }
        public PlaylistItemModel GetNextSong()
        {
            PlaylistItemModel next = null;

            var index = CurrentUIPlaylist.IndexOf(Playing);

            if (index < CurrentUIPlaylist.Count - 1)
                next = CurrentUIPlaylist[index + 1];
            else if (index == CurrentUIPlaylist.Count - 1)
            {
                // TODO  repeat!
                next = CurrentUIPlaylist[0];
            }

            if (next != null)
                SelectedPlaylistItem = next;

            return next;
        }
 internal void RemoveFromPLaylist(PlaylistItemModel song)
 {
     CurrentUIPlaylist.Remove(song);
 }
        // adds song to playlist (not loaded yet)
        internal void AddToPlaylist(PlaylistItemModel song)
        {
            IWMPMedia media = _player.MediaPlayer.newMedia(song.Url);

                if (media.durationString != null || media.durationString != "0")
                    song.DurationAsString = media.durationString;
                else
                    song.DurationAsString = "--";

                // TEST
                //ShowFileInfo(media);

                CurrentUIPlaylist.Add(song);
        }
        public void OpenTestPlaylist()
        {
            // hvis playlisten findes
            if (_player.MediaPlayer.playlistCollection.getByName(default_playlist).count > 0)
            {
                IWMPPlaylist firstlist = _player.MediaPlayer.playlistCollection.getByName(default_playlist).Item(0);

                // wmp.dll <-- current playlist
                _player.MediaPlayer.currentPlaylist = firstlist;

                // update UI playlist
                for (int i = 0; i < firstlist.count; i++)
                {
                    var song = new PlaylistItemModel(firstlist.get_Item(i).sourceURL);
                    song.DurationAsString = firstlist.get_Item(i).durationString;

                    CurrentUIPlaylist.Add(song);

                }

            }
            else // hvis ikke
            {
                MessageBox.Show(string.Format("WMP.dll indeholder ikke playlisten: {0}", default_playlist));
            }
        }
        public PlaylistItemModel GetPreviousSong()
        {
            PlaylistItemModel prev = null;

            var index = CurrentUIPlaylist.IndexOf(Playing);

            if (index > 0)
            {
                prev = CurrentUIPlaylist[index - 1];
            }

            if (prev != null)
                SelectedPlaylistItem = prev;

            return prev;
        }
        public void BeginStreaming(PlaylistItemModel song)
        {
            var remoteUrl = song.Url;

            if (Streamer == null)
            {
                var result = MessageBox.Show("Not connected to a server!\n", "MusicStreamer", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            //remote-to-local url parsing
            var filename = Streamer.StreamMedia(remoteUrl);

            PrepareAndPlaySong(filename);

            // set 'playing' in playlist (used for next/prev)
            MainWindowViewModel.Instance.Playlist.Playing = song;
        }