コード例 #1
0
        private void BtnTargetSettings_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Control c      = (Control)sender;
                Point   locate = new Point(c.Location.X + e.Location.X, ((Control)sender).Location.Y + e.Location.Y);

                ContextMenuStrip columnsMenu = new ContextMenuStrip();


                ((ToolStripMenuItem)columnsMenu.Items.Add("Big endian", null, new EventHandler((ob, ev) => {
                    FileWatch.currentFileInfo.bigEndian = !FileStub.FileWatch.currentFileInfo.bigEndian;

                    if (VanguardCore.vanguardConnected)
                    {
                        FileWatch.UpdateDomains();
                    }
                }))).Checked = FileWatch.currentFileInfo.bigEndian;

                ((ToolStripMenuItem)columnsMenu.Items.Add("Auto-Uncorrupt", null, new EventHandler((ob, ev) => {
                    FileWatch.currentFileInfo.autoUncorrupt = !FileWatch.currentFileInfo.autoUncorrupt;
                }))).Checked = FileWatch.currentFileInfo.autoUncorrupt;

                ((ToolStripMenuItem)columnsMenu.Items.Add("Use Caching + Multithreading", null, new EventHandler((ob, ev) => {
                    FileWatch.currentFileInfo.useCacheAndMultithread = !FileWatch.currentFileInfo.useCacheAndMultithread;
                }))).Checked = FileWatch.currentFileInfo.useCacheAndMultithread;

                columnsMenu.Show(this, locate);
            }
        }
コード例 #2
0
        private void btnSendList_Click(object sender, EventArgs e)
        {
            if (lbMultipleFiles.Items.Count == 0)
            {
                MessageBox.Show("No files are selected");
                return;
            }

            FileWatch.CloseTarget(false);

            List <string> allFiles = new List <string>();

            for (int i = 0; i < lbMultipleFiles.Items.Count; i++)
            {
                allFiles.Add(lbMultipleFiles.Items[i].ToString());
            }

            allFiles.Sort();

            string multipleFiles = "";

            for (int i = 0; i < allFiles.Count; i++)
            {
                multipleFiles += allFiles[i];

                if (i < allFiles.Count - 1)
                {
                    multipleFiles += "|";
                }
            }

            var mfi = new MultipleFileInterface(multipleFiles, FileWatch.currentFileInfo.bigEndian, FileWatch.currentFileInfo.useAutomaticBackups);

            if (FileWatch.currentFileInfo.useCacheAndMultithread)
            {
                mfi.getMemoryDump();
            }

            FileWatch.currentFileInfo.targetInterface = mfi;

            if (VanguardCore.vanguardConnected)
            {
                FileWatch.UpdateDomains();
            }

            this.DialogResult = DialogResult.OK;
            this.Close();
        }
コード例 #3
0
        internal static bool LoadTargets(FileTarget[] provided = null)
        {
            FileTarget[] targets;
            string       requestedFileType = currentSession.selectedTargetType;

            if (provided == null)
            {
                var lbTargets = S.GET <StubForm>().lbTargets;
                if (lbTargets.Items.Count == 0)
                {
                    MessageBox.Show("No targets scheduled for loading. Aborting loading.");
                    return(false);
                }

                targets = lbTargets.Items.Cast <FileTarget>().ToArray();
            }
            else
            {
                targets = provided;
            }

            if (requestedFileType == TargetType.SINGLE_FILE)
            {
                FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE;

                var    target   = targets[0];
                string filename = targets[0].ToString();

                target.BigEndian = FileWatch.currentSession.bigEndian;

                CloseActiveTargets(false);

                FileInterface fi = null;

                Action <object, EventArgs> action = (ob, ea) =>
                {
                    fi = new FileInterface(target);

                    if (FileWatch.currentSession.useCacheAndMultithread)
                    {
                        fi.getMemoryDump();
                    }
                };

                Action <object, EventArgs> postAction = (ob, ea) =>
                {
                    if (fi == null || fi.lastMemorySize == null)
                    {
                        MessageBox.Show("Failed to load target");
                        S.GET <StubForm>().DisableTargetInterface();
                        return;
                    }

                    FileWatch.currentSession.targetShortName = fi.ShortFilename;
                    FileWatch.currentSession.targetFullName  = fi.Filename;

                    FileWatch.currentSession.fileInterface = fi;
                    S.GET <StubForm>().lbTarget.Text       = fi.GetType().ToString() + "|MemorySize:" + fi.lastMemorySize.ToString();

                    if (VanguardCore.vanguardConnected)
                    {
                        UpdateDomains();
                    }

                    //Refresh the UI
                    //RefreshUIPostLoad();
                };

                S.GET <StubForm>().RunProgressBar($"Loading target...", 0, action, postAction);
            }
            else //MULTIPLE_FILE
            {
                switch (currentSession.selectedTargetType)
                {
                case TargetType.MULTIPLE_FILE_SINGLEDOMAIN:
                    FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE;
                    break;

                case TargetType.MULTIPLE_FILE_MULTIDOMAIN:
                default:
                    FileInterface.identity = FileInterfaceIdentity.HASHED_PREFIX;
                    break;

                case TargetType.MULTIPLE_FILE_MULTIDOMAIN_FULLPATH:
                    FileInterface.identity = FileInterfaceIdentity.FULL_PATH;
                    break;
                }


                foreach (var target in targets)
                {
                    target.BigEndian = FileWatch.currentSession.bigEndian;
                }

                var mfi = new MultipleFileInterface(targets, FileWatch.currentSession.bigEndian, FileWatch.currentSession.useAutomaticBackups);

                if (FileWatch.currentSession.useCacheAndMultithread)
                {
                    mfi.getMemoryDump();
                }

                FileWatch.currentSession.fileInterface = mfi;

                if (VanguardCore.vanguardConnected)
                {
                    FileWatch.UpdateDomains();
                }

                S.GET <StubForm>().lbTarget.Text    = mfi.ShortFilename + "|MemorySize:" + mfi.lastMemorySize.ToString();
                StockpileManagerEmuSide.UnCorruptBL = null;
            }

            return(true);
        }