mirror of
https://github.com/ayufan/steam-deck-tools.git
synced 2026-04-21 06:03:52 +00:00
Simplify DeltaValueMode
This commit is contained in:
parent
4c016b33b9
commit
6da5a9796c
3 changed files with 31 additions and 43 deletions
|
|
@ -262,6 +262,14 @@ namespace SteamController.Devices
|
|||
}
|
||||
}
|
||||
|
||||
public enum DeltaValueMode
|
||||
{
|
||||
Absolute,
|
||||
AbsoluteTime,
|
||||
Delta,
|
||||
DeltaTime
|
||||
}
|
||||
|
||||
public class SteamAxis : SteamAction
|
||||
{
|
||||
public const short VirtualLeftThreshold = short.MinValue / 2;
|
||||
|
|
@ -275,6 +283,7 @@ namespace SteamController.Devices
|
|||
public SteamButton? VirtualRight { get; internal set; }
|
||||
public short Deadzone { get; internal set; }
|
||||
public short MinChange { get; internal set; }
|
||||
public DeltaValueMode DeltaValueMode { get; internal set; } = DeltaValueMode.Absolute;
|
||||
|
||||
public short Value
|
||||
{
|
||||
|
|
@ -298,45 +307,39 @@ namespace SteamController.Devices
|
|||
|
||||
public bool Active
|
||||
{
|
||||
get
|
||||
{
|
||||
return ActiveButton?.Value ?? true;
|
||||
}
|
||||
get { return ActiveButton?.Value ?? true; }
|
||||
}
|
||||
|
||||
public enum ScaledMode
|
||||
public double DeltaValue
|
||||
{
|
||||
Absolute,
|
||||
AbsoluteTime,
|
||||
Delta,
|
||||
DeltaTime
|
||||
get { return GetDeltaValue(-1, 1, DeltaValueMode); }
|
||||
}
|
||||
|
||||
public double Scaled(double min, double max, ScaledMode mode)
|
||||
public double GetDeltaValue(double min, double max, DeltaValueMode mode)
|
||||
{
|
||||
int value = 0;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case ScaledMode.Absolute:
|
||||
case DeltaValueMode.Absolute:
|
||||
if (Math.Abs(Value) < Deadzone)
|
||||
return 0.0;
|
||||
value = Value;
|
||||
break;
|
||||
|
||||
case ScaledMode.AbsoluteTime:
|
||||
case DeltaValueMode.AbsoluteTime:
|
||||
if (Math.Abs(Value) < Deadzone)
|
||||
return 0.0;
|
||||
value = (int)(Value * DeltaTime);
|
||||
break;
|
||||
|
||||
case ScaledMode.Delta:
|
||||
case DeltaValueMode.Delta:
|
||||
value = Value - LastValue;
|
||||
if (Math.Abs(Value) < MinChange)
|
||||
return 0.0;
|
||||
break;
|
||||
|
||||
case ScaledMode.DeltaTime:
|
||||
case DeltaValueMode.DeltaTime:
|
||||
value = Value - LastValue;
|
||||
if (Math.Abs(Value) < MinChange)
|
||||
return 0.0;
|
||||
|
|
@ -351,21 +354,6 @@ namespace SteamController.Devices
|
|||
return factor * (max - min) + min;
|
||||
}
|
||||
|
||||
public double Scaled(double range, ScaledMode mode)
|
||||
{
|
||||
return Scaled(-range, range, mode);
|
||||
}
|
||||
|
||||
public int Scaled(int min, int max, ScaledMode mode)
|
||||
{
|
||||
return (int)Scaled((double)min, (double)max, mode);
|
||||
}
|
||||
|
||||
public int Scaled(int range, ScaledMode mode)
|
||||
{
|
||||
return Scaled(-range, range, mode);
|
||||
}
|
||||
|
||||
internal override void Reset()
|
||||
{
|
||||
rawLastValue = rawValue;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue