#include "project.h" static int at_to_usb_keyboard[AT_SC_MAX]={ [ AT_SC_GRAVE ] = USB_K_SC_GRAVE, [ AT_SC_1 ] = USB_K_SC_1, [ AT_SC_2 ] = USB_K_SC_2, [ AT_SC_3 ] = USB_K_SC_3, [ AT_SC_4 ] = USB_K_SC_4, [ AT_SC_5 ] = USB_K_SC_5, [ AT_SC_6 ] = USB_K_SC_6, [ AT_SC_7 ] = USB_K_SC_7, [ AT_SC_8 ] = USB_K_SC_8, [ AT_SC_9 ] = USB_K_SC_9, [ AT_SC_0 ] = USB_K_SC_0, [ AT_SC_MINUS ] = USB_K_SC_MINUS, [ AT_SC_EQUAL ] = USB_K_SC_EQUAL, [ AT_SC_BACKSPACE ] = USB_K_SC_BACKSPACE, [ AT_SC_TAB ] = USB_K_SC_TAB, [ AT_SC_Q ] = USB_K_SC_Q, [ AT_SC_W ] = USB_K_SC_W, [ AT_SC_E ] = USB_K_SC_E, [ AT_SC_R ] = USB_K_SC_R, [ AT_SC_T ] = USB_K_SC_T, [ AT_SC_Y ] = USB_K_SC_Y, [ AT_SC_U ] = USB_K_SC_U, [ AT_SC_I ] = USB_K_SC_I, [ AT_SC_O ] = USB_K_SC_O, [ AT_SC_P ] = USB_K_SC_P, [ AT_SC_LEFTBRACE ] = USB_K_SC_LEFTBRACE, [ AT_SC_RIGHTBRACE ] = USB_K_SC_RIGHTBRACE, [ AT_SC_BACKSLASH ] = USB_K_SC_BACKSLASH, [ AT_SC_CAPSLOCK ] = USB_K_SC_CAPSLOCK, [ AT_SC_A ] = USB_K_SC_A, [ AT_SC_S ] = USB_K_SC_S, [ AT_SC_D ] = USB_K_SC_D, [ AT_SC_F ] = USB_K_SC_F, [ AT_SC_G ] = USB_K_SC_G, [ AT_SC_H ] = USB_K_SC_H, [ AT_SC_J ] = USB_K_SC_J, [ AT_SC_K ] = USB_K_SC_K, [ AT_SC_L ] = USB_K_SC_L, [ AT_SC_SEMICOLON ] = USB_K_SC_SEMICOLON, [ AT_SC_APOSTROPHE ] = USB_K_SC_APOSTROPHE, [ AT_SC_ENTER ] = USB_K_SC_ENTER, [ AT_SC_LEFTSHIFT ] = USB_K_SC_LEFTSHIFT, [ AT_SC_Z ] = USB_K_SC_Z, [ AT_SC_X ] = USB_K_SC_X, [ AT_SC_C ] = USB_K_SC_C, [ AT_SC_V ] = USB_K_SC_V, [ AT_SC_B ] = USB_K_SC_B, [ AT_SC_N ] = USB_K_SC_N, [ AT_SC_M ] = USB_K_SC_M, [ AT_SC_COMMA ] = USB_K_SC_COMMA, [ AT_SC_DOT ] = USB_K_SC_DOT, [ AT_SC_SLASH ] = USB_K_SC_SLASH, [ AT_SC_RIGHTSHIFT ] = USB_K_SC_RIGHTSHIFT, [ AT_SC_LEFTCTRL ] = USB_K_SC_LEFTCTRL, [ AT_SC_LEFTALT ] = USB_K_SC_LEFTALT, [ AT_SC_SPACE ] = USB_K_SC_SPACE, [ AT_SC_RIGHTALT ] = USB_K_SC_RIGHTALT, [ AT_SC_RIGHTCTRL ] = USB_K_SC_RIGHTCTRL, [ AT_SC_INSERT ] = USB_K_SC_INSERT, [ AT_SC_DELETE ] = USB_K_SC_DELETE, [ AT_SC_LEFT ] = USB_K_SC_LEFT, [ AT_SC_HOME ] = USB_K_SC_HOME, [ AT_SC_END ] = USB_K_SC_END, [ AT_SC_UP ] = USB_K_SC_UP, [ AT_SC_DOWN ] = USB_K_SC_DOWN, [ AT_SC_PAGEUP ] = USB_K_SC_PAGEUP, [ AT_SC_PAGEDOWN ] = USB_K_SC_PAGEDOWN, [ AT_SC_RIGHT ] = USB_K_SC_RIGHT, [ AT_SC_NUMLOCK ] = USB_K_SC_NUMLOCK, [ AT_SC_KP7 ] = USB_K_SC_KP7, [ AT_SC_KP4 ] = USB_K_SC_KP4, [ AT_SC_KP1 ] = USB_K_SC_KP1, [ AT_SC_KPSLASH ] = USB_K_SC_KPSLASH, [ AT_SC_KP8 ] = USB_K_SC_KP8, [ AT_SC_KP5 ] = USB_K_SC_KP5, [ AT_SC_KP2 ] = USB_K_SC_KP2, [ AT_SC_KP0 ] = USB_K_SC_KP0, [ AT_SC_KPASTERISK ] = USB_K_SC_KPASTERISK, [ AT_SC_KP9 ] = USB_K_SC_KP9, [ AT_SC_KP6 ] = USB_K_SC_KP6, [ AT_SC_KP3 ] = USB_K_SC_KP3, [ AT_SC_KPDOT ] = USB_K_SC_KPDOT, [ AT_SC_KPMINUS ] = USB_K_SC_KPMINUS, [ AT_SC_KPPLUS ] = USB_K_SC_KPPLUS, [ AT_SC_KPENTER ] = USB_K_SC_KPENTER, [ AT_SC_ESC ] = USB_K_SC_ESC, [ AT_SC_F1 ] = USB_K_SC_F1, [ AT_SC_F2 ] = USB_K_SC_F2, [ AT_SC_F3 ] = USB_K_SC_F3, [ AT_SC_F4 ] = USB_K_SC_F4, [ AT_SC_F5 ] = USB_K_SC_F5, [ AT_SC_F6 ] = USB_K_SC_F6, [ AT_SC_F7 ] = USB_K_SC_F7, [ AT_SC_F8 ] = USB_K_SC_F8, [ AT_SC_F9 ] = USB_K_SC_F9, [ AT_SC_F10 ] = USB_K_SC_F10, [ AT_SC_F11 ] = USB_K_SC_F11, [ AT_SC_F12 ] = USB_K_SC_F12, [ AT_SC_SYSRQ ] = USB_K_SC_SYSRQ, [ AT_SC_SCROLLLOCK ] = USB_K_SC_SCROLLLOCK, [ AT_SC_PAUSE ] = USB_K_SC_PAUSE, [ AT_SC_LEFTMETA ] = USB_K_SC_LEFTMETA, [ AT_SC_RIGHTMETA ] = USB_K_SC_RIGHTMETA, [ AT_SC_MENU ] = USB_K_SC_MENU, [ AT_SC_POWER ] = USB_K_SC_POWER, [ AT_SC_SLEEP ] = USB_K_SC_SLEEP, // [ AT_SC_WAKEUP ] = USB_K_SC_WAKEUP, // [ AT_SC_DBE_KATAKANA ] = USB_K_SC_DBE_KATAKANA, // [ AT_SC_DBE_SBCSCHAR ] = USB_K_SC_DBE_SBCSCHAR, // [ AT_SC_CONVERT ] = USB_K_SC_CONVERT, // [ AT_SC_NONCONVERT ] = USB_K_SC_NONCONVERT, }; static int at_to_usb_consumer[AT_SC_MAX]={ [ AT_SC_HOMEPAGE ] = USB_C_BF_HOMEPAGE, [ AT_SC_MUTE ] = USB_C_BF_MUTE, [ AT_SC_VOLUMEUP ] = USB_C_BF_VOLUMEUP, [ AT_SC_VOLUMEDOWN ] = USB_C_BF_VOLUMEDOWN, [ AT_SC_KEY_PREVIOUSSONG ] = USB_C_BF_PREVIOUSSONG, [ AT_SC_KEY_PLAYPAUSE ] = USB_C_BF_PLAYPAUSE, [ AT_SC_KEY_STOPCD ] = USB_C_BF_STOPCD, [ AT_SC_KEY_NEXTSONG ] = USB_C_BF_NEXTSONG, }; void scancode_dispatch(int key,int updown) { if (at_to_usb_keyboard[key]) keyboard_dispatch(at_to_usb_keyboard[key],updown); if (at_to_usb_consumer[key]) consumer_dispatch(at_to_usb_consumer[key],updown); }