34 lines
723 B
C#
34 lines
723 B
C#
using System;
|
|
|
|
namespace Ryujinx.Input
|
|
{
|
|
public readonly struct Button
|
|
{
|
|
public readonly ButtonType Type;
|
|
private readonly uint _rawValue;
|
|
|
|
public Button(Key key)
|
|
{
|
|
Type = ButtonType.Key;
|
|
_rawValue = (uint)key;
|
|
}
|
|
|
|
public Button(GamepadButtonInputId gamepad)
|
|
{
|
|
Type = ButtonType.GamepadButtonInputId;
|
|
_rawValue = (uint)gamepad;
|
|
}
|
|
|
|
public Button(StickInputId stick)
|
|
{
|
|
Type = ButtonType.StickId;
|
|
_rawValue = (uint)stick;
|
|
}
|
|
|
|
public T AsHidType<T>() where T : Enum
|
|
{
|
|
return (T)Enum.ToObject(typeof(T), _rawValue);
|
|
}
|
|
}
|
|
}
|