/// <summary> /// Reads the settings from file and tries to apply them without raising an exception. /// </summary> public static bool TryApplySettings() { if (!File.Exists(GlobalSettings.SettingsFileName)) { LogWriter.Write("Settings file not found"); return(false); } try { LogWriter.Write("Trying to apply app [settings]"); var data = GlobalSettings.Deserialize(); if (data.MouseMoveDeadZone >= Interceptor.Interception.MouseMoveDeadZoneMin && data.MouseMoveDeadZone <= Interceptor.Interception.MouseMoveDeadZoneMax) { GlobalSettings.Instance.MouseMoveDeadZone = data.MouseMoveDeadZone; LogWriter.Write("[settings] 'Mouse move dead zone' set to: " + data.MouseMoveDeadZone); } else { LogWriter.Write( string.Format( "[settings] Ignored 'Mouse move dead zone', because the value '{0}' is out of range! You must use values in range {1}-{2}", data.MouseMoveDeadZone, Interceptor.Interception.MouseMoveDeadZoneMin, Interceptor.Interception.MouseMoveDeadZoneMax)); } GlobalSettings.Instance.DisplayEmulationInformation = data.DisplayEmulationInformation; LogWriter.Write("[settings] 'Display emulation information' set to: " + data.DisplayEmulationInformation); GlobalSettings.Instance.SuggestInputDevicesForNewSlots = data.SuggestInputDevicesForNewSlots; LogWriter.Write("[settings] 'Suggest input devices for new slots' set to: " + data.SuggestInputDevicesForNewSlots); if (data.StartingVirtualControllerUserIndex >= 1 && data.StartingVirtualControllerUserIndex <= 4) { GlobalSettings.Instance.StartingVirtualControllerUserIndex = data.StartingVirtualControllerUserIndex; LogWriter.Write("[settings] 'Starting virtual controller user index' set to: " + data.StartingVirtualControllerUserIndex); } else { LogWriter.Write( string.Format( "[settings] Ignored 'Starting virtual controller user index', because the value '{0}' is out of range! You must use values in range 1-4", data.StartingVirtualControllerUserIndex)); } return(true); } catch (Exception e) { LogWriter.Write(string.Format("Failed to apply settings from {0}:", GlobalSettings.SettingsFileName)); LogWriter.Write(e.ToString()); } return(false); }