private void Tick(object sender, EventArgs e) { try { _keyboard.Poll(); } catch (Exception) { Finish(); ControllerDisconnected?.Invoke(this, EventArgs.Empty); return; } ControllerStateBuilder outState = new ControllerStateBuilder(); KeyboardState state = _keyboard.GetCurrentState(); foreach (string key in Enum.GetNames(typeof(Key))) { outState.SetButton(key, false); } for (int i = 0; i < state.PressedKeys.Count; i++) { outState.SetButton(state.PressedKeys[i].ToString(), true); } ControllerStateChanged?.Invoke(this, outState.Build()); }
private async void BaseControllerReader_ControllerStateChanged(object sender, ControllerState e) { if (!disposedValue) { await Task.Delay(delayInMilliseconds); ControllerStateChanged?.Invoke(this, e); } }
private void Tick(object sender, EventArgs e) { try { _keyboard.Poll(); _mouse.Poll(); } catch (SharpDXException) { Finish(); ControllerDisconnected?.Invoke(this, EventArgs.Empty); return; } ControllerStateBuilder outState = new ControllerStateBuilder(); KeyboardState state = _keyboard.GetCurrentState(); MouseState mouseState = _mouse.GetCurrentState(); SignalTool.SetPCMouseProperties(mouseState.X / 255.0f, -mouseState.Y / 255.0f, mouseState.X, mouseState.Y, outState, 1.0f); if (mouseState.Z > 0) { outState.SetButton("MouseScrollUp", true); outState.SetButton("MouseScrollDown", false); } else if (mouseState.Z < 0) { outState.SetButton("MouseScrollDown", true); outState.SetButton("MouseScrollUp", false); } else { outState.SetButton("MouseScrollDown", false); outState.SetButton("MouseScrollUp", false); } for (int i = 0; i < MOUSE_BUTTONS.Length; ++i) { outState.SetButton(MOUSE_BUTTONS[i], mouseState.Buttons[i]); } foreach (string key in Enum.GetNames(typeof(Key))) { outState.SetButton(key, false); } for (int i = 0; i < state.PressedKeys.Count; i++) { outState.SetButton(state.PressedKeys[i].ToString(), true); } ControllerStateChanged?.Invoke(this, outState.Build()); }
private void Tick(object sender, EventArgs e) { try { _joystick.Poll(); } catch (SharpDXException) { Finish(); ControllerDisconnected?.Invoke(this, EventArgs.Empty); return; } ControllerStateBuilder outState = new ControllerStateBuilder(); JoystickState state = _joystick.GetCurrentState(); for (int i = 0; i < _joystick.Capabilities.ButtonCount; ++i) { outState.SetButton("b" + i.ToString(CultureInfo.CurrentCulture), state.Buttons[i]); } int[] pov = state.PointOfViewControllers; outState.SetButton("up", false); outState.SetButton("right", false); outState.SetButton("down", false); outState.SetButton("left", false); if (pov != null && pov.Length > 0 && pov[0] >= 0) { outState.SetButton("up", pov[0] > OctantAngle(6) || pov[0] < OctantAngle(1)); outState.SetButton("right", pov[0] > OctantAngle(0) && pov[0] < OctantAngle(3)); outState.SetButton("down", pov[0] > OctantAngle(2) && pov[0] < OctantAngle(5)); outState.SetButton("left", pov[0] > OctantAngle(4) && pov[0] < OctantAngle(7)); } else if (_joystick.Information.ProductName == "8Bitdo SF30 Wireless Controller") // For SN30 { outState.SetButton("up", (float)state.Y / RANGE == -1.0); outState.SetButton("down", (float)state.Y / RANGE == 1.0); outState.SetButton("left", (float)state.X / RANGE == -1.0); outState.SetButton("right", (float)state.X / RANGE == 1.0); } outState.SetAnalog("x", (float)state.X / RANGE, state.X); outState.SetAnalog("y", (float)state.Y / RANGE, state.Y); outState.SetAnalog("z", (float)state.Z / RANGE, state.Z); outState.SetAnalog("rx", (float)state.RotationX / RANGE, state.RotationX); outState.SetAnalog("ry", (float)state.RotationY / RANGE, state.RotationY); outState.SetAnalog("rz", (float)state.RotationZ / RANGE, state.RotationZ); ControllerStateChanged?.Invoke(this, outState.Build()); }
private async void BaseControllerReader_ControllerStateChanged(object sender, ControllerStateEventArgs e) { if (!disposedValue) { if (!LegacyKeybindingBehavior) { ControllerStateChangedNoDelay?.Invoke(this, e); } await Task.Delay(DelayInMilliseconds).ConfigureAwait(true); if (LegacyKeybindingBehavior) { ControllerStateChangedNoDelay?.Invoke(this, e); } ControllerStateChanged?.Invoke(this, e); } }
private void Tick(object sender, EventArgs e) { XInputState state = new XInputState(); if (NativeMethods.XInputGetState(_id, ref state) > 0) { ControllerDisconnected?.Invoke(this, EventArgs.Empty); Finish(); return; } ControllerStateBuilder outState = new ControllerStateBuilder(); outState.SetButton("a", (state.wButtons & 0x1000) != 0); outState.SetButton("b", (state.wButtons & 0x2000) != 0); outState.SetButton("x", (state.wButtons & 0x4000) != 0); outState.SetButton("y", (state.wButtons & 0x8000) != 0); outState.SetButton("up", (state.wButtons & 0x0001) != 0); outState.SetButton("down", (state.wButtons & 0x0002) != 0); outState.SetButton("left", (state.wButtons & 0x0004) != 0); outState.SetButton("right", (state.wButtons & 0x0008) != 0); outState.SetButton("start", (state.wButtons & 0x0010) != 0); outState.SetButton("back", (state.wButtons & 0x0020) != 0); outState.SetButton("l3", (state.wButtons & 0x0040) != 0); outState.SetButton("r3", (state.wButtons & 0x0080) != 0); outState.SetButton("l", (state.wButtons & 0x0100) != 0); outState.SetButton("r", (state.wButtons & 0x0200) != 0); outState.SetAnalog("lstick_x", (float)state.sThumbLX / 32768); outState.SetAnalog("lstick_y", (float)state.sThumbLY / 32768); outState.SetAnalog("rstick_x", (float)state.sThumbRX / 32768); outState.SetAnalog("rstick_y", (float)state.sThumbRY / 32768); outState.SetAnalog("trig_l", (float)state.bLeftTrigger / 255); outState.SetAnalog("trig_r", (float)state.bRightTrigger / 255); ControllerStateChanged?.Invoke(this, outState.Build()); }