private void UpdateMediaList() { if (SelectedMedia != null) { if (!MediaItems.Contains(SelectedMedia)) { SelectedMedia.Status = MediaStates.SelectedButDisabled; } else { mediaList.Remove(SelectedMedia); } } foreach (MediaBase media in mediaList.ToArray()) { if (media != SelectedMedia) { mediaList.Remove(media); } } foreach (MediaBase item in MediaItems) { if (MediaItems.Contains(SelectedMedia)) { if (mediaList.Contains(SelectedMedia)) { item.Status = MediaStates.NotPlayed; } else if (SelectedMedia == item) { item.Status = MediaStates.Selected; } else { item.Status = MediaStates.Played; } mediaList.Add(item); } else { item.Status = MediaStates.NotPlayed; mediaList.Add(item); } } }
internal void Previous() { if (!Random) { UpdateMediaList(); } else { UpdateRandomMediaList(); } VlcMediaCollection collection = Random ? mediaRandomList : mediaList; MediaBase media; for (int cpt = 0; cpt < 2; cpt++) { media = collection.LastOrDefault(m => m.Status == MediaStates.Played); if (media != null) { if (SelectedMedia != null) { if (MediaItems.Contains(SelectedMedia)) { SelectedMedia.Status = collection.IndexOf(media) < collection.IndexOf(SelectedMedia) ? MediaStates.NotPlayed : MediaStates.Played; } else { collection.Remove(SelectedMedia); } } media.Status = MediaStates.Selected; SelectedMedia = media; break; } if (!Loop) { break; } if (cpt == 0) { collection. Where(m => m.Status == MediaStates.NotPlayed).ToList(). ForEach(m => m.Status = MediaStates.Played); } } }
internal void Next() { if (!Random) { UpdateMediaList(); } else { UpdateRandomMediaList(); } VlcMediaCollection collection = Random ? mediaRandomList : mediaList; if (Loop && SelectedMedia != null && collection.IndexOf(SelectedMedia) == collection.Count - 1) { collection.ToList().ForEach(m => m.Status = MediaStates.NotPlayed); } MediaBase media = collection.FirstOrDefault(m => m.Status == MediaStates.NotPlayed); if (media != null) { if (SelectedMedia != null) { if (SelectedMedia.Status == MediaStates.SelectedButDisabled) { collection.Remove(SelectedMedia); } else { SelectedMedia.Status = MediaStates.Played; } } media.Status = MediaStates.Selected; SelectedMedia = media; } }