From 3b9fa5c9fb7402669296eec650398ac046b55c6c Mon Sep 17 00:00:00 2001 From: "H. Utku Maden" Date: Mon, 2 Feb 2026 23:16:05 +0300 Subject: [PATCH] Implement a very botched input scancode mapping. --- Dashboard.Common/Events/KeyboardEvents.cs | 20 +++++++++++- Dashboard.OpenTK/PAL2/Pal2Application.cs | 40 +++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/Dashboard.Common/Events/KeyboardEvents.cs b/Dashboard.Common/Events/KeyboardEvents.cs index 577a7d8..818cdf8 100644 --- a/Dashboard.Common/Events/KeyboardEvents.cs +++ b/Dashboard.Common/Events/KeyboardEvents.cs @@ -34,7 +34,25 @@ namespace Dashboard.Events public enum ScanCode { - // TODO: + // TODO: this array is from ReFuel, see if this makes any sense. + + Esc, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + Tilde, _1, _2, _3, _4, _5, _6, _7, _8, _9, _0, Minus, Equals, Backspace, + Tab, Q, W, E, R, T, Y, U, I, O, P, LBracket, RBracket, Backslash, + CapsLock, A, S, D, F, G, H, J, K, L, Semicolon, Quote, Enter, + LShift, Z, X, C, V, B, N, M, Dot, Comma, Slash, RShift, + LCtrl, LWin, LAlt, Space, RAlt, RWin, Menu, RCtrl, + + PrtSc, ScrollLock, PauseBreak, + Insert, Delete, Home, End, PgUp, PgDown, + Up, Down, Left, Right, + + NumLock, NumDiv, NumMul, NumSub, NumAdd, NumEnter, NumDecimal, + Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, + + IsoB00, + + KeysMax, } public class KeyboardButtonEventArgs(KeyCode keyCode, ScanCode scanCode, ModifierKeys modifierKeys, bool up) diff --git a/Dashboard.OpenTK/PAL2/Pal2Application.cs b/Dashboard.OpenTK/PAL2/Pal2Application.cs index 69cbeef..7f16c58 100644 --- a/Dashboard.OpenTK/PAL2/Pal2Application.cs +++ b/Dashboard.OpenTK/PAL2/Pal2Application.cs @@ -277,6 +277,46 @@ namespace Dashboard.OpenTK.PAL2 private static ScanCode GetScanCode(Scancode scanCode) => scanCode switch { + // TODO: Revise this array. + Scancode.A => ScanCode.A, + Scancode.B => ScanCode.B, + Scancode.C => ScanCode.C, + Scancode.D => ScanCode.D, + Scancode.E => ScanCode.E, + Scancode.F => ScanCode.F, + Scancode.G => ScanCode.G, + Scancode.H => ScanCode.H, + Scancode.J => ScanCode.J, + Scancode.K => ScanCode.K, + Scancode.L => ScanCode.L, + Scancode.M => ScanCode.M, + Scancode.N => ScanCode.N, + Scancode.O => ScanCode.O, + Scancode.P => ScanCode.P, + Scancode.Q => ScanCode.Q, + Scancode.R => ScanCode.R, + Scancode.S => ScanCode.S, + Scancode.T => ScanCode.T, + Scancode.U => ScanCode.U, + Scancode.V => ScanCode.V, + Scancode.W => ScanCode.W, + Scancode.X => ScanCode.X, + Scancode.Y => ScanCode.Y, + Scancode.Z => ScanCode.Z, + Scancode.D0 => ScanCode._0, + Scancode.D1 => ScanCode._1, + Scancode.D2 => ScanCode._2, + Scancode.D3 => ScanCode._3, + Scancode.D4 => ScanCode._4, + Scancode.D5 => ScanCode._5, + Scancode.D6 => ScanCode._6, + Scancode.D7 => ScanCode._7, + Scancode.D8 => ScanCode._8, + Scancode.D9 => ScanCode._9, + Scancode.UpArrow => ScanCode.Up, + Scancode.DownArrow => ScanCode.Down, + Scancode.LeftArrow => ScanCode.Left, + Scancode.RightArrow => ScanCode.Right, _ => (ScanCode)0, }; }