|
|
@@ -487,38 +487,35 @@ namespace Ryujinx.Input.HLE
|
|
|
return value;
|
|
|
}
|
|
|
|
|
|
- public KeyboardInput? GetHLEKeyboardInput()
|
|
|
+ public static KeyboardInput GetHLEKeyboardInput(IGamepadDriver KeyboardDriver)
|
|
|
{
|
|
|
- if (_gamepad is IKeyboard keyboard)
|
|
|
- {
|
|
|
- KeyboardStateSnapshot keyboardState = keyboard.GetKeyboardStateSnapshot();
|
|
|
+ var keyboard = KeyboardDriver.GetGamepad("0") as IKeyboard;
|
|
|
|
|
|
- KeyboardInput hidKeyboard = new()
|
|
|
- {
|
|
|
- Modifier = 0,
|
|
|
- Keys = new ulong[0x4],
|
|
|
- };
|
|
|
+ KeyboardStateSnapshot keyboardState = keyboard.GetKeyboardStateSnapshot();
|
|
|
|
|
|
- foreach (HLEKeyboardMappingEntry entry in _keyMapping)
|
|
|
- {
|
|
|
- ulong value = keyboardState.IsPressed(entry.TargetKey) ? 1UL : 0UL;
|
|
|
+ KeyboardInput hidKeyboard = new()
|
|
|
+ {
|
|
|
+ Modifier = 0,
|
|
|
+ Keys = new ulong[0x4],
|
|
|
+ };
|
|
|
|
|
|
- hidKeyboard.Keys[entry.Target / 0x40] |= (value << (entry.Target % 0x40));
|
|
|
- }
|
|
|
+ foreach (HLEKeyboardMappingEntry entry in _keyMapping)
|
|
|
+ {
|
|
|
+ ulong value = keyboardState.IsPressed(entry.TargetKey) ? 1UL : 0UL;
|
|
|
|
|
|
- foreach (HLEKeyboardMappingEntry entry in _keyModifierMapping)
|
|
|
- {
|
|
|
- int value = keyboardState.IsPressed(entry.TargetKey) ? 1 : 0;
|
|
|
+ hidKeyboard.Keys[entry.Target / 0x40] |= (value << (entry.Target % 0x40));
|
|
|
+ }
|
|
|
|
|
|
- hidKeyboard.Modifier |= value << entry.Target;
|
|
|
- }
|
|
|
+ foreach (HLEKeyboardMappingEntry entry in _keyModifierMapping)
|
|
|
+ {
|
|
|
+ int value = keyboardState.IsPressed(entry.TargetKey) ? 1 : 0;
|
|
|
|
|
|
- return hidKeyboard;
|
|
|
+ hidKeyboard.Modifier |= value << entry.Target;
|
|
|
}
|
|
|
|
|
|
- return null;
|
|
|
- }
|
|
|
+ return hidKeyboard;
|
|
|
|
|
|
+ }
|
|
|
|
|
|
protected virtual void Dispose(bool disposing)
|
|
|
{
|