diff --git a/BizHawk.Client.EmuHawk/AVOut/VideoWriterChooserForm.cs b/BizHawk.Client.EmuHawk/AVOut/VideoWriterChooserForm.cs index 5d1a2443c7..594a3a3f6e 100644 --- a/BizHawk.Client.EmuHawk/AVOut/VideoWriterChooserForm.cs +++ b/BizHawk.Client.EmuHawk/AVOut/VideoWriterChooserForm.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Windows.Forms; using BizHawk.Client.Common; +using BizHawk.Emulation.Common; namespace BizHawk.Client.EmuHawk { @@ -11,16 +12,18 @@ namespace BizHawk.Client.EmuHawk /// public partial class VideoWriterChooserForm : Form { - private VideoWriterChooserForm() + private readonly int _captureWidth, _captureHeight; + + private VideoWriterChooserForm(MainForm mainForm, IEmulator emulator, Config config) { InitializeComponent(); - _captureWidth = Global.Emulator.CoreComm.NominalWidth; - _captureHeight = Global.Emulator.CoreComm.NominalHeight; + _captureWidth = emulator.CoreComm.NominalWidth; + _captureHeight = emulator.CoreComm.NominalHeight; - if (Global.Config.AVI_CaptureOSD) + if (config.AVI_CaptureOSD) { - using var bb = GlobalWin.MainForm.CaptureOSD(); + using var bb = mainForm.CaptureOSD(); _captureWidth = bb.Width; _captureHeight = bb.Height; } @@ -37,17 +40,24 @@ namespace BizHawk.Client.EmuHawk } } - private readonly int _captureWidth, _captureHeight; - /// /// chose an IVideoWriter /// /// list of IVideoWriters to choose from /// parent window + /// The current emulator /// user choice, or null on Cancel\Close\invalid - public static IVideoWriter DoVideoWriterChooserDlg(IEnumerable list, IWin32Window owner, out int resizeW, out int resizeH, out bool pad, ref bool audioSync) + public static IVideoWriter DoVideoWriterChooserDlg( + IEnumerable list, + MainForm owner, + IEmulator emulator, + Config config, + out int resizeW, + out int resizeH, + out bool pad, + ref bool audioSync) { - var dlg = new VideoWriterChooserForm + var dlg = new VideoWriterChooserForm(owner, emulator, config) { labelDescriptionBody = { Text = "" } }; @@ -58,7 +68,7 @@ namespace BizHawk.Client.EmuHawk foreach (var vw in list) { dlg.listBox1.Items.Add(vw); - if (vw.Attribs.ShortName == Global.Config.VideoWriter) + if (vw.Attribs.ShortName == config.VideoWriter) { idxSelect = idx; } @@ -83,7 +93,7 @@ namespace BizHawk.Client.EmuHawk { var vwi = (VideoWriterInfo)dlg.listBox1.SelectedItem; ret = vwi.Create(); - Global.Config.VideoWriter = vwi.Attribs.ShortName; + config.VideoWriter = vwi.Attribs.ShortName; } else { diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index a585f33e51..d2c2441165 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -3218,8 +3218,15 @@ namespace BizHawk.Client.EmuHawk } else { - aw = VideoWriterChooserForm.DoVideoWriterChoserDlg(VideoWriterInventory.GetAllWriters(), this, - out _avwriterResizew, out _avwriterResizeh, out _avwriterpad, ref _dumpaudiosync); + aw = VideoWriterChooserForm.DoVideoWriterChooserDlg( + VideoWriterInventory.GetAllWriters(), + this, + Emulator, + Global.Config, + out _avwriterResizew, + out _avwriterResizeh, + out _avwriterpad, + ref _dumpaudiosync); } if (aw == null)