private ushort[] GetScancodeSequense(XInputState st, GamePadEventType type) { string[] keystroke = new string[] { }; switch (type) { case GamePadEventType.Button: keystroke = Parse.Keystroke(Parse.KeysToString(Controller.GetProfile(), (XInputWrapper.GP)st.Gamepad.WButtons)); break; case GamePadEventType.RightTrigger: keystroke = Parse.Keystroke(Parse.KeysToString(Controller.GetProfile(), (XInputWrapper.GP) 0x3333)); break; case GamePadEventType.LeftTrigger: keystroke = Parse.Keystroke(Parse.KeysToString(Controller.GetProfile(), (XInputWrapper.GP) 0x5555)); break; } List <ushort> result = new List <ushort>(); foreach (var item in keystroke) { HardwareButtons code = (HardwareButtons)Enum.Parse(typeof(HardwareButtons), item); if (User32Wrapper.VKeys.TryGetValue((int)code, out ushort value)) { result.Add(value); } } return(result.ToArray()); }
public static HardwareButtons[] KeyCodes(string value) { string[] keysLine = Keystroke(value); HardwareButtons[] keySequence = new HardwareButtons[keysLine.Length]; for (int i = 0; i < keysLine.Length; i++) { keySequence[i] = Enum.TryParse(keysLine[i], out HardwareButtons code) ? code : HardwareButtons.Unknown; } return(keySequence); }
private void OnKeyDown(HardwareButtons button) { string key = Parse.KeysString(button); if (button == HardwareButtons.Unknown) { return; } if (!_keySequence.Contains(key)) { _keySequence.Add(key); } SetShortcutSequence(); }
private void OnKeyDown(HardwareButtons button) { string key = Parse.KeysString(button); if (button == HardwareButtons.Unknown) { return; } if (_keyCount == 0) { _keyStroketext = String.Empty; KeySequence.Clear(); } if (!KeySequence.Contains(key)) { KeySequence.Add(key); _keyCount++; } SetShortcutSequence(); }
public static string KeysString(HardwareButtons button) { string vkey = String.Empty; switch (button) { case HardwareButtons.LeftShift: case HardwareButtons.RightShift: vkey = "Shift"; break; case HardwareButtons.LeftControl: case HardwareButtons.RightControl: vkey = "Control"; break; case HardwareButtons.LeftAlt: case HardwareButtons.RightAlt: vkey = "Alt"; break; case HardwareButtons.LeftSuper: case HardwareButtons.RightSuper: vkey = "Win"; break; default: break; } if (vkey == String.Empty) { vkey = button.ToString(); } return(vkey.Contains("Alpha") ? vkey.Replace("Alpha", String.Empty) : vkey); // for keys: 1, 2, ... 0 }
public static string KeysToString(Profile profile, XInputWrapper.GP button) { HardwareButtons[] sequence; switch (button) { case XInputWrapper.GP.XINPUT_GAMEPAD_A: sequence = profile.ButtonA; break; case XInputWrapper.GP.XINPUT_GAMEPAD_X: sequence = profile.ButtonX; break; case XInputWrapper.GP.XINPUT_GAMEPAD_Y: sequence = profile.ButtonY; break; case XInputWrapper.GP.XINPUT_GAMEPAD_B: sequence = profile.ButtonB; break; case XInputWrapper.GP.XINPUT_GAMEPAD_DPAD_UP: sequence = profile.ButtonDUp; break; case XInputWrapper.GP.XINPUT_GAMEPAD_DPAD_DOWN: sequence = profile.ButtonDDown; break; case XInputWrapper.GP.XINPUT_GAMEPAD_DPAD_LEFT: sequence = profile.ButtonDLeft; break; case XInputWrapper.GP.XINPUT_GAMEPAD_DPAD_RIGHT: sequence = profile.ButtonDRight; break; case XInputWrapper.GP.XINPUT_GAMEPAD_BACK: sequence = profile.ButtonBack; break; case XInputWrapper.GP.XINPUT_GAMEPAD_START: sequence = profile.ButtonStart; break; case XInputWrapper.GP.XINPUT_GAMEPAD_LEFT_SHOULDER: sequence = profile.ButtonLB; break; case XInputWrapper.GP.XINPUT_GAMEPAD_LEFT_THUMB: sequence = profile.ButtonLS; break; case XInputWrapper.GP.XINPUT_GAMEPAD_RIGHT_SHOULDER: sequence = profile.ButtonRB; break; case XInputWrapper.GP.XINPUT_GAMEPAD_RIGHT_THUMB: sequence = profile.ButtonRS; break; case XInputWrapper.GP.XINPUT_GAMEPAD_RIGHT_TRIGGER: sequence = profile.ButtonRT; break; case XInputWrapper.GP.XINPUT_GAMEPAD_LEFT_TRIGGER: sequence = profile.ButtonLT; break; default: sequence = new HardwareButtons[] { HardwareButtons.Unknown }; break; } return(KeysToString(sequence)); }