public async Task Clear() { clear(); #if !Windows10 savePlaylistToBackgroundDB(); #endif OnPlaylistChanged?.Invoke(); }
public PlaybackService() { _playlistService = new PlaylistService(this); _playlistService.OnPlaylistEndReached += () => OnPlaylistEndReached?.Invoke(); _playlistService.OnPlaylistChanged += () => OnPlaylistChanged?.Invoke(); _playlistService.OnCurrentMediaChanged += onCurrentMediaChanged; _playlistService.OnRepeatChanged += (v) => OnRepeatChanged?.Invoke(v); PlayingType = PlayingType.NotPlaying; }
public void RemoveMedia(IMediaItem media) { // CurrentMedia relies on the underlying playlist, so we can't check after removal if (_playlist.Remove(media) == true) { _nonShuffledPlaylist.Remove(media); OnPlaylistChanged?.Invoke(); } }
public void AddToPlaylist(IEnumerable <IMediaItem> toAdd) { foreach (var m in toAdd) { _playlist.Add(m); } OnPlaylistChanged?.Invoke(); savePlaylistToBackgroundDB(); }
private void ToggleShuffle() { if (!_isShuffled) { shufflePlaylist(_index); _isShuffled = true; } else { var index = _nonShuffledPlaylist.IndexOf(CurrentMedia); _playlist = _nonShuffledPlaylist; _index = index; _isShuffled = false; } OnPlaylistChanged?.Invoke(); }
public async Task SetPlaylist(IEnumerable <IMediaItem> mediaItems, int startingIndex = 0, bool shuffle = false) { clear(); foreach (var m in mediaItems) { _playlist.Add(m); } if (shuffle) { shufflePlaylist(); _isShuffled = true; } OnPlaylistChanged?.Invoke(); Index = startingIndex; savePlaylistToBackgroundDB(); }
public void Restore() { if (!ApplicationSettingsHelper.Contains(nameof(Index))) { return; } var playlist = BackgroundTrackRepository.LoadPlaylist(); if (!playlist.Any()) { return; } var trackIds = playlist.Select(node => node.TrackId); var restoredplaylist = new SmartCollection <IMediaItem>(); foreach (int trackId in trackIds) { var trackItem = Locator.MediaLibrary.LoadTrackById(trackId); if (trackItem != null) { restoredplaylist.Add(trackItem); } } if (restoredplaylist.Count == 0) { return; } clear(); _playlist = restoredplaylist; OnPlaylistChanged?.Invoke(); _index = (int)ApplicationSettingsHelper.ReadSettingsValue(nameof(Index)); OnCurrentMediaChanged?.Invoke(_playlist[_index], true); }
public async Task Clear() { clear(); savePlaylistToBackgroundDB(); OnPlaylistChanged?.Invoke(); }