// helper methods for the settings events private object GetCoreSettings <T>() where T : IEmulator { var e = new SettingsLoadArgs(typeof(T)); if (OnLoadSettings != null) { OnLoadSettings(this, e); } return(e.Settings); }
private object GetCoreSyncSettings(Type t, Type syncSettingsType) { var e = new SettingsLoadArgs(t, syncSettingsType); if (OnLoadSyncSettings == null) { throw new InvalidOperationException("Frontend failed to provide a sync settings getter"); } OnLoadSyncSettings(this, e); if (e.Settings != null && e.Settings.GetType() != syncSettingsType) { throw new InvalidOperationException($"Frontend did not provide the requested sync settings type: Expected {syncSettingsType}, got {e.Settings.GetType()}"); } return(e.Settings); }