Esempio n. 1
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();
        }