private void BackupUserCtrl_Load(object sender, EventArgs e)
        {
            m_task.m_steamDir  = Settings.SteamDir;
            m_task.m_backupDir = Settings.BackupDir;

            m_task.m_jobList.Clear();

            Cursor = Cursors.WaitCursor;
            EnableControl(false);

            var worker = new BackgroundWorker();

            worker.WorkerReportsProgress = true;
            worker.DoWork          += (o, args) => m_task.Scan(worker);
            worker.ProgressChanged += (o, args) =>
            {
                workingProgBar.Value = args.ProgressPercentage;
                workingLbl.Text      = "Working: " + m_task.m_jobList.Count + "/" + m_task.m_jobList.Capacity + " Apps Analysed";
            };
            worker.RunWorkerCompleted += (o, args) =>
            {
                m_task.m_jobList.Sort();
                chkList.DataSource    = m_task.m_jobList;
                chkList.DisplayMember = "m_name";

                UpdCheckBoxList();

                cBoxUnlockThreads.Checked = Settings.Lzma2UnlockThreads;
                if (Settings.UseLzma2)
                {
                    tbarThread.Maximum = cBoxUnlockThreads.Checked ? 8 : Math.Min(8, Environment.ProcessorCount);

                    tbarThread.Value          = Settings.Lzma2Threads;
                    m_task.m_threadCount      = Settings.Lzma2Threads;
                    cBoxUnlockThreads.Visible = true;
                }
                else
                {
                    tbarThread.Maximum        = 4;
                    tbarThread.Value          = Settings.ThreadsBup;
                    m_task.m_threadCount      = Settings.ThreadsBup;
                    cBoxUnlockThreads.Visible = false;
                }

                cBoxLzma2.Checked = Settings.UseLzma2;

                ThreadText();

                tbarComp.Value     = Settings.Compression;
                m_task.m_compLevel = Settings.Compression;
                CompresionText();

                RamUsage();

                Cursor = Cursors.Arrow;
                EnableControl(true);
            };
            worker.RunWorkerAsync();
        }
Example #2
0
        private static void Setup()
        {
            if (Utilities.IsSteamRunning())
            {
                Console.WriteLine(@"");
                Console.WriteLine(@"Steam is running!");
                Console.WriteLine(@"Please exit Steam before backing up.");
                Console.WriteLine(@"To continue, exit Steam and restart this Application.");
                Console.WriteLine(@"Do not start Steam until the backup process is finished.");
                Console.WriteLine(@"");
                Console.WriteLine(@"Press enter to exit.");
                Console.ReadLine();
                Environment.Exit(2);
            }

            if (string.IsNullOrEmpty(m_steamDir))
            {
                try
                {
                    m_steamDir = Utilities.GetSteamDirectory();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Environment.Exit(1);
                }
            }

            if (!Utilities.IsValidSteamFolder(m_steamDir))
            {
                Console.WriteLine(string.Format(Resources.NotValidSteamDirectory, m_steamDir));
                Environment.Exit(3);
            }

            // create folders if needed
            if (!Utilities.SetupBackupDirectory(m_outDir))
            {
                Console.WriteLine(string.Format(Resources.UnwritableDirectory, m_outDir));
                Environment.Exit(4);
            }

            m_consoleWidth = Console.BufferWidth;
            m_statusLine   = Console.CursorTop;

            m_instanceLines.Add(m_statusLine + 4);
            m_registeredInstances.Add(-1);

            if (!m_useLzma2)
            {
                for (var i = 1; i < m_numThreads; i++)
                {
                    m_instanceLines.Add(m_statusLine + 4 + (i * 3));
                    m_registeredInstances.Add(-1);
                }
            }

            Settings.BackupDir = m_outDir;

            m_bupTask = new BackupTask {
                m_steamDir = m_steamDir, m_backupDir = m_outDir
            };

            Console.SetCursorPosition(0, m_statusLine);
            Console.WriteLine(Resources.Scanning.PadRight(m_consoleWidth));

            m_bupTask.m_jobList.Clear();
            m_bupTask.Scan();

            m_bupTask.m_useLzma2  = m_useLzma2;
            m_bupTask.m_compLevel = m_compLevel;

            if (m_useLzma2)
            {
                m_bupTask.m_lzma2Threads = m_numThreads;
            }
            else
            {
                m_bupTask.m_threadCount = m_numThreads;
            }

            if (m_updateBackup)
            {
                m_bupTask.SetEnableUpd(true);
            }
            else if (m_updateLibrary)
            {
                m_bupTask.SetEnableUpd(false);
            }
            else
            {
                m_bupTask.SetEnableAll();
                m_bupTask.m_deleteAll = m_deleteBackup;
            }

            m_bupTask.Start();
        }