Example #1
0
        public void Restart()
        {
            Aborting = true;

            ThreadPool.QueueUserWorkItem(delegate
            {
                while (
                    !FileScanner.Stopped ||
                    !FileUploader.Stopped ||
                    !PlaylistProcessor.Stopped ||
                    !IdleProcessor.Stopped ||
                    !QueueChecker.Stopped)
                {
                    ThreadHelper.SafeSleep(250);
                }

                FileScanner       = new FileScanner(this);
                FileUploader      = new FileUploader(this);
                IdleProcessor     = new IdleProcessor(this);
                QueueChecker      = new QueueChecker(this);
                PlaylistProcessor = new PlaylistProcessor(this);

                FileScanner.Reset();
                Aborting = false;

                ManagingYTMusicStatus = ManagingYTMusicStatusEnum.CloseChangesComplete;
                StartMainProcess(true);
            });
        }
Example #2
0
        public MainForm(bool hidden) : base(formResizable: false)
        {
#if RELEASE
            CheckForIllegalCrossThreadCalls = false;
#endif
            CultureHelper.GloballySetCultureToGB();

            MainFormInstance = this;
            InitializeComponent();

            if (hidden)
            {
                ShowInTaskbar = false;
                CenterForm();
                WindowState = FormWindowState.Minimized;
                Opacity     = 0;
                StartHidden = true;
            }

            MusicDataFetcher = new MusicDataFetcher();
            SetVersion("v" + Global.ApplicationVersion);

            lblIssues.GotFocus          += LinkLabel_GotFocus;
            lblDiscoveredFiles.GotFocus += LinkLabel_GotFocus;

            if (!EdgeDependencyChecker.CheckEdgeCoreFilesArePresentAndCorrect())
            {
                btnConnectToYoutube.Enabled = false;
                InstallEdge();
            }
            else
            {
                ConnectToYTMusicForm = new ConnectToYTMusic(this);
            }

            FileScanner       = new FileScanner(this);
            FileUploader      = new FileUploader(this);
            PlaylistProcessor = new PlaylistProcessor(this);
            IdleProcessor     = new IdleProcessor(this);
            QueueChecker      = new QueueChecker(this);

            InitialiseTimers();
            InitialiseTooltips();
            InitialiseSystemTrayIconMenuButtons();
            ConnectToYouTubeMusic();
            StartMainProcess();
        }
Example #3
0
        public MainForm(bool hidden) : base(formResizable: false)
        {
#if RELEASE
            CheckForIllegalCrossThreadCalls = false;
#endif
            CultureHelper.GloballySetCultureToGB();

            MainFormInstance = this;
            InitializeComponent();
            btnConnectToYoutube.Enabled = false;

            if (hidden)
            {
                ShowInTaskbar = false;
                CenterForm();
                WindowState = FormWindowState.Minimized;
                Opacity     = 0;
                StartHidden = true;
            }

            MusicDataFetcher = new MusicDataFetcher();
            SetVersion("v" + Global.ApplicationVersion);

            lblIssues.GotFocus          += LinkLabel_GotFocus;
            lblDiscoveredFiles.GotFocus += LinkLabel_GotFocus;

            ConnectToYTMusicForm = new ConnectToYTMusic(this);

            FileScanner       = new FileScanner(this);
            FileUploader      = new FileUploader(this);
            PlaylistProcessor = new PlaylistProcessor(this);
            IdleProcessor     = new IdleProcessor(this);
            QueueChecker      = new QueueChecker(this);

            InitialiseTimers();
            InitialiseTooltips();
            InitialiseSystemTrayIconMenuButtons();
            ConnectToYouTubeMusic();

            StartMainProcess();

            //  Restart everything after 24 hours (is the application is continually run)
            _restartThread = new Thread((ThreadStart) delegate
            {
                while (Settings == null)
                {
                    ThreadHelper.SafeSleep(500);
                }

                while (true)
                {
                    if (Settings.UploadPlaylists)
                    {
                        if (!Settings.LastPlaylistUpload.HasValue)
                        {
                            Settings.LastPlaylistUpload = DateTime.Now.AddHours(Global.SessionRestartHours * -1).AddHours(-2);
                        }

                        if (!_scanAndUploadThread.IsAlive &&
                            DateTime.Now > ((DateTime)Settings.LastPlaylistUpload).AddHours(Global.SessionRestartHours) &&
                            !PlaylistProcessor.ProcessingPlaylistsFinished)
                        {
                            StartMainProcess();
                        }
                    }

                    if (DateTime.Now.AddHours(Global.SessionRestartHours * -1) > SessionStart)
                    {
                        SessionStart = DateTime.Now;
                        PlaylistProcessor.ProcessingPlaylistsFinished = false;
                        StartMainProcess();
                    }

                    ThreadHelper.SafeSleep(15000);
                }
            })
            {
                IsBackground = true
            };
            _restartThread.Start();
        }