コード例 #1
0
ファイル: Playlist.cs プロジェクト: Belphemur/MPDN_Extensions
        private void SetupPlaylist()
        {
            m_Form.Setup(this);
            Player.StateChanged        += OnPlayerStateChanged;
            Player.Playback.Completed  += OnPlaybackCompleted;
            Player.Closed              += OnMpdnFormClosed;
            Player.DragEnter           += OnDragEnter;
            Player.DragDrop            += OnDragDrop;
            Player.CommandLineFileOpen += OnCommandLineFileOpen;
            Media.Loading              += OnMediaLoading;
            m_MpdnForm          = Player.ActiveForm;
            m_MpdnForm.Move    += OnMpdnFormMove;
            m_MpdnForm.KeyDown += OnMpdnFormKeyDown;
            m_MpdnForm.MainMenuStrip.MenuActivate += OnMpdnFormMainMenuActivated;
            m_MpdnForm.SizeChanged += OnMpdnFormSizeChanged;
            m_MpdnForm.ResizeBegin += OnMpdnFormResizeBegin;
            m_MpdnForm.ResizeEnd   += OnMpdnFormResizeEnd;
            m_Form.VisibleChanged  += OnFormVisibilityChanged;
            m_Form.Move            += OnFormMove;
            m_Form.SizeChanged     += OnFormSizeChanged;

            if (Settings.RememberWindowPosition)
            {
                m_Form.RememberWindowPosition = Settings.RememberWindowPosition;
                m_Form.WindowPosition         = Settings.WindowPosition;
            }

            if (Settings.RememberWindowSize)
            {
                m_Form.RememberWindowSize = Settings.RememberWindowSize;
                m_Form.WindowSize         = Settings.WindowSize;
                m_FormStartSize           = m_Form.Size;
            }

            if (Settings.LockWindowSize)
            {
                m_Form.LockWindowSize = Settings.LockWindowSize;
                SetFormToFixed();
            }

            m_Form.SnapLocation = Settings.SnapLocation;

            if (Settings.SnapWithPlayer)
            {
                m_Form.SnapWithPlayer = Settings.SnapWithPlayer;
                SnapPlayer();
            }

            if (Settings.StaySnapped)
            {
                m_Form.KeepSnapped = Settings.StaySnapped;
            }

            if (Settings.RememberColumns)
            {
                if (Settings.Columns != null && Settings.Columns.Count > 0)
                {
                    m_Form.Columns = Settings.Columns;
                }
            }

            if (Settings.ShowToolTips)
            {
                m_Form.ShowToolTips = Settings.ShowToolTips;
            }

            if (Settings.ShowPlaylistOnStartup)
            {
                ViewPlaylist();
            }

            if (Settings.BeginPlaybackOnStartup)
            {
                m_Form.BeginPlaybackOnStartup = Settings.BeginPlaybackOnStartup;
            }

            if (Settings.RegexList != null && Settings.RegexList.Count > 0)
            {
                m_Form.RegexList = Settings.RegexList;
            }

            if (Settings.StripDirectoryInFileName)
            {
                m_Form.StripDirectoryInFileName = Settings.StripDirectoryInFileName;
            }

            m_Form.AfterPlaybackAction = Settings.AfterPlaybackAction;

            if (Settings.RememberPlaylist)
            {
                if (Settings.RememberedFiles.Count > 0)
                {
                    var playList = new List <PlaylistItem>();

                    foreach (string f in Settings.RememberedFiles)
                    {
                        var    s            = f.Split('|');
                        string filePath     = s[0];
                        var    skipChapters = new List <int>();

                        if (s[1].Length > 0)
                        {
                            if (s[1].Contains(","))
                            {
                                skipChapters = s[1].Split(',').Select(int.Parse).ToList();
                            }
                            else
                            {
                                skipChapters.Add(int.Parse(s[1]));
                            }
                        }

                        int    endChapter = int.Parse(s[2]);
                        bool   active     = bool.Parse(s[3]);
                        string duration   = s[4];

                        playList.Add(new PlaylistItem(filePath, skipChapters, endChapter, active, duration));
                    }

                    m_Form.Playlist = playList;
                    m_Form.PopulatePlaylist();
                    m_Form.RefreshPlaylist();
                    Task.Factory.StartNew(m_Form.GetMediaDuration);

                    if (Settings.BeginPlaybackOnStartup)
                    {
                        m_Form.PlayActive();
                    }
                }
            }

            FixFormLocationBounds();
            BindContextMenu(m_MpdnForm);
        }
コード例 #2
0
        public override void Initialize()
        {
            base.Initialize();
            form.Setup(this);

            PlayerControl.PlayerStateChanged  += OnPlayerStateChanged;
            PlayerControl.PlaybackCompleted   += OnPlaybackCompleted;
            PlayerControl.FormClosed          += OnMpdnFormClosed;
            PlayerControl.DragEnter           += OnDragEnter;
            PlayerControl.DragDrop            += OnDragDrop;
            PlayerControl.CommandLineFileOpen += OnCommandLineFileOpen;
            mpdnForm          = PlayerControl.Form;
            mpdnForm.Move    += OnMpdnFormMove;
            mpdnForm.KeyDown += OnMpdnFormKeyDown;
            mpdnForm.MainMenuStrip.MenuActivate += OnMpdnFormMainMenuActivated;
            mpdnForm.SizeChanged += OnMpdnFormSizeChanged;
            mpdnForm.ResizeBegin += OnMpdnFormResizeBegin;
            mpdnForm.ResizeEnd   += OnMpdnFormResizeEnd;
            form.VisibleChanged  += OnFormVisibilityChanged;
            form.Move            += OnFormMove;
            form.SizeChanged     += OnFormSizeChanged;

            if (Settings.RememberWindowPosition)
            {
                form.RememberWindowPosition = Settings.RememberWindowPosition;
                form.WindowPosition         = Settings.WindowPosition;
            }

            if (Settings.RememberWindowSize)
            {
                form.RememberWindowSize = Settings.RememberWindowSize;
                form.WindowSize         = Settings.WindowSize;
                formStartSize           = form.Size;
            }

            if (Settings.LockWindowSize)
            {
                form.LockWindowSize = Settings.LockWindowSize;
                SetFormToFixed();
            }

            if (Settings.SnapWithPlayer)
            {
                form.SnapWithPlayer = Settings.SnapWithPlayer;
                SnapPlayer();
            }

            if (Settings.StaySnapped)
            {
                form.KeepSnapped = Settings.StaySnapped;
            }

            if (Settings.RememberColumns)
            {
                if (Settings.Columns != null && Settings.Columns.Count > 0)
                {
                    form.Columns = Settings.Columns;
                }
            }

            if (Settings.ShowPlaylistOnStartup)
            {
                ViewPlaylist();
            }

            if (Settings.BeginPlaybackOnStartup)
            {
                form.BeginPlaybackOnStartup = Settings.BeginPlaybackOnStartup;
            }

            if (Settings.BeginPlaybackWhenFileIsAdded)
            {
                form.BeginPlaybackWhenFileIsAdded = Settings.BeginPlaybackWhenFileIsAdded;
            }

            if (Settings.BeginPlaybackWhenPlaylistFileIsOpened)
            {
                form.BeginPlaybackWhenPlaylistFileIsOpened = Settings.BeginPlaybackWhenPlaylistFileIsOpened;
            }

            if (Settings.RememberPlaylist)
            {
                if (Settings.RememberedFiles.Count > 0)
                {
                    var playList = new List <PlaylistItem>();

                    foreach (var f in Settings.RememberedFiles)
                    {
                        string[] s            = f.Split('|');
                        string   filePath     = s[0];
                        var      skipChapters = new List <int>();
                        if (s[1].Length > 0)
                        {
                            if (s[1].Contains(","))
                            {
                                skipChapters = s[1].Split(',').Select(int.Parse).ToList();
                            }
                            else
                            {
                                skipChapters.Add(int.Parse(s[1]));
                            }
                        }
                        int  endChapter = int.Parse(s[2]);
                        bool active     = Boolean.Parse(s[3]);

                        playList.Add(new PlaylistItem(filePath, skipChapters, endChapter, active));
                    }

                    int activeItem = (playList.FindIndex(i => i.Active) > -1) ? playList.FindIndex(i => i.Active) : 0;

                    form.Playlist = playList;
                    form.PopulatePlaylist();
                    form.RefreshPlaylist();
                    form.FocusPlaylistItem(activeItem);

                    if (Settings.BeginPlaybackOnStartup)
                    {
                        form.PlayActive();
                    }
                }
            }

            FixFormLocationBounds();
        }