NTRDebuggerTool.Forms.MainForm.GUIUpdateTimer_Tick C# (CSharp) Method

GUIUpdateTimer_Tick() private method

private GUIUpdateTimer_Tick ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        private void GUIUpdateTimer_Tick(object sender, EventArgs e)
        {
            if (Enabled != FormEnabled)
            {
                Enabled = FormEnabled;
                if (FormEnabled)
                {
                    Activate();
                }
            }

            NTRConnection.SendHeartbeatPacket();

            int LocalReadMax = (int)NTRConnection.ProgressReadMax, LocalRead = (int)NTRConnection.ProgressRead, LocalScanMax = (int)NTRConnection.ProgressScanMax, LocalScan = (int)NTRConnection.ProgressScan;

            if (LocalReadMax > 0 && LocalRead >= 0 && LocalReadMax >= LocalRead)
            {
                ProgressBarMemoryRead.Maximum = LocalReadMax;
                ProgressBarMemoryRead.Value = LocalRead;
            }
            else
            {
                ProgressBarMemoryRead.Maximum = ProgressBarMemoryRead.Value = 0;
            }

            if (LocalScanMax > 0 && LocalScan >= 0 && LocalScanMax >= LocalScan)
            {
                ProgressBarMemoryScan.Maximum = LocalScanMax;
                ProgressBarMemoryScan.Value = LocalScan;
            }
            else
            {
                ProgressBarMemoryScan.Maximum = ProgressBarMemoryScan.Value = 0;
            }

            if (NTRConnection.IsProcessListUpdated)
            {
                NTRConnection.IsProcessListUpdated = false;
                string CurrentProcess = Processes.SelectedValue == null ? null : Processes.SelectedValue.ToString();
                Processes.Items.Clear();
                Processes.Items.AddRange(NTRConnection.Processes.ToArray());
                if (CurrentProcess != null && Processes.Items.Contains(CurrentProcess))
                {
                    Processes.SelectedValue = CurrentProcess;
                    Processes.SelectedIndex = Processes.Items.IndexOf(CurrentProcess);
                }
                else if (!Processes.Items[0].ToString().Contains(','))
                {
                    Processes.SelectedIndex = 0;
                }
                SetConnectedControls(true);
                ControlEnabledButtonConnectDisconnect = true;
                NTRConnection.SetCurrentOperationText = "";
            }

            if (NTRConnection.IsMemoryListUpdated)
            {
                NTRConnection.IsMemoryListUpdated = false;
                string CurrentRange = MemoryRange.SelectedValue == null ? "All" : MemoryRange.SelectedValue.ToString();
                MemoryRange.Items.Clear();
                MemoryRange.Items.Add("All");
                foreach (uint Start in NTRConnection.AddressSpaces.Keys)
                {
                    MemoryRange.Items.Add(Utilities.GetStringFromByteArray(BitConverter.GetBytes(Start).Reverse().ToArray()) + "|" + Utilities.GetStringFromByteArray(BitConverter.GetBytes(NTRConnection.AddressSpaces[Start]).Reverse().ToArray()));
                }
                MemoryRange.Items.Add("Custom");
                if (CurrentRange != null && MemoryRange.Items.Contains(CurrentRange))
                {
                    MemoryRange.SelectedValue = CurrentRange;
                    MemoryRange.SelectedIndex = MemoryRange.Items.IndexOf(CurrentRange);
                }
                SetProcessSelectedControls(true);
                SetConnectedControls(true);
                NTRConnection.SetCurrentOperationText = "";
            }

            if (LastSearchCriteria != null && LastSearchCriteria.SearchValue != null)
            {
                LabelLastSearch.Text = "Last Search\n" + LastSearchCriteria.AddressesFound.Count + " results found for " + GetDisplayForByteArray(LastSearchCriteria.SearchValue);

                if (SearchComplete)
                {
                    ControlEnabledSearchButton = true;
                    if (LastSearchCriteria.AddressesFound.Count < Config.MaxValuesToDisplay)
                    {
                        ResultsGrid.Rows.Clear();
                        foreach (uint Address in LastSearchCriteria.AddressesFound.Keys)
                        {
                            int Row = ResultsGrid.Rows.Add();
                            ResultsGrid[0, Row].Value = Utilities.GetStringFromByteArray(BitConverter.GetBytes(Address).Reverse().ToArray());
                            ResultsGrid[1, Row].Value = GetDisplayForByteArray(LastSearchCriteria.AddressesFound[Address]);
                        }
                    }
                    NTRConnection.SetCurrentOperationText = "";
                    ComboDataType_SelectedValueChanged(null, null);
                    SearchComplete = false;
                }
            }

            if (SetConnectText != null)
            {
                ButtonConnectDisconnect.Text = SetConnectText;
                SetConnectText = null;
            }

            LabelCurrentOperation.Text = NTRConnection.SetCurrentOperationText;
            LabelButtonState.Text = NTRConnection.SetCurrentOperationText2;

            UpdateLockedControls();

            if (NTRConnection.IsConnected)
            {
                if (LockValuesStopwatch.ElapsedMilliseconds > Config.LockValuesDelay)
                {
                    for (int i = 0; i < ValuesGrid.Rows.Count; ++i)
                    {
                        if (ValuesGrid[0, i].Value is string)
                        {
                            if (GateSharkCodes.ContainsKey(i))
                            {
                                GateSharkCodes[i].Execute();
                            }
                            else
                            {
                                SetMemory(i);
                            }
                        }
                    }
                    LockValuesStopwatch.Restart();
                }
            }

            if (ThreadEventDispatcher.FoundPointerAddress != null)
            {
                ValuesGrid[1, PointerSearchRow].Value = ThreadEventDispatcher.FoundPointerAddress;
                ThreadEventDispatcher.FoundPointerAddress = null;
            }

            if (ThreadEventDispatcher.RefreshValueReturn.Count > 0)
            {
                MemoryDispatch MemoryDispatch;
                while (ThreadEventDispatcher.RefreshValueReturn.TryDequeue(out MemoryDispatch))
                {
                    ValuesGrid[1, MemoryDispatch.Row].ToolTipText = MemoryDispatch.ResolvedAddress;
                    ValuesGrid[2, MemoryDispatch.Row].Value = GetDisplayForByteArray(MemoryDispatch.Value, MemoryDispatch.Type);
                }
            }

            if (ThreadEventDispatcher.ImportedCode != null)
            {
                int RowIndex = ValuesGrid.Rows.Add();
                ValuesGrid[0, RowIndex].Value = null;
                ValuesGrid[3, RowIndex].Value = "Raw";
                ValuesGrid[1, RowIndex].Value = "GateShark";
                ValuesGrid[2, RowIndex].Value = ThreadEventDispatcher.ImportedCode.ToString();
                GateSharkCodes.Add(RowIndex, ThreadEventDispatcher.ImportedCode);
                ThreadEventDispatcher.ImportedCode = null;
            }
        }