public BindingSource Listen(BindingListenOptions listenOptions, InputDevice device) { if (!listenOptions.IncludeUnknownControllers || device.IsKnown) { return(null); } if (detectPhase == DetectPhase.WaitForControlRelease && (bool)detectFound && !IsPressed(detectFound, device)) { UnknownDeviceBindingSource result = new UnknownDeviceBindingSource(detectFound); Reset(); return(result); } UnknownDeviceControl control = ListenForControl(listenOptions, device); if ((bool)control) { if (detectPhase == DetectPhase.WaitForControlPress) { detectFound = control; detectPhase = DetectPhase.WaitForControlRelease; } } else if (detectPhase == DetectPhase.WaitForInitialRelease) { detectPhase = DetectPhase.WaitForControlPress; } return(null); }
private UnknownDeviceControl ListenForControl(BindingListenOptions listenOptions, InputDevice device) { if (device.IsUnknown) { UnknownDeviceControl firstPressedButton = device.GetFirstPressedButton(); if ((bool)firstPressedButton) { return(firstPressedButton); } UnknownDeviceControl firstPressedAnalog = device.GetFirstPressedAnalog(); if ((bool)firstPressedAnalog) { return(firstPressedAnalog); } } return(UnknownDeviceControl.None); }
public BindingSource Listen(BindingListenOptions listenOptions, InputDevice device) { if (!listenOptions.IncludeUnknownControllers || device.IsKnown) { return(null); } if (detectPhase == DetectPhase.WaitForControlRelease && detectFound) { if (!IsPressed(detectFound, device)) { var bindingSource = new UnknownDeviceBindingSource(detectFound); Reset(); return(bindingSource); } } var control = ListenForControl(listenOptions, device); if (control) { if (detectPhase == DetectPhase.WaitForControlPress) { detectFound = control; detectPhase = DetectPhase.WaitForControlRelease; } } else { if (detectPhase == DetectPhase.WaitForInitialRelease) { detectPhase = DetectPhase.WaitForControlPress; } } return(null); }
public BindingSource Listen( BindingListenOptions listenOptions, InputDevice device ) { if (!listenOptions.IncludeUnknownControllers || device.IsKnown) { return null; } if (detectPhase == DetectPhase.WaitForControlRelease && detectFound) { if (!IsPressed( detectFound, device )) { var bindingSource = new UnknownDeviceBindingSource( detectFound ); Reset(); return bindingSource; } } var control = ListenForControl( listenOptions, device ); if (control) { if (detectPhase == DetectPhase.WaitForControlPress) { detectFound = control; detectPhase = DetectPhase.WaitForControlRelease; } } else { if (detectPhase == DetectPhase.WaitForInitialRelease) { detectPhase = DetectPhase.WaitForControlPress; } } return null; }
bool IsPressed(UnknownDeviceControl control, InputDevice device) { var value = control.GetValue(device); return(Utility.AbsoluteIsOverThreshold(value, 0.5f)); }
public void Reset() { detectFound = UnknownDeviceControl.None; detectPhase = DetectPhase.WaitForInitialRelease; TakeSnapshotOnUnknownDevices(); }
public UnknownDeviceBindingSource( UnknownDeviceControl control ) { Control = control; }
internal override void Load( BinaryReader reader ) { // Have to do this because it's a struct property? Weird. var temp = new UnknownDeviceControl(); temp.Load( reader ); Control = temp; }
internal UnknownDeviceBindingSource() { Control = UnknownDeviceControl.None; }
bool IsPressed( UnknownDeviceControl control, InputDevice device ) { var value = control.GetValue( device ); return Utility.AbsoluteIsOverThreshold( value, 0.5f ); }