コード例 #1
0
        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();
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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;
                }
            }
        }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
        }