summaryrefslogtreecommitdiff
path: root/grapher/Models/AccelGUI.cs
diff options
context:
space:
mode:
authora1xd <[email protected]>2021-04-06 01:21:42 -0400
committera1xd <[email protected]>2021-04-06 01:21:42 -0400
commit7c1f14845bc948e9ea25908e96099203d9433a69 (patch)
treeeadfae6ec0a775a35c29807bde3c20be8160e034 /grapher/Models/AccelGUI.cs
parentLUT text layout (diff)
downloadrawaccel-7c1f14845bc948e9ea25908e96099203d9433a69.tar.xz
rawaccel-7c1f14845bc948e9ea25908e96099203d9433a69.zip
update wrapper + writer to handle lut
grapher is building but applying options still broken for the most part
Diffstat (limited to 'grapher/Models/AccelGUI.cs')
-rw-r--r--grapher/Models/AccelGUI.cs124
1 files changed, 44 insertions, 80 deletions
diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs
index 5a04030..9ed2cb9 100644
--- a/grapher/Models/AccelGUI.cs
+++ b/grapher/Models/AccelGUI.cs
@@ -32,7 +32,7 @@ namespace grapher
AccelCharts = accelCharts;
ApplyOptions = applyOptions;
WriteButton = writeButton;
- ToggleButton = (CheckBox)toggleButton;
+ DisableButton = (CheckBox)toggleButton;
ScaleMenuItem = scaleMenuItem;
Settings = settings;
DefaultButtonFont = WriteButton.Font;
@@ -42,7 +42,7 @@ namespace grapher
ScaleMenuItem.Click += new System.EventHandler(OnScaleMenuItemClick);
WriteButton.Click += new System.EventHandler(OnWriteButtonClick);
- ToggleButton.Click += new System.EventHandler(OnToggleButtonClick);
+ DisableButton.Click += new System.EventHandler(DisableDriverEventHandler);
AccelForm.FormClosing += new FormClosingEventHandler(SaveGUISettingsOnClose);
ButtonTimerInterval = Convert.ToInt32(DriverSettings.WriteDelayMs);
@@ -51,25 +51,8 @@ namespace grapher
ChartRefresh = SetupChartTimer();
- bool settingsActive = Settings.Startup();
- SettingsNotDefault = !Settings.RawAccelSettings.IsDefaultEquivalent();
-
- if (settingsActive)
- {
- LastToggleChecked = SettingsNotDefault;
- ToggleButton.Enabled = LastToggleChecked;
- RefreshOnRead(Settings.RawAccelSettings.AccelerationSettings);
- }
- else
- {
- DriverSettings active = ManagedAccel.GetActive().Settings;
- bool activeNotDefault = !RawAccelSettings.IsDefaultEquivalent(active);
-
- LastToggleChecked = activeNotDefault;
- ToggleButton.Enabled = SettingsNotDefault || activeNotDefault;
- RefreshOnRead(active);
- }
-
+ RefreshUser();
+ RefreshActive();
SetupButtons();
// TODO: The below removes an overlapping form from the anisotropy panel.
@@ -94,7 +77,7 @@ namespace grapher
public Button WriteButton { get; }
- public CheckBox ToggleButton { get; }
+ public CheckBox DisableButton { get; }
public Timer ButtonTimer { get; }
@@ -104,8 +87,6 @@ namespace grapher
public DeviceIDManager DeviceIDManager { get; }
- public Action UpdateInputManagers { get; private set; }
-
private Timer ChartRefresh { get; }
private Font SmallButtonFont { get; }
@@ -125,46 +106,37 @@ namespace grapher
private void SaveGUISettingsOnClose(Object sender, FormClosingEventArgs e)
{
var guiSettings = Settings.MakeGUISettingsFromFields();
- if (!Settings.RawAccelSettings.GUISettings.Equals(guiSettings))
+ if (!Settings.GuiSettings.Equals(guiSettings))
{
- Settings.RawAccelSettings.GUISettings = guiSettings;
- Settings.RawAccelSettings.Save();
+ guiSettings.Save();
}
}
public void UpdateActiveSettingsFromFields()
{
- var driverSettings = Settings.RawAccelSettings.AccelerationSettings;
-
- var newArgs = ApplyOptions.GetArgs();
-
var settings = new DriverSettings
{
rotation = ApplyOptions.Rotation.Field.Data,
- snap = driverSettings.snap,
sensitivity = new Vec2<double>
{
x = ApplyOptions.Sensitivity.Fields.X,
y = ApplyOptions.Sensitivity.Fields.Y
},
combineMagnitudes = ApplyOptions.IsWhole,
- args = newArgs,
- minimumTime = driverSettings.minimumTime,
- directionalMultipliers = driverSettings.directionalMultipliers,
+ args = ApplyOptions.GetArgs(),
domainArgs = ApplyOptions.Directionality.GetDomainArgs(),
rangeXY = ApplyOptions.Directionality.GetRangeXY(),
deviceID = DeviceIDManager.ID,
- maximumSpeed = driverSettings.maximumSpeed,
- minimumSpeed = driverSettings.minimumSpeed
};
+ Settings.SetHiddenOptions(settings);
+
ButtonDelay(WriteButton);
- SettingsErrors errors = Settings.TryUpdateActiveSettings(settings);
+
+ SettingsErrors errors = Settings.TryActivate(settings);
if (errors.Empty())
{
- SettingsNotDefault = !Settings.RawAccelSettings.IsDefaultEquivalent();
- LastToggleChecked = SettingsNotDefault;
- RefreshOnRead(Settings.RawAccelSettings.AccelerationSettings);
+ RefreshActive();
}
else
{
@@ -172,25 +144,28 @@ namespace grapher
}
}
- public void RefreshOnRead(DriverSettings args)
+ public void UpdateInputManagers()
{
- UpdateShownActiveValues(args);
- UpdateGraph(args);
-
- UpdateInputManagers = () =>
- {
- MouseWatcher.UpdateHandles(args.deviceID);
- DeviceIDManager.Update(args.deviceID);
- };
+ MouseWatcher.UpdateHandles(Settings.ActiveSettings.baseSettings.deviceID);
+ DeviceIDManager.Update(Settings.ActiveSettings.baseSettings.deviceID);
+ }
+ public void RefreshActive()
+ {
+ UpdateGraph();
UpdateInputManagers();
}
- public void UpdateGraph(DriverSettings args)
+ public void RefreshUser()
+ {
+ UpdateShownActiveValues(Settings.UserSettings);
+ }
+
+ public void UpdateGraph()
{
AccelCharts.Calculate(
Settings.ActiveAccel,
- args);
+ Settings.ActiveSettings.baseSettings);
AccelCharts.Bind();
}
@@ -214,32 +189,31 @@ namespace grapher
{
WriteButton.Top = Constants.SensitivityChartAloneHeight - Constants.ButtonVerticalOffset;
- ToggleButton.Appearance = Appearance.Button;
- ToggleButton.FlatStyle = FlatStyle.System;
- ToggleButton.TextAlign = ContentAlignment.MiddleCenter;
- ToggleButton.Size = WriteButton.Size;
- ToggleButton.Top = WriteButton.Top;
+ DisableButton.Appearance = Appearance.Button;
+ DisableButton.FlatStyle = FlatStyle.System;
+ DisableButton.TextAlign = ContentAlignment.MiddleCenter;
+ DisableButton.Size = WriteButton.Size;
+ DisableButton.Top = WriteButton.Top;
SetButtonDefaults();
}
private void SetButtonDefaults()
{
- ToggleButton.Checked = LastToggleChecked;
-
- ToggleButton.Font = DefaultButtonFont;
- ToggleButton.Text = ToggleButton.Checked ? "Disable" : "Enable";
- ToggleButton.Update();
+ DisableButton.Font = DefaultButtonFont;
+ DisableButton.Text = "Disable";
+ DisableButton.Enabled = true;
+ DisableButton.Update();
WriteButton.Font = DefaultButtonFont;
WriteButton.Text = Constants.WriteButtonDefaultText;
- WriteButton.Enabled = ToggleButton.Checked || !ToggleButton.Enabled;
+ WriteButton.Enabled = true;
WriteButton.Update();
}
private void OnScaleMenuItemClick(object sender, EventArgs e)
{
- UpdateGraph(Settings.RawAccelSettings.AccelerationSettings);
+ UpdateGraph();
}
private void OnWriteButtonClick(object sender, EventArgs e)
@@ -247,24 +221,16 @@ namespace grapher
UpdateActiveSettingsFromFields();
}
- private void OnToggleButtonClick(object sender, EventArgs e)
+ private void DisableDriverEventHandler(object sender, EventArgs e)
{
- var accel = ToggleButton.Checked ?
- new ManagedAccel(Settings.RawAccelSettings.AccelerationSettings) :
- AccelTypeOptions.DefaultSettings;
-
- LastToggleChecked = ToggleButton.Checked;
- ButtonDelay(ToggleButton);
-
- SettingsManager.SendToDriver(accel);
- Settings.ActiveAccel = accel;
- RefreshOnRead(accel.Settings);
+ ButtonDelay(DisableButton);
+ Settings.DisableDriver();
+ RefreshActive();
}
private void OnButtonTimerTick(object sender, EventArgs e)
{
ButtonTimer.Stop();
- ToggleButton.Enabled = SettingsNotDefault;
SetButtonDefaults();
}
@@ -276,15 +242,13 @@ namespace grapher
private void ButtonDelay(ButtonBase btn)
{
- ToggleButton.Checked = false;
-
- ToggleButton.Enabled = false;
+ DisableButton.Enabled = false;
WriteButton.Enabled = false;
btn.Font = SmallButtonFont;
btn.Text = $"{Constants.ButtonDelayText} : {ButtonTimerInterval} ms";
- ToggleButton.Update();
+ DisableButton.Update();
WriteButton.Update();
StartButtonTimer();