Files
Shigure/Input/WindowsTriggerKeyState.cs

15 lines
435 B
C#

namespace Shigure;
internal sealed class WindowsTriggerKeyState : ITriggerKeyState
{
public int? ResolveVirtualKey(string keyName) => WindowsVirtualKeyMap.Resolve(keyName);
public TriggerKeySample Read(int virtualKey)
{
var state = NativeMethods.GetAsyncKeyState(virtualKey);
return new(
IsDown: (state & unchecked((short)0x8000)) != 0,
WasPressed: (state & 0x0001) != 0);
}
}