public static void DoDialog(MainForm owner, string title) { if (GlobalWin.Emulator is Emulation.Cores.Waterbox.NymaCore core) { var desc = new Emulation.Cores.Waterbox.NymaTypeDescriptorProvider(core.SettingsInfo); try { // OH GOD THE HACKS WHY TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSettings)); TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSyncSettings)); DoDialog(owner, "Nyma Core", !core.HasSettings, !core.HasSyncSettings); } finally { TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSettings)); TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSyncSettings)); } } else { using var dlg = new GenericCoreConfig(owner) { Text = title }; dlg.ShowDialog(owner); } }
public static void DoDialog(IMainFormForConfig owner, string title) { if (owner.Emulator is Emulation.Cores.Waterbox.NymaCore core) { var desc = new Emulation.Cores.Waterbox.NymaTypeDescriptorProvider(core.SettingsInfo); try { // OH GOD THE HACKS WHY TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSettings)); TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSyncSettings)); DoDialog(owner, "Nyma Core", !core.SettingsInfo.HasSettings, !core.SettingsInfo.HasSyncSettings); } finally { TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSettings)); TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSyncSettings)); } } else if (owner.Emulator is Emulation.Cores.Arcades.MAME.MAME mame) { var desc = new Emulation.Cores.Arcades.MAME.MAMETypeDescriptorProvider(mame.CurrentDriverSettings); try { TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Arcades.MAME.MAME.MAMESyncSettings)); DoDialog(owner, "MAME", true, false); } finally { TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Arcades.MAME.MAME.MAMESyncSettings)); } } else { using var dlg = new GenericCoreConfig(owner) { Text = title }; owner.ShowDialogAsChild(dlg); } }
public static void DoDialog(IMainFormForConfig owner, string title, bool isMovieActive) { if (owner.Emulator is Emulation.Cores.Waterbox.NymaCore core) { var desc = new Emulation.Cores.Waterbox.NymaTypeDescriptorProvider(core.SettingsInfo); try { // OH GOD THE HACKS WHY TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSettings)); TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSyncSettings)); DoDialog(owner, "Nyma Core", isMovieActive, !core.SettingsInfo.HasSettings, !core.SettingsInfo.HasSyncSettings); } finally { TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSettings)); TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Waterbox.NymaCore.NymaSyncSettings)); } } else if (owner.Emulator is Emulation.Cores.Arcades.MAME.MAME mame) { var desc = new Emulation.Cores.Arcades.MAME.MAMETypeDescriptorProvider(mame.CurrentDriverSettings); try { TypeDescriptor.AddProvider(desc, typeof(Emulation.Cores.Arcades.MAME.MAME.MAMESyncSettings)); DoDialog(owner, "MAME", isMovieActive, true, false); } finally { TypeDescriptor.RemoveProvider(desc, typeof(Emulation.Cores.Arcades.MAME.MAME.MAMESyncSettings)); } } else { DoDialog(owner, title, isMovieActive, false, false); } }