#define ACCUM_MOUSE #define ACCUM_SCROLL using WindowsInput; using static CommonHelpers.Log; namespace SteamController.Devices { public class MouseController : IDisposable { private struct Accum { double? last, now; public bool Used { get { return now is not null; } } public void Tick() { last = now; now = null; } public void Add(double delta) { now = (now ?? 0.0) + delta; } public int Consume() { double accum = ((now ?? 0.0) + (last ?? 0.0)); now = accum - (int)accum; last = null; return (int)accum; } } // TODO: Unsure what it is public const int XButtonID = 0; public const int YButtonID = 1; public const int UpdateValidInterval = 250; InputSimulator simulator = new InputSimulator(); HashSet