/// <summary> /// Refreshes the current state. Triggers <see cref="InputChanged"/> event. /// </summary> /// <returns>if the input was available</returns> public bool RefreshInput() { state.ResetChanges(); foreach (var s in sources) { if (s.Refresh(source, mapper)) { state.MarkChanged(s); } } var changes = state.GetChanges(); if (mapper.SelectedDPad != -1) { dPads[0] = source.DPads.ElementAt(mapper.SelectedDPad); } else { dPads[0] = DPadHelper.GetDirection(GetBool(XInputTypes.UP), GetBool(XInputTypes.DOWN), GetBool(XInputTypes.LEFT), GetBool(XInputTypes.RIGHT)); } state.SetDPad(0, dPads[0]); var changedDPads = state.GetChangedDpads(); if (changedDPads.Any() || changes.Any()) { InputChanged?.Invoke(this, new DeviceInputChangedEventArgs(changes, changedDPads)); } return(true); }
/// <summary> /// Refreshes the current state. Triggers <see cref="InputChanged"/> event. /// </summary> /// <returns>if the input was available</returns> public bool RefreshInput(bool force = false) { state.ResetChanges(); foreach (var s in sources) { if (s.Refresh(mapper)) { state.MarkChanged(s); } } var changes = state.GetChanges(force); dPads[0] = DPadHelper.GetDirection(GetBool(XInputTypes.UP), GetBool(XInputTypes.DOWN), GetBool(XInputTypes.LEFT), GetBool(XInputTypes.RIGHT)); state.SetDPad(0, dPads[0]); var changedDPads = state.GetChangedDpads(force); if (changedDPads.Any() || changes.Any()) { InputChanged?.Invoke(this, new DeviceInputChangedEventArgs(this, changes, changedDPads)); } return(true); }
/// <summary> /// Refreshes the current state. Triggers <see cref="InputChanged"/> event. /// </summary> /// <returns>if the input was available</returns> public bool RefreshInput(bool force = false) { state.ResetChanges(); foreach (var s in sources) { if (s.Refresh()) { state.MarkChanged(s); } } var changes = state.GetChanges(force); dPads[0] = DPadHelper.GetDirection(GetBool(XInputTypes.UP), GetBool(XInputTypes.DOWN), GetBool(XInputTypes.LEFT), GetBool(XInputTypes.RIGHT)); state.SetDPad(0, dPads[0]); var changedDPads = state.GetChangedDpads(force); if (changedDPads.Any() || changes.Any()) { deviceInputChangedEventArgs.Refresh(changes, changedDPads); InputChanged?.Invoke(this, deviceInputChangedEventArgs); xOutputManager.XOutputDevice.Report(controllerCount, GetValues()); } return(true); }