private void AcquireGamepad(GamepadListener listener, Gamepad gamepad) { Debug.Log($"Gamepad listener {listener.id} acquiring gamepad {gamepad.name}"); listener.acquireCallback.Invoke(gamepad); _acquiredGamepads[gamepad] = listener; }
private void NotifyRemoveGamepad(Gamepad gamepad) { Debug.Log($"Gamepad {gamepad.name} is offline"); GamepadListener listener = _acquiredGamepads.GetOrDefault(gamepad); listener?.disconnectCallback.Invoke(gamepad); _acquiredGamepads.Remove(gamepad); _gamepadListeners.Add(listener); }
private void AcquireGamepad(GamepadListener listener) { if (_unacquiredGamepads.Count < 1) { _gamepadListeners.Add(listener); return; } Gamepad gamepad = _unacquiredGamepads.RemoveFront(); AcquireGamepad(listener, gamepad); }
public int AcquireGamepad(Action <Gamepad> acquireCallback, Action <Gamepad> disconnectCallback) { GamepadListener listener = new GamepadListener { id = NextListenerId, acquireCallback = acquireCallback, disconnectCallback = disconnectCallback }; AcquireGamepad(listener); return(listener.id); }
private bool NotifyAddGamepad(Gamepad gamepad) { if (_gamepadListeners.Count < 1) { return(false); } GamepadListener listener = _gamepadListeners.RemoveFront(); AcquireGamepad(listener, gamepad); return(true); }