public static void Update() { #if Windows if (_pollInterval > 0 && _frames++ >= _pollInterval) { _ps4Manager.PollDevices(); _frames = 0; } #endif _keyboardPrevious = _keyboardCurrent; _keyboardCurrent = Keyboard.GetState(); _mousePrevious = _mouseCurrent; _mouseCurrent = Mouse.GetState(); foreach (var controller in _controllers) { controller.Update(); } if (_actions != null) { for (var a = 0; a < _actionCount; a++) { for (var p = 0; p < _players; p++) { var act = _actions[a, p]; act.Update(_keyboardCurrent, _controllers.TryGetValue(act.ControllerIndex, out var controller) ? controller : null); } } } }
public static Tuple <Ps4Manager, Timer> GetManagerWithTimedPoll(int ms, Action <Ps4Controller> onControllerConnected) { var poll = new Timer(); var manager = new Ps4Manager(onControllerConnected); poll.Elapsed += (s, e) => manager.PollDevices(); poll.Interval = ms; poll.AutoReset = true; poll.Enabled = true; return(Tuple.Create(manager, poll)); }