summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-08-11 23:06:39 -0700
committerJacob Palecki <[email protected]>2020-08-11 23:06:39 -0700
commit65a74b97c0c9ac8ca10312c0749e33df9e64b3d9 (patch)
treed15dbadb2497ae5df3d734b534d73ea613a0e943
parentMerge branch 'master' into GainCap (diff)
downloadrawaccel-65a74b97c0c9ac8ca10312c0749e33df9e64b3d9.tar.xz
rawaccel-65a74b97c0c9ac8ca10312c0749e33df9e64b3d9.zip
Disallow differing x and y weights with gain cap
-rw-r--r--common/accel-base.hpp2
-rw-r--r--common/rawaccel.hpp3
-rw-r--r--grapher/CapOptions.cs29
-rw-r--r--grapher/FieldXY.cs54
-rw-r--r--grapher/Form1.cs5
-rw-r--r--grapher/OptionXY.cs6
-rw-r--r--wrapper/wrapper.cpp2
7 files changed, 73 insertions, 28 deletions
diff --git a/common/accel-base.hpp b/common/accel-base.hpp
index 91510a4..60b7362 100644
--- a/common/accel-base.hpp
+++ b/common/accel-base.hpp
@@ -24,6 +24,7 @@ namespace rawaccel {
double exponent = 2;
double midpoint = 0;
double power_scale = 1;
+ double gain_cap = 0;
vec2d weight = { 1, 1 };
};
@@ -68,6 +69,7 @@ namespace rawaccel {
/// <param name="args">Arguments to verified.</param>
void verify(const accel_args& args) const {
if (args.accel < 0) bad_arg("accel can not be negative, use a negative weight to compensate");
+ if (args.gain_cap > 0 && weight.x != weight.y) bad_arg("weight x and y values must be equal with a gain cap");
}
accel_base() = default;
diff --git a/common/rawaccel.hpp b/common/rawaccel.hpp
index fc06731..8dc4825 100644
--- a/common/rawaccel.hpp
+++ b/common/rawaccel.hpp
@@ -160,7 +160,6 @@ namespace rawaccel {
int accel_mode = accel_impl_t::id<accel_noaccel>;
milliseconds time_min = 0.4;
vec2d cap = { 0, 0 };
- double gain_cap = 0;
};
/// <summary> Struct for holding acceleration application details. </summary>
@@ -196,7 +195,7 @@ namespace rawaccel {
speed_offset = args.acc_args.offset;
clamp.x = accel_scale_clamp(args.cap.x);
clamp.y = accel_scale_clamp(args.cap.y);
- gain_cap = velocity_gain_cap(args.gain_cap, speed_offset, accel);
+ gain_cap = velocity_gain_cap(args.acc_args.gain_cap, speed_offset, accel);
}
/// <summary>
diff --git a/grapher/CapOptions.cs b/grapher/CapOptions.cs
index 310a214..2ee7f6b 100644
--- a/grapher/CapOptions.cs
+++ b/grapher/CapOptions.cs
@@ -12,12 +12,14 @@ namespace grapher
public CapOptions(
ToolStripMenuItem sensitivityCapCheck,
ToolStripMenuItem velocityGainCapCheck,
- OptionXY capOptionFields)
+ OptionXY capOption,
+ OptionXY weightOption)
{
SensitivityCapCheck = sensitivityCapCheck;
VelocityGainCapCheck = velocityGainCapCheck;
- CapOptionsFields = capOptionFields;
+ CapOption = capOption;
+ WeightOption = weightOption;
SensitivityCapCheck.Click += new System.EventHandler(OnSensitivityCapCheckClick);
VelocityGainCapCheck.Click += new System.EventHandler(OnVelocityGainCapCheckClick);
@@ -32,14 +34,16 @@ namespace grapher
ToolStripMenuItem VelocityGainCapCheck { get; }
- OptionXY CapOptionsFields { get; }
+ OptionXY CapOption { get; }
+
+ OptionXY WeightOption { get; }
public double SensitivityCapX {
get
{
if (IsSensitivityGain)
{
- return CapOptionsFields.Fields.X;
+ return CapOption.Fields.X;
}
else
{
@@ -53,7 +57,7 @@ namespace grapher
{
if (IsSensitivityGain)
{
- return CapOptionsFields.Fields.Y;
+ return CapOption.Fields.Y;
}
else
{
@@ -71,7 +75,7 @@ namespace grapher
}
else
{
- return CapOptionsFields.Fields.X;
+ return CapOption.Fields.X;
}
}
}
@@ -115,16 +119,19 @@ namespace grapher
void EnableSensitivityCap()
{
IsSensitivityGain = true;
- CapOptionsFields.Fields.LockCheckBox.Enabled = true;
- CapOptionsFields.SetName("Sensitivity Cap");
+ CapOption.Fields.LockCheckBox.Enabled = true;
+ WeightOption.Fields.LockCheckBox.Enabled = true;
+ CapOption.SetName("Sensitivity Cap");
}
void EnableVelocityGainCap()
{
IsSensitivityGain = false;
- CapOptionsFields.Fields.LockCheckBox.Checked = true;
- CapOptionsFields.Fields.LockCheckBox.Enabled = false;
- CapOptionsFields.SetName("Velocity Gain Cap");
+ CapOption.Fields.LockCheckBox.Checked = true;
+ CapOption.Fields.LockCheckBox.Enabled = false;
+ WeightOption.Fields.LockCheckBox.Checked = true;
+ WeightOption.Fields.LockCheckBox.Enabled = false;
+ CapOption.SetName("Velocity Gain Cap");
}
}
}
diff --git a/grapher/FieldXY.cs b/grapher/FieldXY.cs
index 42232c8..7338962 100644
--- a/grapher/FieldXY.cs
+++ b/grapher/FieldXY.cs
@@ -15,7 +15,10 @@ namespace grapher
YField = new Field(yBox, containingForm, defaultData);
LockCheckBox = lockCheckBox;
LockCheckBox.CheckedChanged += new System.EventHandler(CheckChanged);
- SetLocked();
+ DefaultWidthX = XField.Box.Width;
+ DefaultWidthY = YField.Box.Width;
+ CombinedWidth = DefaultWidthX + DefaultWidthY + YField.Box.Left - (XField.Box.Left + DefaultWidthX);
+ SetCombined();
}
public double X
{
@@ -26,7 +29,7 @@ namespace grapher
{
get
{
- if (Locked)
+ if (Combined)
{
return X;
}
@@ -43,29 +46,41 @@ namespace grapher
public Field YField { get; }
- private bool Locked { get; set; }
+ private bool Combined { get; set; }
+
+ private int DefaultWidthX { get; }
+
+ private int DefaultWidthY { get; }
+
+ private int CombinedWidth { get; }
private void CheckChanged(object sender, EventArgs e)
{
if (LockCheckBox.CheckState == CheckState.Checked)
{
- SetLocked();
+ SetCombined();
}
else
{
- SetUnlocked();
+ SetSeparate();
}
}
- public void SetLocked()
+ public void SetCombined()
{
- Locked = true;
+ Combined = true;
YField.SetToUnavailable();
+ YField.Box.Hide();
+ XField.Box.Width = CombinedWidth;
}
- public void SetUnlocked()
+ public void SetSeparate()
{
- Locked = false;
+ Combined = false;
+
+ XField.Box.Width = DefaultWidthX;
+ YField.Box.Width = DefaultWidthY;
+
if (XField.State == Field.FieldState.Default)
{
YField.SetToDefault();
@@ -74,6 +89,27 @@ namespace grapher
{
YField.SetToEntered(XField.Data);
}
+
+ if (XField.Box.Visible)
+ {
+ YField.Box.Show();
+ }
+ }
+
+ public void Show()
+ {
+ XField.Box.Show();
+
+ if (!Combined)
+ {
+ YField.Box.Show();
+ }
+ }
+
+ public void Hide()
+ {
+ XField.Box.Hide();
+ YField.Box.Hide();
}
}
}
diff --git a/grapher/Form1.cs b/grapher/Form1.cs
index 03168f3..518ffc3 100644
--- a/grapher/Form1.cs
+++ b/grapher/Form1.cs
@@ -33,6 +33,7 @@ namespace grapher
public double exponent;
public double midpoint;
public double power_scale;
+ public double gain_cap;
public vec2d weight;
}
@@ -75,6 +76,7 @@ namespace grapher
args.acc_fn_args.acc_args.power_scale = 1;
args.acc_fn_args.acc_args.weight.x = 1;
args.acc_fn_args.acc_args.weight.y = 1;
+ args.acc_fn_args.acc_args.gain_cap = 0;
args.acc_fn_args.accel_mode = (int)accel_mode.natural;
args.acc_fn_args.time_min = 0.4;
args.acc_fn_args.cap.x = 0;
@@ -117,7 +119,8 @@ namespace grapher
var capOptions = new CapOptions(
sensitivityToolStripMenuItem,
velocityGainToolStripMenuItem,
- cap);
+ cap,
+ weight);
AccelGUI = new AccelGUI(
this,
diff --git a/grapher/OptionXY.cs b/grapher/OptionXY.cs
index 1fdf244..ca1559d 100644
--- a/grapher/OptionXY.cs
+++ b/grapher/OptionXY.cs
@@ -57,16 +57,14 @@ namespace grapher
public void Hide()
{
- Fields.XField.Box.Hide();
- Fields.YField.Box.Hide();
+ Fields.Hide();
Fields.LockCheckBox.Hide();
Label.Hide();
}
public void Show()
{
- Fields.XField.Box.Show();
- Fields.YField.Box.Show();
+ Fields.Show();
Fields.LockCheckBox.Show();
Label.Show();
}
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp
index 1745ae8..0afb386 100644
--- a/wrapper/wrapper.cpp
+++ b/wrapper/wrapper.cpp
@@ -45,7 +45,7 @@ void ManagedAccel::UpdateAccel(
args.acc_fn_args.acc_args.limit = lim_exp;
args.acc_fn_args.acc_args.exponent = lim_exp;
args.acc_fn_args.acc_args.midpoint = midpoint;
- args.acc_fn_args.gain_cap = gain_cap;
+ args.acc_fn_args.acc_args.gain_cap = gain_cap;
mouse_modifier* temp_modifier = new mouse_modifier(args);
driverWriter->writeToDriver(temp_modifier);