aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Input/Button.cs
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2024-04-17 22:52:12 +0100
committerGitHub <noreply@github.com>2024-04-17 18:52:12 -0300
commit446f2854a5af18aef7151f95d64e0fe66a3498b8 (patch)
tree2d92deeffc089cdad97ed49d13b0e858ddabd404 /src/Ryujinx.Input/Button.cs
parent8884d1fd732c9ba788f0ab711e6a9f507d934ac8 (diff)
Ava UI: Input Menu Refactor (#5826)
* Refactor * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update src/Ryujinx.Input/ButtonValueType.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Add empty line * Requested renames * Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Make parent models private readonly * Fix ControllerInputView * Make line shorter * Mac keys in locale * Double line break * Fix build * Get rid of _isValid * Fix potential race condition * Rename HasAnyButtonPressed to IsAnyButtonPressed * Use switches * Simplify enumeration --------- Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
Diffstat (limited to 'src/Ryujinx.Input/Button.cs')
-rw-r--r--src/Ryujinx.Input/Button.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Ryujinx.Input/Button.cs b/src/Ryujinx.Input/Button.cs
new file mode 100644
index 00000000..4289901c
--- /dev/null
+++ b/src/Ryujinx.Input/Button.cs
@@ -0,0 +1,33 @@
+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);
+ }
+ }
+}