protected string SettingsQuery(string name) { if (SettingsOverrides.TryGetValue(name, out var val)) { // use override } else { // try to get actual value from settings if (NonSyncSettingNames.Contains(name)) { _settings.MednafenValues.TryGetValue(name, out val); } else { _syncSettings.MednafenValues.TryGetValue(name, out val); } } // in either case, might need defaults if (val == null) { SettingsInfo.AllSettingsByKey.TryGetValue(name, out var info); val = info?.DefaultValue; } if (val == null) { throw new InvalidOperationException($"Core asked for setting {name} which was not found in the defaults"); } return(val); }
private void InitSyncSettingsInfo(List <NPortInfoT> allPorts) { var s = new NymaSettingsInfo(); foreach (var portInfo in allPorts) { s.Ports.Add(new NymaSettingsInfo.Port { Name = portInfo.FullName, DefaultSettingsValue = portInfo.DefaultDeviceShortName, AllowedDevices = portInfo.Devices.Select(dev => new NymaSettingsInfo.Device { Name = dev.FullName, Description = dev.Description, SettingValue = dev.ShortName }).ToList() }); } foreach (var setting in GetSettingsData().Concat(ExtraSettings)) { s.AllSettingsByKey.Add(setting.SettingsKey, setting); if (!SettingsOverrides.ContainsKey(setting.SettingsKey)) { if (NonSyncSettingNames.Contains(setting.SettingsKey)) { s.Settings.Add(setting); } else { s.SyncSettings.Add(setting); } } } SettingsInfo = s; }