BizHawk/BizHawk.Client.EmuHawk/config/GB/DGBPrefs.cs

63 lines
1.7 KiB
C#
Raw Normal View History

2017-05-31 13:52:55 +00:00
using System.Windows.Forms;
using BizHawk.Emulation.Cores.Nintendo.Gameboy;
using BizHawk.Client.Common;
2017-05-31 13:52:55 +00:00
namespace BizHawk.Client.EmuHawk
{
public partial class DGBPrefs : Form
{
2017-05-31 13:52:55 +00:00
private DGBPrefs()
{
InitializeComponent();
}
2017-05-31 13:52:55 +00:00
private void PutSettings(GambatteLink.GambatteLinkSettings s, GambatteLink.GambatteLinkSyncSettings ss)
{
gbPrefControl1.PutSettings(s.L, ss.L);
gbPrefControl2.PutSettings(s.R, ss.R);
}
2017-05-31 13:52:55 +00:00
private void GetSettings(out GambatteLink.GambatteLinkSettings s, out GambatteLink.GambatteLinkSyncSettings ss)
{
Gameboy.GambatteSettings sl;
Gameboy.GambatteSyncSettings ssl;
Gameboy.GambatteSettings sr;
Gameboy.GambatteSyncSettings ssr;
gbPrefControl1.GetSettings(out sl, out ssl);
gbPrefControl2.GetSettings(out sr, out ssr);
2014-07-14 16:56:23 +00:00
s = new GambatteLink.GambatteLinkSettings(sl, sr);
ss = new GambatteLink.GambatteLinkSyncSettings(ssl, ssr);
}
2017-05-31 13:52:55 +00:00
private bool SyncSettingsChanged => gbPrefControl1.SyncSettingsChanged || gbPrefControl2.SyncSettingsChanged;
public static void DoDGBPrefsDialog(IWin32Window owner)
{
var gambatte = (GambatteLink)Global.Emulator;
var s = gambatte.GetSettings();
var ss = gambatte.GetSyncSettings();
using (var dlg = new DGBPrefs())
{
dlg.PutSettings(s, ss);
var emu = (GambatteLink)Global.Emulator;
dlg.gbPrefControl1.ColorGameBoy = emu.IsCGBMode(false);
dlg.gbPrefControl2.ColorGameBoy = emu.IsCGBMode(true);
if (dlg.ShowDialog(owner) == DialogResult.OK)
{
dlg.GetSettings(out s, out ss);
gambatte.PutSettings(s);
if (dlg.SyncSettingsChanged)
2017-05-31 13:52:55 +00:00
{
GlobalWin.MainForm.PutCoreSyncSettings(ss);
2017-05-31 13:52:55 +00:00
}
}
}
}
}
}