2989c163a8
* editorconfig: Add default charset * Change file encoding from UTF-8-BOM to UTF-8
41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using System.Runtime.CompilerServices;
|
|
|
|
namespace Ryujinx.Input
|
|
{
|
|
/// <summary>
|
|
/// Represent an emulated keyboard.
|
|
/// </summary>
|
|
public interface IKeyboard : IGamepad
|
|
{
|
|
/// <summary>
|
|
/// Check if a given key is pressed on the keyboard.
|
|
/// </summary>
|
|
/// <param name="key">The key</param>
|
|
/// <returns>True if the given key is pressed on the keyboard</returns>
|
|
bool IsPressed(Key key);
|
|
|
|
/// <summary>
|
|
/// Get a snaphost of the state of the keyboard.
|
|
/// </summary>
|
|
/// <returns>A snaphost of the state of the keyboard.</returns>
|
|
KeyboardStateSnapshot GetKeyboardStateSnapshot();
|
|
|
|
/// <summary>
|
|
/// Get a snaphost of the state of a keyboard.
|
|
/// </summary>
|
|
/// <param name="keyboard">The keyboard to do a snapshot of</param>
|
|
/// <returns>A snaphost of the state of the keyboard.</returns>
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
static KeyboardStateSnapshot GetStateSnapshot(IKeyboard keyboard)
|
|
{
|
|
bool[] keysState = new bool[(int)Key.Count];
|
|
|
|
for (Key key = 0; key < Key.Count; key++)
|
|
{
|
|
keysState[(int)key] = keyboard.IsPressed(key);
|
|
}
|
|
|
|
return new KeyboardStateSnapshot(keysState);
|
|
}
|
|
}
|
|
}
|