public void NewUpdate(ToolFormUpdateType type)
        {
            if (type == ToolFormUpdateType.PostFrame)
            {
                if (ToWindowRadio.Checked)
                {
                    TraceView.VirtualListSize = _instructions.Count;
                }
                else
                {
                    CloseFile();
                }
            }

            if (type == ToolFormUpdateType.PreFrame)
            {
                if (LoggingEnabled.Checked)
                {
                    //connect tracer to sink for next frame
                    if (ToWindowRadio.Checked)
                    {
                        //update listview with most recentr results
                        TraceView.BlazingFast = !GlobalWin.MainForm.EmulatorPaused;

                        Tracer.Sink = new CallbackSink()
                        {
                            putter = (info) =>
                            {
                                if (_instructions.Count >= MaxLines)
                                {
                                    _instructions.RemoveRange(0, _instructions.Count - MaxLines);
                                }
                                _instructions.Add(info);
                            }
                        };
                        _instructions.Clear();
                    }
                    else
                    {
                        if (_streamWriter == null)
                        {
                            StartLogFile(true);
                        }
                        Tracer.Sink = new CallbackSink {
                            putter = (info) =>
                            {
                                //no padding supported. core should be doing this!
                                var data = string.Format("{0} {1}", info.Disassembly, info.RegisterInfo);
                                _streamWriter.WriteLine(data);
                                _currentSize += (ulong)data.Length;
                                if (_splitFile)
                                {
                                    CheckSplitFile();
                                }
                            }
                        };
                    }
                }
                else
                {
                    Tracer.Sink = null;
                }
            }
        }
Exemple #2
0
 public void NewUpdate(ToolFormUpdateType type)
 {
 }
 public void UpdateValues(ToolFormUpdateType type)
 {
 }