summaryrefslogtreecommitdiff
path: root/grapher/Models/AccelGUI.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/AccelGUI.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/AccelGUI.cs')
-rw-r--r--grapher/Models/AccelGUI.cs147
1 files changed, 55 insertions, 92 deletions
diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs
index 3a30a9b..9ca7fed 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,34 +42,17 @@ 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(DriverInterop.WriteDelayMs);
+ ButtonTimerInterval = Convert.ToInt32(DriverSettings.WriteDelayMs);
ButtonTimer = new Timer();
ButtonTimer.Tick += new System.EventHandler(OnButtonTimerTick);
ChartRefresh = SetupChartTimer();
- bool settingsActive = Settings.Startup();
- SettingsNotDefault = !Settings.RawAccelSettings.IsDefaultEquivalent();
-
- if (settingsActive)
- {
- LastToggleChecked = SettingsNotDefault;
- ToggleButton.Enabled = LastToggleChecked;
- RefreshOnRead(Settings.RawAccelSettings.AccelerationSettings);
- }
- else
- {
- DriverSettings active = DriverInterop.GetActiveSettings();
- 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,47 +106,36 @@ 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 settings = new DriverSettings();
- var newArgs = ApplyOptions.GetArgs();
- newArgs.x.speedCap = driverSettings.args.x.speedCap;
- newArgs.y.speedCap = driverSettings.args.y.speedCap;
-
- var settings = new DriverSettings
+ settings.rotation = ApplyOptions.Rotation.Field.Data;
+ settings.sensitivity = new Vec2<double>
{
- 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,
- modes = ApplyOptions.GetModes(),
- args = newArgs,
- minimumTime = driverSettings.minimumTime,
- directionalMultipliers = driverSettings.directionalMultipliers,
- domainArgs = ApplyOptions.Directionality.GetDomainArgs(),
- rangeXY = ApplyOptions.Directionality.GetRangeXY(),
- deviceID = DeviceIDManager.ID,
+ x = ApplyOptions.Sensitivity.Fields.X,
+ y = ApplyOptions.Sensitivity.Fields.Y
};
+ settings.combineMagnitudes = ApplyOptions.IsWhole;
+ ApplyOptions.SetArgs(ref settings.args);
+ settings.domainArgs = ApplyOptions.Directionality.GetDomainArgs();
+ settings.rangeXY = ApplyOptions.Directionality.GetRangeXY();
+ settings.deviceID = DeviceIDManager.ID;
+
+ 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
{
@@ -173,25 +143,29 @@ 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()
+ {
+ UpdateShownActiveValues(Settings.UserSettings);
+ 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();
}
@@ -215,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)
@@ -248,24 +221,16 @@ namespace grapher
UpdateActiveSettingsFromFields();
}
- private void OnToggleButtonClick(object sender, EventArgs e)
+ private void DisableDriverEventHandler(object sender, EventArgs e)
{
- var settings = ToggleButton.Checked ?
- Settings.RawAccelSettings.AccelerationSettings :
- DriverInterop.DefaultSettings;
-
- LastToggleChecked = ToggleButton.Checked;
- ButtonDelay(ToggleButton);
-
- SettingsManager.SendToDriver(settings);
- Settings.ActiveAccel.UpdateFromSettings(settings);
- RefreshOnRead(settings);
+ ButtonDelay(DisableButton);
+ Settings.DisableDriver();
+ RefreshActive();
}
private void OnButtonTimerTick(object sender, EventArgs e)
{
ButtonTimer.Stop();
- ToggleButton.Enabled = SettingsNotDefault;
SetButtonDefaults();
}
@@ -277,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();