private void ResetPlayer() { var prevCurrentItem = _InternalPlayer?.Current; IPlaylistPlayer newPlayer = null; if (PlaylistSettings.IsShuffleEnable) { newPlayer = new ShufflePlaylistPlayer() { IsRepeat = PlaylistSettings.RepeatMode == MediaPlaybackAutoRepeatMode.List }; } else { newPlayer = new ThroughPlaylistPlayer() { IsRepeat = PlaylistSettings.RepeatMode == MediaPlaybackAutoRepeatMode.List }; } if (newPlayer == null) { throw new Exception(); } _InternalPlayer = newPlayer; ResetItems(); }
private void RestorePlaying() { Logger.Debug("Restoring currently playing..."); foreach (ScreenInfo monitor in monitors) { IPlaylistPlayer player = GetPlayer(monitor); if (player.Playlist.Count > 0) { player.Play(player.Playlist.CurrentItem); } } }
private void RestorePlaylists() { Logger.Debug("Restoring playlists..."); foreach (ScreenInfo monitor in monitors) { IPlaylistPlayer player = GetPlayer(monitor); if (Settings.Playlists.TryGetValue(monitor.Index, out Playlist playlist)) { player.Playlist.Clear(false); player.Playlist.AddRange(playlist.Items, true); player.Playlist.CurrentIndex = playlist.CurrentIndex; } } }
private void moveToToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { IPlaylistPlayer targetPlayer = GetPlayer((ScreenInfo)e.ClickedItem.Tag); if (targetPlayer != null) { foreach (PlaylistItem item in lbxPlaylist.SelectedItems.Cast <PlaylistItem>()) { if (!targetPlayer.Playlist.Contains(item)) { targetPlayer.Playlist.Add(item, false); CurrentPlayer.Playlist.Remove(item, false); } } targetPlayer.Playlist.NotifyChanged(); CurrentPlayer.Playlist.NotifyChanged(); } }
private void SavePlaylists() { Logger.Debug("Saving playlists..."); Settings.Playlists.Clear(); foreach (ScreenInfo monitor in monitors) { IPlaylistPlayer player = GetPlayer(monitor); if (player.Playlist.Count == 0) { continue; } Settings.Playlists.Add(monitor.Index, player.Playlist); } settingsManager.Save(); }
private void CurrentScreenSelectionChanged() { if (CurrentPlayer != null) // Remove hooks for previous player. { CurrentPlayer.OnChanged -= CurrentPlayer_OnChange; CurrentPlayer.OnPositionChanged -= CurrentPlayer_OnPositionChanged; } CurrentPlayer = GetPlayer((ScreenInfo)cbxMonitor.SelectedItem); if (CurrentPlayer != null) // Add hooks for current player. { CurrentPlayer.OnChanged += CurrentPlayer_OnChange; CurrentPlayer.OnPositionChanged += CurrentPlayer_OnPositionChanged; btnLoop.Value = CurrentPlayer.LoopMode; btnShuffle.Value = CurrentPlayer.ShuffleMode; } RefreshPlaylist(); RefreshEnabled(); }