private void SetSelectedSoundDeviceFromSettings(LaunchSettings launchSettings) { if (SoundDeviceGuids == null || SoundDeviceGuids.Count == 0) { return; } SelectedSoundDevice = SoundDeviceGuids.Where(s => s.Value == launchSettings.SelectedSoundDevice) .Select(s => s.Key) .FirstOrDefault(); // switch back to 'Auto' if device not found if (SelectedSoundDevice == null) { SelectedSoundDevice = SoundDeviceGuids.Where(s => s.Value == Guid.Empty) .Select(s => s.Key) .FirstOrDefault(); } }
private void LoadSettings(LaunchSettings launchSettings) { HasLoaded = false; if (Sys.Settings.GameLaunchSettings == null) { Logger.Warn("No game launcher settings found, initializing to defaults."); Sys.Settings.GameLaunchSettings = LaunchSettings.DefaultSettings(); launchSettings = Sys.Settings.GameLaunchSettings; } ProgramList = new ObservableCollection <ProgramToRunViewModel>(Sys.Settings.ProgramsToLaunchPrior.Select(s => new ProgramToRunViewModel(s.PathToProgram, s.ProgramArgs))); AutoUpdatePathChecked = launchSettings.AutoUpdateDiscPath; Code5FixChecked = launchSettings.Code5Fix; HighDpiFixChecked = launchSettings.HighDpiFix; IsShowLauncherChecked = launchSettings.ShowLauncherWindow; SelectedGameConfigOption = InGameConfigurationMap.Where(s => s.Value == launchSettings.InGameConfigOption) .Select(c => c.Key) .FirstOrDefault(); if (string.IsNullOrWhiteSpace(SelectedGameConfigOption)) { // default to first option if their previous option is missing SelectedGameConfigOption = InGameConfigOptions[0]; } // disable options to auto-mount if user OS does not support it IsAutoMountSupported = GameLauncher.OSHasAutoMountSupport(); if (IsAutoMountSupported) { AutoMountChecked = launchSettings.AutoMountGameDisc; AutoUnmountChecked = launchSettings.AutoUnmountGameDisc; } else { AutoMountChecked = false; AutoUnmountChecked = false; } // Have option look unchecked and disabled when user does not have The Reunion installed IsReunionInstalled = GameLauncher.IsReunionModInstalled(); if (IsReunionInstalled) { DisableReunionChecked = launchSettings.DisableReunionOnLaunch; } else { DisableReunionChecked = false; IsReunionInstalled = false; } SelectedSoundDevice = SoundDeviceGuids.Where(s => s.Value == launchSettings.SelectedSoundDevice) .Select(s => s.Key) .FirstOrDefault(); // switch back to 'Auto' if device not found if (SelectedSoundDevice == null) { SelectedSoundDevice = SoundDeviceGuids.Where(s => s.Value == Guid.Empty) .Select(s => s.Key) .FirstOrDefault(); } SelectedMidiDevice = MidiDeviceMap.Where(s => s.Value == launchSettings.SelectedMidiDevice) .Select(s => s.Key) .FirstOrDefault(); MusicVolumeValue = launchSettings.MusicVolume; SfxVolumeValue = launchSettings.SfxVolume; IsReverseSpeakersChecked = launchSettings.ReverseSpeakers; IsLogVolumeChecked = launchSettings.LogarithmicVolumeControl; SelectedRenderer = RendererMap.Where(s => s.Value == launchSettings.SelectedRenderer) .Select(s => s.Key) .FirstOrDefault(); IsRivaOptionChecked = launchSettings.UseRiva128GraphicsOption; IsTntOptionChecked = launchSettings.UseTntGraphicsOption; IsQuarterScreenChecked = launchSettings.QuarterScreenMode; IsFullScreenChecked = launchSettings.FullScreenMode; HasLoaded = true; }