Pass delegates instead of MainForm to BatchRunner

This commit is contained in:
YoshiRulz 2020-06-29 14:35:12 +10:00
parent c0aefd438a
commit e4df38602b
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
3 changed files with 13 additions and 9 deletions

View File

@ -1371,7 +1371,7 @@ namespace BizHawk.Client.EmuHawk
private void BatchRunnerMenuItem_Click(object sender, EventArgs e)
{
using var form = new BatchRun(this);
using var form = new BatchRun(CreateCoreComm);
form.ShowDialog();
}

View File

@ -4,17 +4,21 @@ using System.Windows.Forms;
using System.Threading;
using System.IO;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class BatchRun : Form
{
private Thread _thread;
private List<BatchRunner.Result> _mostRecentResults;
private MainForm _mainForm;
private readonly Func<CoreComm> _createCoreComm;
public BatchRun(MainForm mainForm)
private List<BatchRunner.Result> _mostRecentResults;
private Thread _thread;
public BatchRun(Func<CoreComm> createCoreComm)
{
this._mainForm = mainForm;
_createCoreComm = createCoreComm;
InitializeComponent();
}
@ -83,7 +87,7 @@ namespace BizHawk.Client.EmuHawk
try
{
var pp = (Tuple<int, List<string>>)o;
BatchRunner br = new BatchRunner(_mainForm, pp.Item2, pp.Item1);
BatchRunner br = new BatchRunner(_createCoreComm(), pp.Item2, pp.Item1);
br.OnProgress += br_OnProgress;
var results = br.Run();
this.Invoke(() => { label3.Text = "Status: Finished!"; _mostRecentResults = results; });

View File

@ -64,7 +64,7 @@ namespace BizHawk.Client.EmuHawk
}
}
public BatchRunner(MainForm mainForm, IEnumerable<string> files, int numFrames)
public BatchRunner(CoreComm comm, IEnumerable<string> files, int numFrames)
{
_files = new List<string>(files);
_numFrames = numFrames;
@ -72,7 +72,7 @@ namespace BizHawk.Client.EmuHawk
_ldr = new RomLoader(GlobalWin.Config, GlobalWin.FirmwareManager);
_ldr.OnLoadError += OnLoadError;
_ldr.ChooseArchive = ChooseArchive;
_comm = mainForm.CreateCoreComm();
_comm = comm;
}
private void OnLoadError(object sender, RomLoader.RomErrorArgs e)