From 68506a789a0affe96c3c19f5204ecc245eba122f Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 1 Apr 2026 18:36:34 +0300 Subject: [PATCH] Kernel: Add support for volume control keys --- base-sysroot.tar.gz | Bin 942550 -> 942573 bytes kernel/kernel/Input/PS2/Keymap.cpp | 9 +++++++++ kernel/kernel/USB/HID/Keyboard.cpp | 3 +++ 3 files changed, 12 insertions(+) diff --git a/base-sysroot.tar.gz b/base-sysroot.tar.gz index 5a6bde9fec4569f8ed8143ae57ee690772dc6e46..c9cc9d929b13a746c83a7eb77af052399d1567cd 100644 GIT binary patch delta 22739 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 V#YH{x-IPf@9#Ns)RIBV%{{zzGsNVnp delta 22701 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 A1^@s6 diff --git a/kernel/kernel/Input/PS2/Keymap.cpp b/kernel/kernel/Input/PS2/Keymap.cpp index 6f9646be..dec6649d 100644 --- a/kernel/kernel/Input/PS2/Keymap.cpp +++ b/kernel/kernel/Input/PS2/Keymap.cpp @@ -136,6 +136,9 @@ namespace Kernel::Input m_scancode_to_keycode_extended[0x49] = keycode_function(18); m_scancode_to_keycode_extended[0x51] = keycode_function(19); m_scancode_to_keycode_normal[0x46] = keycode_function(20); + m_scancode_to_keycode_extended[0x20] = keycode_function(21); + m_scancode_to_keycode_extended[0x2E] = keycode_function(22); + m_scancode_to_keycode_extended[0x30] = keycode_function(23); // Arrow keys m_scancode_to_keycode_extended[0x48] = keycode_normal(5, 0); @@ -246,6 +249,9 @@ namespace Kernel::Input m_scancode_to_keycode_extended[0x7D] = keycode_function(18); m_scancode_to_keycode_extended[0x7A] = keycode_function(19); m_scancode_to_keycode_normal[0x7E] = keycode_function(20); + m_scancode_to_keycode_extended[0x23] = keycode_function(21); + m_scancode_to_keycode_extended[0x21] = keycode_function(22); + m_scancode_to_keycode_extended[0x32] = keycode_function(23); // Arrow keys m_scancode_to_keycode_extended[0x75] = keycode_normal(5, 0); @@ -356,6 +362,9 @@ namespace Kernel::Input m_scancode_to_keycode_normal[0x6F] = keycode_function(18); m_scancode_to_keycode_normal[0x6D] = keycode_function(19); m_scancode_to_keycode_normal[0x5F] = keycode_function(20); + m_scancode_to_keycode_normal[0x9C] = keycode_function(21); + m_scancode_to_keycode_normal[0x9D] = keycode_function(22); + m_scancode_to_keycode_normal[0x95] = keycode_function(23); // Arrow keys m_scancode_to_keycode_normal[0x63] = keycode_normal(5, 0); diff --git a/kernel/kernel/USB/HID/Keyboard.cpp b/kernel/kernel/USB/HID/Keyboard.cpp index eacb5c27..4e199c2e 100644 --- a/kernel/kernel/USB/HID/Keyboard.cpp +++ b/kernel/kernel/USB/HID/Keyboard.cpp @@ -342,6 +342,9 @@ namespace Kernel s_scancode_to_keycode[0x4B] = keycode_function(18); s_scancode_to_keycode[0x4E] = keycode_function(19); s_scancode_to_keycode[0x47] = keycode_function(20); + s_scancode_to_keycode[0x7F] = keycode_function(21); + s_scancode_to_keycode[0x81] = keycode_function(22); + s_scancode_to_keycode[0x80] = keycode_function(23); s_scancode_to_keycode[0x53] = keycode_numpad(0, 0); s_scancode_to_keycode[0x54] = keycode_numpad(0, 1);