63 lines
1.7 KiB
C#
63 lines
1.7 KiB
C#
using System.Windows.Forms;
|
|
|
|
using BizHawk.Emulation.Cores.Nintendo.Gameboy;
|
|
using BizHawk.Client.Common;
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
|
{
|
|
public partial class DGBPrefs : Form
|
|
{
|
|
private DGBPrefs()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void PutSettings(GambatteLink.GambatteLinkSettings s, GambatteLink.GambatteLinkSyncSettings ss)
|
|
{
|
|
gbPrefControl1.PutSettings(s.L, ss.L);
|
|
gbPrefControl2.PutSettings(s.R, ss.R);
|
|
}
|
|
|
|
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);
|
|
|
|
s = new GambatteLink.GambatteLinkSettings(sl, sr);
|
|
ss = new GambatteLink.GambatteLinkSyncSettings(ssl, ssr);
|
|
}
|
|
|
|
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)
|
|
{
|
|
GlobalWin.MainForm.PutCoreSyncSettings(ss);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|