public long[] CircularDeadZoneValueTests(long x, long y, int percentage) { var helper = new CircularDeadZoneHelper { Percentage = percentage }; return(helper.ApplyRangeDeadZone(new[] { x, y })); }
public short[] CircularDeadZoneValueTests(short x, short y, int percentage) { var helper = new CircularDeadZoneHelper { Percentage = percentage }; return(helper.ApplyRangeDeadZone(new[] { x, y })); }
public void CircularDzOutsideTests(long x, long y, int percentage) { var helper = new CircularDeadZoneHelper { Percentage = percentage }; var result = helper.ApplyRangeDeadZone(new long[] { -16383, -16383 }); Assert.AreNotEqual(new long[] { 0, 0 }, result); }
public void CircularDzMaxRange(short x, short y, int percentage) { var helper = new CircularDeadZoneHelper { Percentage = percentage }; var result = helper.ApplyRangeDeadZone(new short[] { x, y }); Assert.AreEqual(new short[] { x, y }, result); }
public override void Update(params long[] values) { var outputValues = new long[] { values[0], values[1] }; if (DeadZone != 0) { if (CircularDz) { outputValues = _circularDeadZoneHelper.ApplyRangeDeadZone(outputValues); } else { outputValues[0] = _deadZoneHelper.ApplyRangeDeadZone(outputValues[0]); outputValues[1] = _deadZoneHelper.ApplyRangeDeadZone(outputValues[1]); } } if (Sensitivity != 100) { if (Linear) { outputValues[0] = (long)(outputValues[0] * _linearSenstitivityScaleFactor); outputValues[1] = (long)(outputValues[1] * _linearSenstitivityScaleFactor); } else { outputValues[0] = _sensitivityHelper.ApplyRangeSensitivity(outputValues[0]); outputValues[1] = _sensitivityHelper.ApplyRangeSensitivity(outputValues[1]); } } outputValues[0] = Functions.ClampAxisRange(outputValues[0]); outputValues[1] = Functions.ClampAxisRange(outputValues[1]); if (InvertX) { outputValues[0] = Functions.Invert(outputValues[0]); } if (InvertY) { outputValues[1] = Functions.Invert(outputValues[1]); } if (Math.Abs(Rotation) > 0) { var vector = new Vector(outputValues[0], outputValues[1]); vector = vector.Rotate(Rotation); outputValues[0] = (long)vector.X; outputValues[1] = (long)vector.Y; } WriteOutput(0, outputValues[0]); WriteOutput(1, outputValues[1]); }
public override void Update(params short[] values) { var outputValues = new short[] { values[0], values[1] }; if (DeadZone != 0) { if (CircularDz) { outputValues = _circularDeadZoneHelper.ApplyRangeDeadZone(outputValues); } else { outputValues[0] = _deadZoneHelper.ApplyRangeDeadZone(outputValues[0]); outputValues[1] = _deadZoneHelper.ApplyRangeDeadZone(outputValues[1]); } } if (Sensitivity != 100) { if (Linear) { outputValues[0] = (short)(outputValues[0] * _linearSensitivityScaleFactor); outputValues[1] = (short)(outputValues[1] * _linearSensitivityScaleFactor); } else { outputValues[0] = _sensitivityHelper.ApplyRangeSensitivity(outputValues[0]); outputValues[1] = _sensitivityHelper.ApplyRangeSensitivity(outputValues[1]); } } outputValues[0] = Functions.ClampAxisRange(outputValues[0]); outputValues[1] = Functions.ClampAxisRange(outputValues[1]); if (InvertX) { outputValues[0] = Functions.Invert(outputValues[0]); } if (InvertY) { outputValues[1] = Functions.Invert(outputValues[1]); } WriteOutput(0, outputValues[0]); WriteOutput(1, outputValues[1]); }
public long[] CircularDeadZoneInitTests(long x, long y) { var helper = new CircularDeadZoneHelper(); return(helper.ApplyRangeDeadZone(new[] { x, y })); }
public short[] CircularDeadZoneInitTests(short x, short y) { var helper = new CircularDeadZoneHelper(); return(helper.ApplyRangeDeadZone(new[] { x, y })); }
public override void Update(params short[] values) { if (values[3] == 1) { // Reset held _trimX = 0; _trimY = 0; } else if (values[2] == 1) { // Trim held if (!_trimValueTaken) { // First iteration through, store new trim value and set _trimValueTaken flag _trimX += values[0]; _trimY += values[1]; _trimValueTaken = true; } } else { var outputValues = new[] { values[0], values[1] }; if (values[2] == 0) { _trimValueTaken = false; // ToDo: This is clumsy, fix once we can get notification of *which* input changed state } if (DeadZone != 0) { if (CircularDz) { outputValues = _circularDeadZoneHelper.ApplyRangeDeadZone(outputValues); } else { outputValues[0] = _deadZoneHelper.ApplyRangeDeadZone(outputValues[0]); outputValues[1] = _deadZoneHelper.ApplyRangeDeadZone(outputValues[1]); } } if (Sensitivity != 100) { if (Linear) { outputValues[0] = (short)(outputValues[0] * _linearSenstitivityScaleFactor); outputValues[1] = (short)(outputValues[1] * _linearSenstitivityScaleFactor); } else { outputValues[0] = _sensitivityHelper.ApplyRangeSensitivity(outputValues[0]); outputValues[1] = _sensitivityHelper.ApplyRangeSensitivity(outputValues[1]); } } // Apply trim outputValues[0] += _trimX; outputValues[1] += _trimY; outputValues[0] = Functions.ClampAxisRange(outputValues[0]); outputValues[1] = Functions.ClampAxisRange(outputValues[1]); if (InvertX) { outputValues[0] = Functions.Invert(outputValues[0]); } if (InvertY) { outputValues[1] = Functions.Invert(outputValues[1]); } WriteOutput(0, outputValues[0]); WriteOutput(1, outputValues[1]); } }