diff options
Diffstat (limited to 'grapher/Models/Serialized/SettingsManager.cs')
| -rw-r--r-- | grapher/Models/Serialized/SettingsManager.cs | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/grapher/Models/Serialized/SettingsManager.cs b/grapher/Models/Serialized/SettingsManager.cs index cac2bd0..26160f5 100644 --- a/grapher/Models/Serialized/SettingsManager.cs +++ b/grapher/Models/Serialized/SettingsManager.cs @@ -1,6 +1,7 @@ using Newtonsoft.Json; using System; using System.Windows.Forms; +using System.Threading; namespace grapher.Models.Serialized { @@ -46,29 +47,28 @@ namespace grapher.Models.Serialized #region Methods - public void UpdateActiveSettings(DriverSettings settings, Action afterAccelSettingsUpdate = null) + public void UpdateActiveSettings(DriverSettings settings) { - settings.SendToDriverAndUpdate(ActiveAccel, () => - { - RawAccelSettings.AccelerationSettings = settings; - RawAccelSettings.GUISettings = new GUISettings - { - AutoWriteToDriverOnStartup = AutoWriteMenuItem.Checked, - DPI = (int)DpiField.Data, - PollRate = (int)PollRateField.Data, - ShowLastMouseMove = ShowLastMouseMoveMenuItem.Checked, - ShowVelocityAndGain = ShowVelocityAndGainMoveMenuItem.Checked, - }; + ActiveAccel.UpdateFromSettings(settings); + SendToDriver(settings); - RawAccelSettings.Save(); + RawAccelSettings.AccelerationSettings = settings; + RawAccelSettings.GUISettings = new GUISettings + { + AutoWriteToDriverOnStartup = AutoWriteMenuItem.Checked, + DPI = (int)DpiField.Data, + PollRate = (int)PollRateField.Data, + ShowLastMouseMove = ShowLastMouseMoveMenuItem.Checked, + ShowVelocityAndGain = ShowVelocityAndGainMoveMenuItem.Checked, + }; - afterAccelSettingsUpdate?.Invoke(); - }); + RawAccelSettings.Save(); } public void UpdateActiveAccelFromFileSettings(DriverSettings settings) - { - settings.SendToDriverAndUpdate(ActiveAccel); + { + ActiveAccel.UpdateFromSettings(settings); + SendToDriver(settings); DpiField.SetToEntered(RawAccelSettings.GUISettings.DPI); PollRateField.SetToEntered(RawAccelSettings.GUISettings.PollRate); @@ -77,6 +77,11 @@ namespace grapher.Models.Serialized ShowVelocityAndGainMoveMenuItem.Checked = RawAccelSettings.GUISettings.ShowVelocityAndGain; } + public static void SendToDriver(DriverSettings settings) + { + new Thread(() => DriverInterop.SetActiveSettings(settings)).Start(); + } + public void Startup() { if (RawAccelSettings.Exists()) @@ -97,7 +102,7 @@ namespace grapher.Models.Serialized } RawAccelSettings = new RawAccelSettings( - DriverSettings.GetActive(), + DriverInterop.GetActiveSettings(), new GUISettings { AutoWriteToDriverOnStartup = AutoWriteMenuItem.Checked, |