Пример #1
0
 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);
 }
Пример #2
0
        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;
        }