BizHawk/BizHawk.Client.Common/KeyTurbo.cs

40 lines
593 B
C#

namespace BizHawk.Client.Common
{
public class TurboKey
{
private int _upTime, _downTime, _timer;
public bool Value { get; set; }
public void Reset(int downTime, int upTime)
{
Value = false;
_timer = 0;
_upTime = upTime;
_downTime = downTime;
}
public void Tick(bool down)
{
if (!down)
{
Reset(_downTime, _upTime);
return;
}
_timer++;
Value = true;
if (_timer > _downTime)
{
Value = false;
}
if (_timer > _upTime + _downTime)
{
_timer = 0;
Value = true;
}
}
}
}