summaryrefslogtreecommitdiff
path: root/grapher/Models/Serialized/SettingsManager.cs
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-07-05 23:33:41 -0400
committera1xd <[email protected]>2021-07-05 23:33:41 -0400
commit31efc792f5895d7ef3533390875de3c480add996 (patch)
tree8db5b16a88f50448cb525ba8ae56801985294f63 /grapher/Models/Serialized/SettingsManager.cs
parentMerge pull request #87 from matthewstrasiotto/streamer_mode (diff)
parentHandle power\exponent correctly in GUI (diff)
downloadrawaccel-31efc792f5895d7ef3533390875de3c480add996.tar.xz
rawaccel-31efc792f5895d7ef3533390875de3c480add996.zip
merge lut2
Diffstat (limited to 'grapher/Models/Serialized/SettingsManager.cs')
-rw-r--r--grapher/Models/Serialized/SettingsManager.cs139
1 files changed, 93 insertions, 46 deletions
diff --git a/grapher/Models/Serialized/SettingsManager.cs b/grapher/Models/Serialized/SettingsManager.cs
index c867c0a..6bcfab8 100644
--- a/grapher/Models/Serialized/SettingsManager.cs
+++ b/grapher/Models/Serialized/SettingsManager.cs
@@ -1,5 +1,6 @@
using Newtonsoft.Json;
using System;
+using System.IO;
using System.Windows.Forms;
using System.Threading;
using System.Text;
@@ -22,7 +23,6 @@ namespace grapher.Models.Serialized
ToolStripMenuItem streamingMode,
DeviceIDManager deviceIDManager)
{
- ActiveAccel = activeAccel;
DpiField = dpiField;
PollRateField = pollRateField;
AutoWriteMenuItem = autoWrite;
@@ -30,15 +30,35 @@ namespace grapher.Models.Serialized
ShowVelocityAndGainMoveMenuItem = showVelocityAndGain;
StreamingModeMenuItem = streamingMode;
DeviceIDManager = deviceIDManager;
+
+ SetActiveFields(activeAccel);
+
+ GuiSettings = GUISettings.MaybeLoad();
+
+ if (GuiSettings is null)
+ {
+ GuiSettings = MakeGUISettingsFromFields();
+ GuiSettings.Save();
+ }
+ else
+ {
+ UpdateFieldsFromGUISettings();
+ }
+
+ UserSettings = InitUserSettings();
}
#endregion Constructors
#region Properties
- public ManagedAccel ActiveAccel { get; }
+ public GUISettings GuiSettings { get; private set; }
+
+ public ManagedAccel ActiveAccel { get; private set; }
+
+ public ExtendedSettings ActiveSettings { get; private set; }
- public RawAccelSettings RawAccelSettings { get; private set; }
+ public DriverSettings UserSettings { get; private set; }
public Field DpiField { get; private set; }
@@ -55,47 +75,55 @@ namespace grapher.Models.Serialized
#endregion Properties
#region Methods
- public SettingsErrors TryUpdateActiveSettings(DriverSettings settings)
- {
- var errors = TryUpdateAccel(settings);
-
- if (errors.Empty())
- {
- RawAccelSettings.AccelerationSettings = settings;
- RawAccelSettings.GUISettings = MakeGUISettingsFromFields();
- RawAccelSettings.Save();
- }
- return errors;
+ public void DisableDriver()
+ {
+ var defaultSettings = new ExtendedSettings();
+ ActiveSettings = defaultSettings;
+ ActiveAccel.Settings = defaultSettings;
+ new Thread(() => ActiveAccel.Activate()).Start();
}
public void UpdateFieldsFromGUISettings()
{
- DpiField.SetToEntered(RawAccelSettings.GUISettings.DPI);
- PollRateField.SetToEntered(RawAccelSettings.GUISettings.PollRate);
- ShowLastMouseMoveMenuItem.Checked = RawAccelSettings.GUISettings.ShowLastMouseMove;
- ShowVelocityAndGainMoveMenuItem.Checked = RawAccelSettings.GUISettings.ShowVelocityAndGain;
- StreamingModeMenuItem.Checked = RawAccelSettings.GUISettings.StreamingMode;
- AutoWriteMenuItem.Checked = RawAccelSettings.GUISettings.AutoWriteToDriverOnStartup;
+ DpiField.SetToEntered(GuiSettings.DPI);
+ PollRateField.SetToEntered(GuiSettings.PollRate);
+ ShowLastMouseMoveMenuItem.Checked = GuiSettings.ShowLastMouseMove;
+ ShowVelocityAndGainMoveMenuItem.Checked = GuiSettings.ShowVelocityAndGain;
+ StreamingModeMenuItem.Checked = GUISettings.StreamingMode;
+ AutoWriteMenuItem.Checked = GuiSettings.AutoWriteToDriverOnStartup;
}
- public SettingsErrors TryUpdateAccel(DriverSettings settings)
+ public SettingsErrors TryActivate(DriverSettings settings)
{
- var errors = SendToDriverSafe(settings);
- if (errors.Empty()) ActiveAccel.UpdateFromSettings(settings);
- return errors;
- }
+ var errors = new SettingsErrors(settings);
- public static void SendToDriver(DriverSettings settings)
- {
- new Thread(() => DriverInterop.Write(settings)).Start();
+ if (errors.Empty())
+ {
+ GuiSettings = MakeGUISettingsFromFields();
+ GuiSettings.Save();
+
+ UserSettings = settings;
+ File.WriteAllText(Constants.DefaultSettingsFileName, RaConvert.Settings(settings));
+
+ ActiveSettings = new ExtendedSettings(settings);
+ ActiveAccel.Settings = ActiveSettings;
+
+ new Thread(() => ActiveAccel.Activate()).Start();
+ }
+
+ return errors;
}
- public static SettingsErrors SendToDriverSafe(DriverSettings settings)
+ public void SetHiddenOptions(DriverSettings settings)
{
- var errors = DriverInterop.GetSettingsErrors(settings);
- if (errors.Empty()) SendToDriver(settings);
- return errors;
+ settings.snap = UserSettings.snap;
+ settings.maximumSpeed = UserSettings.maximumSpeed;
+ settings.minimumSpeed = UserSettings.minimumSpeed;
+ settings.minimumTime = UserSettings.minimumTime;
+ settings.maximumTime = UserSettings.maximumTime;
+ settings.ignore = UserSettings.ignore;
+ settings.directionalMultipliers = UserSettings.directionalMultipliers;
}
public GUISettings MakeGUISettingsFromFields()
@@ -111,32 +139,51 @@ namespace grapher.Models.Serialized
};
}
- // Returns true when file settings are active
- public bool Startup()
+ public bool TableActive()
+ {
+ return ActiveSettings.tables.x != null || ActiveSettings.tables.y != null;
+ }
+
+ public void SetActiveFields(ManagedAccel activeAccel)
{
- if (RawAccelSettings.Exists())
+ ActiveAccel = activeAccel;
+ ActiveSettings = activeAccel.Settings;
+ }
+
+ private DriverSettings InitUserSettings()
+ {
+ var path = Constants.DefaultSettingsFileName;
+ if (File.Exists(path))
{
try
{
- RawAccelSettings = RawAccelSettings.Load(() => MakeGUISettingsFromFields());
- UpdateFieldsFromGUISettings();
- if (RawAccelSettings.GUISettings.AutoWriteToDriverOnStartup)
+ DriverSettings settings = RaConvert.Settings(File.ReadAllText(path));
+
+ if (!GuiSettings.AutoWriteToDriverOnStartup ||
+ TableActive() ||
+ TryActivate(settings).Empty())
{
- TryUpdateAccel(RawAccelSettings.AccelerationSettings);
+ return settings;
}
- return RawAccelSettings.GUISettings.AutoWriteToDriverOnStartup;
+
}
catch (JsonException e)
{
- Console.WriteLine($"bad settings: {e}");
+ System.Diagnostics.Debug.WriteLine($"bad settings: {e}");
}
}
- RawAccelSettings = new RawAccelSettings(
- DriverInterop.GetActiveSettings(),
- MakeGUISettingsFromFields());
- RawAccelSettings.Save();
- return true;
+ if (!TableActive())
+ {
+ File.WriteAllText(path, RaConvert.Settings(ActiveSettings.baseSettings));
+ return ActiveSettings.baseSettings;
+ }
+ else
+ {
+ var defaultSettings = new DriverSettings();
+ File.WriteAllText(path, RaConvert.Settings(defaultSettings));
+ return defaultSettings;
+ }
}
#endregion Methods