/* Calcite, include/kernel-public/input.h * Copyright 2025-2026 Benji Dial * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #pragma once struct mouse_packet { int x_change; int y_change; }; //named after qwerty value of key enum key_value { KEY_F9 = 0x01, KEY_F5 = 0x03, KEY_F3 = 0x04, KEY_F1 = 0x05, KEY_F2 = 0x06, KEY_F12 = 0x07, KEY_F10 = 0x09, KEY_F8 = 0x0a, KEY_F6 = 0x0b, KEY_F4 = 0x0c, KEY_TAB = 0x0d, KEY_GRAVE = 0x0e, KEY_LEFT_ALT = 0x11, KEY_LEFT_SHIFT = 0x12, KEY_LEFT_CTRL = 0x14, KEY_Q = 0x15, KEY_1 = 0x16, KEY_Z = 0x1a, KEY_S = 0x1b, KEY_A = 0x1c, KEY_W = 0x1d, KEY_2 = 0x1e, KEY_C = 0x21, KEY_X = 0x22, KEY_D = 0x23, KEY_E = 0x24, KEY_4 = 0x25, KEY_3 = 0x26, KEY_SPACE = 0x29, KEY_V = 0x2a, KEY_F = 0x2b, KEY_T = 0x2c, KEY_R = 0x2d, KEY_5 = 0x2e, KEY_N = 0x31, KEY_B = 0x32, KEY_H = 0x33, KEY_G = 0x34, KEY_Y = 0x35, KEY_6 = 0x36, KEY_M = 0x3a, KEY_J = 0x3b, KEY_U = 0x3c, KEY_7 = 0x3d, KEY_8 = 0x3e, KEY_COMMA = 0x41, KEY_K = 0x42, KEY_I = 0x43, KEY_O = 0x44, KEY_0 = 0x45, KEY_9 = 0x46, KEY_PERIOD = 0x49, KEY_SLASH = 0x4a, KEY_L = 0x4b, KEY_SEMICOLON = 0x4c, KEY_P = 0x4d, KEY_MINUS = 0x4e, KEY_APOSTRAPHE = 0x52, KEY_OPEN_BRACKET = 0x54, KEY_EQUALS = 0x55, KEY_CAPS_LOCK = 0x58, KEY_RIGHT_SHIFT = 0x59, KEY_ENTER = 0x5a, KEY_CLOSE_BRACKET = 0x5b, KEY_BACKSLASH = 0x5d, KEY_BACKSPACE = 0x66, KEY_NUM_1 = 0x69, KEY_NUM_4 = 0x6b, KEY_NUM_7 = 0x6c, KEY_NUM_0 = 0x70, KEY_NUM_PERIOD = 0x71, KEY_NUM_2 = 0x72, KEY_NUM_5 = 0x73, KEY_NUM_6 = 0x74, KEY_NUM_8 = 0x75, KEY_ESCAPE = 0x76, KEY_NUM_LOCK = 0x77, KEY_F11 = 0x78, KEY_NUM_PLUS = 0x79, KEY_NUM_3 = 0x7a, KEY_NUM_MINUS = 0x7b, KEY_NUM_TIMES = 0x7c, KEY_NUM_9 = 0x7d, KEY_SCROLL_LOCK = 0x7e, KEY_F7 = 0x83, KEY_WEB_SEARCH = 0x90, KEY_RIGHT_ALT = 0x91, KEY_RIGHT_CTRL = 0x94, KEY_MEDIA_PREVIOUS = 0x95, KEY_WEB_FAVORITES = 0x98, KEY_LEFT_GUI = 0x9f, KEY_WEB_REFRESH = 0xa0, KEY_MEDIA_VOLUME_DOWN = 0xa1, KEY_MEDIA_MUTE = 0xa3, KEY_RIGHT_GUI = 0xa7, KEY_WEB_STOP = 0xa8, KEY_CALCULATOR = 0xab, KEY_MENU = 0xaf, KEY_WEB_FORWARD = 0xb0, KEY_MEDIA_VOLUME_UP = 0xb2, KEY_MEDIA_PAUSE = 0xb4, KEY_ACPI_POWER = 0xb7, KEY_WEB_BACK = 0xb8, KEY_WEB_HOME = 0xba, KEY_MEDIA_STOP = 0xbb, KEY_ACPI_SLEEP = 0xbf, KEY_COMPUTER = 0xc0, KEY_EMAIL = 0xc8, KEY_NUM_DIVIDE = 0xca, KEY_MEDIA_NEXT = 0xcd, KEY_MEDIA_SELECT = 0xd0, KEY_NUM_ENTER = 0xda, KEY_ACPI_WAKE = 0xde, KEY_END = 0xe9, KEY_LEFT = 0xeb, KEY_HOME = 0xec, KEY_INSERT = 0xf0, KEY_DELETE = 0xf1, KEY_DOWN = 0xf2, KEY_RIGHT = 0xf4, KEY_UP = 0xf5, KEY_PAGE_DOWN = 0xfa, KEY_PAGE_UP = 0xfd, KEY_PRINT_SCREEN = 0xfe, KEY_PAUSE_BREAK = 0xff, KEY_FLAG_MAKE = 0x100 };