protected void SubmitButtonValue(ButtonTarget target, float value, ulong updateTick, float deltaTime) { if (TouchManager.Device != null && target != 0) { InputControl control = TouchManager.Device.GetControl((InputControlType)target); if (control != null && control != InputControl.Null) { control.UpdateWithValue(value, updateTick, deltaTime); } } }
public override void Update(ulong updateTick, float deltaTime) { if (skipUpdateFrames > 0) { skipUpdateFrames--; return; } if (Native.GetDeviceState(Handle, out IntPtr deviceState)) { Marshal.Copy(deviceState, buttons, 0, buttons.Length); deviceState = new IntPtr(deviceState.ToInt64() + buttons.Length * 2); Marshal.Copy(deviceState, analogs, 0, analogs.Length); } if (IsKnown) { int analogCount = profile.AnalogCount; for (int i = 0; i < analogCount; i++) { InputControlMapping inputControlMapping = profile.AnalogMappings[i]; float value = inputControlMapping.Source.GetValue(this); InputControl control = GetControl(inputControlMapping.Target); if (!inputControlMapping.IgnoreInitialZeroValue || !control.IsOnZeroTick || !Utility.IsZero(value)) { float value2 = inputControlMapping.MapValue(value); control.UpdateWithValue(value2, updateTick, deltaTime); } } int buttonCount = profile.ButtonCount; for (int j = 0; j < buttonCount; j++) { InputControlMapping inputControlMapping2 = profile.ButtonMappings[j]; bool state = inputControlMapping2.Source.GetState(this); UpdateWithState(inputControlMapping2.Target, state, updateTick, deltaTime); } } else { for (int k = 0; k < NumUnknownButtons; k++) { UpdateWithState((InputControlType)(500 + k), ReadRawButtonState(k), updateTick, deltaTime); } for (int l = 0; l < NumUnknownAnalogs; l++) { UpdateWithValue((InputControlType)(400 + l), ReadRawAnalogValue(l), updateTick, deltaTime); } } }
public override void Update(ulong updateTick, float deltaTime) { if (IsKnown) { int analogCount = profile.AnalogCount; for (int i = 0; i < analogCount; i++) { InputControlMapping inputControlMapping = profile.AnalogMappings[i]; float value = inputControlMapping.Source.GetValue(this); InputControl control = GetControl(inputControlMapping.Target); if (!inputControlMapping.IgnoreInitialZeroValue || !control.IsOnZeroTick || !Utility.IsZero(value)) { float value2 = inputControlMapping.MapValue(value); control.UpdateWithValue(value2, updateTick, deltaTime); } } int buttonCount = profile.ButtonCount; for (int j = 0; j < buttonCount; j++) { InputControlMapping inputControlMapping2 = profile.ButtonMappings[j]; bool state = inputControlMapping2.Source.GetState(this); UpdateWithState(inputControlMapping2.Target, state, updateTick, deltaTime); } } else { for (int k = 0; k < NumUnknownButtons; k++) { UpdateWithState((InputControlType)(500 + k), ReadRawButtonState(k), updateTick, deltaTime); } for (int l = 0; l < NumUnknownAnalogs; l++) { UpdateWithValue((InputControlType)(400 + l), ReadRawAnalogValue(l), updateTick, deltaTime); } } }