summaryrefslogtreecommitdiffstats
path: root/app/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/keymap.c')
-rw-r--r--app/keymap.c142
1 files changed, 142 insertions, 0 deletions
diff --git a/app/keymap.c b/app/keymap.c
new file mode 100644
index 0000000..f6e529d
--- /dev/null
+++ b/app/keymap.c
@@ -0,0 +1,142 @@
+#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);
+
+}
+