diff --git a/Runtime/Event.cs b/Runtime/Event.cs
index 1b02741..7531fd6 100644
--- a/Runtime/Event.cs
+++ b/Runtime/Event.cs
@@ -3,37 +3,189 @@ using System.Runtime.InteropServices;
namespace SkyHook
{
- ///
- /// Recorded key updates from SkyHook.
- ///
- [StructLayout(LayoutKind.Sequential)]
- [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
- public struct SkyHookEvent
- {
///
- /// When the key's state was updated.
+ /// Recorded key updates from SkyHook.
///
- public readonly ulong Time;
- ///
- /// Whether the key is pressed or released.
- ///
- public readonly EventType Type;
- ///
- /// The identified key label from the native assembly.
- ///
- public readonly ushort Label;
- ///
- /// The key number that was pressed or released.
- ///
- public readonly ushort Key;
- }
+ [StructLayout(LayoutKind.Sequential)]
+ [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
+ public struct SkyHookEvent
+ {
+ ///
+ /// When the key's state was updated.
+ ///
+ public readonly ulong Time;
+ ///
+ /// Whether the key is pressed or released.
+ ///
+ public readonly EventType Type;
+ ///
+ /// The identified key label from the native assembly.
+ ///
+ public readonly KeyLabel Label;
+ ///
+ /// The key number that was pressed or released.
+ ///
+ public readonly ushort Key;
+ }
- ///
- /// The type of 's event.
- ///
- public enum EventType
- {
- KeyPressed,
- KeyReleased
- }
+ ///
+ /// The type of 's event.
+ ///
+ [SuppressMessage("ReSharper", "UnusedMember.Global")]
+ public enum EventType
+ {
+ KeyPressed,
+ KeyReleased
+ }
+
+ ///
+ /// The key label identified by native SkyHook.
+ /// This label will be the same regardless of what OS the player is in.
+ ///
+ /// This is a direct import of the https://git.pikokr.dev/SkyHook/SkyHook/src/branch/main/skyhook/src/keycodes.rs native enum.
+ ///
+ [SuppressMessage("ReSharper", "UnusedMember.Global")]
+ public enum KeyLabel : ushort
+ {
+ Escape,
+
+ // Function Keys
+ F1,
+ F2,
+ F3,
+ F4,
+ F5,
+ F6,
+ F7,
+ F8,
+ F9,
+ F10,
+ F11,
+ F12,
+ F13,
+ F14,
+ F15,
+ F16,
+ F17,
+ F18,
+ F19,
+ F20,
+ F21,
+ F22,
+ F23,
+ F24,
+
+ // 2nd Layer
+ Grave,
+ Alpha1,
+ Alpha2,
+ Alpha3,
+ Alpha4,
+ Alpha5,
+ Alpha6,
+ Alpha7,
+ Alpha8,
+ Alpha9,
+ Alpha0,
+ Minus,
+ Equal,
+ Backspace,
+
+ // 3rd Layer
+ Tab,
+ Q,
+ W,
+ E,
+ R,
+ T,
+ Y,
+ U,
+ I,
+ O,
+ P,
+ LeftBrace,
+ RightBrace,
+ BackSlash,
+
+ // 4th Layer
+ CapsLock,
+ A,
+ S,
+ D,
+ F,
+ G,
+ H,
+ J,
+ K,
+ L,
+ Semicolon,
+ Apostrophe,
+ Enter,
+
+ // 5th Layer
+ LShift,
+ Z,
+ X,
+ C,
+ V,
+ B,
+ N,
+ M,
+ Comma,
+ Dot,
+ Slash,
+ RShift,
+
+ // 6th Layer
+ LControl,
+ Super,
+ LAlt,
+ Space,
+ RAlt,
+ RControl,
+
+ // Controls
+ PrintScreen,
+ ScrollLock,
+ PauseBreak,
+ Insert,
+ Home,
+ PageUp,
+ Delete,
+ End,
+ PageDown,
+ ArrowUp,
+ ArrowLeft,
+ ArrowDown,
+ ArrowRight,
+
+ // Keypad
+ NumLock,
+ KeypadSlash,
+ KeypadAsterisk,
+ KeypadMinus,
+ Keypad1,
+ Keypad2,
+ Keypad3,
+ Keypad4,
+ Keypad5,
+ Keypad6,
+ Keypad7,
+ Keypad8,
+ Keypad9,
+ Keypad0,
+ KeypadDot,
+ KeypadPlus,
+ KeypadEnter,
+
+ // Mouse
+ MouseLeft,
+ MouseRight,
+ MouseMiddle,
+ MouseX1,
+ MouseX2,
+
+ // Uncategorized
+ Unknown
+ }
}
\ No newline at end of file