summaryrefslogtreecommitdiff
path: root/grapher/Models/Serialized/RawAccelSettings.cs
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-08-22 02:46:45 -0700
committerJacob Palecki <[email protected]>2020-08-22 02:46:45 -0700
commitb874058d82a60a39163e91a26f370ff308b8af32 (patch)
tree7e14357f1e1e2b2b9726c72ae7b679fd5b475af2 /grapher/Models/Serialized/RawAccelSettings.cs
parentSerialization mostly working (diff)
downloadrawaccel-b874058d82a60a39163e91a26f370ff308b8af32.tar.xz
rawaccel-b874058d82a60a39163e91a26f370ff308b8af32.zip
Saving and loading fully works
Diffstat (limited to 'grapher/Models/Serialized/RawAccelSettings.cs')
-rw-r--r--grapher/Models/Serialized/RawAccelSettings.cs31
1 files changed, 17 insertions, 14 deletions
diff --git a/grapher/Models/Serialized/RawAccelSettings.cs b/grapher/Models/Serialized/RawAccelSettings.cs
index d8896b6..21a7f0c 100644
--- a/grapher/Models/Serialized/RawAccelSettings.cs
+++ b/grapher/Models/Serialized/RawAccelSettings.cs
@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
@@ -12,20 +13,29 @@ namespace grapher.Models.Serialized
[Serializable]
public class RawAccelSettings
{
- public const string DefaultSettingsFile = @".\settings.json";
+ public const string DefaultSettingsFileName = @"settings.json";
+ public static readonly string ExecutingDirectory = AppDomain.CurrentDomain.BaseDirectory;
+ public static readonly string DefaultSettingsFile = Path.Combine(ExecutingDirectory, DefaultSettingsFileName);
+ public static readonly JsonSerializerSettings SerializerSettings = new JsonSerializerSettings
+ {
+ MissingMemberHandling = MissingMemberHandling.Error,
+ };
+
+ public RawAccelSettings() { }
public RawAccelSettings(
ManagedAccel managedAccel,
GUISettings guiSettings)
{
- ManagedAccel = managedAccel;
+ AccelerationSettings = new modifier_args(managedAccel);
GUISettings = guiSettings;
}
- public ManagedAccel ManagedAccel { get; set; }
public GUISettings GUISettings { get; set; }
+ public modifier_args AccelerationSettings { get; set; }
+
public static RawAccelSettings Load()
{
return Load(DefaultSettingsFile);
@@ -38,21 +48,14 @@ namespace grapher.Models.Serialized
throw new Exception($"Settings file does not exist at {file}");
}
- object deserializedObject;
+ RawAccelSettings deserializedSettings;
try
{
- deserializedObject = JsonConvert.DeserializeObject(File.ReadAllText(file));
+ deserializedSettings = JsonConvert.DeserializeObject<RawAccelSettings>(File.ReadAllText(file), SerializerSettings);
}
- catch
- {
- throw new Exception($"Settings file at {file} does not contain valid JSON.");
- }
-
- RawAccelSettings deserializedSettings = (RawAccelSettings)deserializedObject;
-
- if (deserializedSettings == null)
+ catch(Exception e)
{
- throw new Exception($"Settings file at {file} does not contain valid Raw Accel Settings.");
+ throw new Exception($"Settings file at {file} does not contain valid Raw Accel Settings.", e);
}
return deserializedSettings;