using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using BizHawk.Common; using BizHawk.Common.StringExtensions; using BizHawk.Common.ReflectionExtensions; using BizHawk.Emulation.Cores.Nintendo.N64; using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.WinFormExtensions; namespace BizHawk.Client.EmuHawk { public partial class NewN64PluginSettings : Form { N64Settings s; N64SyncSettings ss; public NewN64PluginSettings() { InitializeComponent(); } private void CancelBtn_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } private void SaveBtn_Click(object sender, EventArgs e) { var video_settings = VideoResolutionComboBox.SelectedItem.ToString(); var strArr = video_settings.Split('x'); s.VideoSizeX = int.Parse(strArr[0].Trim()); s.VideoSizeY = int.Parse(strArr[1].Trim()); ss.Core = CoreTypeDropdown.SelectedItem .ToString() .GetEnumFromDescription(); ss.Rsp = RspTypeDropdown.SelectedItem .ToString() .GetEnumFromDescription(); ss.VideoPlugin = PluginComboBox.SelectedItem .ToString() .GetEnumFromDescription(); PutSettings(s); PutSyncSettings(ss); DialogResult = DialogResult.OK; Close(); } private void NewN64PluginSettings_Load(object sender, EventArgs e) { s = GetSettings(); ss = GetSyncSettings(); CoreTypeDropdown.PopulateFromEnum(ss.Core); RspTypeDropdown.PopulateFromEnum(ss.Rsp); PluginComboBox.PopulateFromEnum(ss.VideoPlugin); var video_setting = s.VideoSizeX + " x " + s.VideoSizeY; var index = VideoResolutionComboBox.Items.IndexOf(video_setting); if (index >= 0) { VideoResolutionComboBox.SelectedIndex = index; } RicePropertyGrid.SelectedObject = ss.RicePlugin; Glidemk2PropertyGrid.SelectedObject = ss.Glide64mk2Plugin; GlidePropertyGrid.SelectedObject = ss.GlidePlugin; JaboPropertyGrid.SelectedObject = ss.JaboPlugin; } #region Setting Get/Set private static N64SyncSettings GetSyncSettings() { if (Global.Emulator is N64) { return ((N64)Global.Emulator).GetSyncSettings(); } return (N64SyncSettings)Global.Config.GetCoreSyncSettings() ?? new N64SyncSettings(); } private static N64Settings GetSettings() { if (Global.Emulator is N64) { return ((N64)Global.Emulator).GetSettings(); } return (N64Settings)Global.Config.GetCoreSettings() ?? new N64Settings(); } private static void PutSyncSettings(N64SyncSettings s) { if (Global.Emulator is N64) { GlobalWin.MainForm.PutCoreSyncSettings(s); } else { Global.Config.PutCoreSyncSettings(s); } } private static void PutSettings(N64Settings s) { if (Global.Emulator is N64) { GlobalWin.MainForm.PutCoreSettings(s); } else { Global.Config.PutCoreSettings(s); } } #endregion } }