Skip to content

Commit

Permalink
Improved Keylayout definition
Browse files Browse the repository at this point in the history
  • Loading branch information
NicoHood committed Sep 8, 2015
1 parent 9a6f6d4 commit 962b1a7
Showing 1 changed file with 175 additions and 109 deletions.
284 changes: 175 additions & 109 deletions src/ImprovedKeylayouts.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,62 +24,71 @@ THE SOFTWARE.
#pragma once

//================================================================================
// LAYOUT_US_ENGLISH
// Key definitions
//================================================================================

#ifdef LAYOUT_US_ENGLISH

#define KEY_PRINT 0xCE
#define KEY_NUM_LOCK 0xDB
#define KEY_SCROLL_LOCK 0xCF
#define KEY_PAUSE 0xD0
#define KEY_MENU 0xED

// Modifiers
#define KEY_LEFT_CTRL 0x80
#define KEY_LEFT_SHIFT 0x81
#define KEY_LEFT_ALT 0x82
#define KEY_LEFT_GUI 0x83
#define KEY_LEFT_WINDOWS KEY_LEFT_GUI
#define KEY_RIGHT_CTRL 0x84
#define KEY_RIGHT_SHIFT 0x85
#define KEY_RIGHT_ALT 0x86
#define KEY_RIGHT_GUI 0x87
#define KEY_RIGHT_WINDOWS KEY_RIGHT_GUI

#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9
#define KEY_LEFT_ARROW 0xD8
#define KEY_RIGHT_ARROW 0xD7
#define KEY_BACKSPACE 0xB2
// Normal keys
#define KEY_UP_ARROW (RAW_KEYBOARD_UP_ARROW + 136)
#define KEY_DOWN_ARROW (RAW_KEYBOARD_DOWN_ARROW + 136)
#define KEY_LEFT_ARROW (RAW_KEYBOARD_LEFT_ARROW + 136)
#define KEY_RIGHT_ARROW (RAW_KEYBOARD_RIGHT_ARROW + 136)
#define KEY_BACKSPACE (RAW_KEYBOARD_BACKSPACE + 136)
#define KEY_TAB (RAW_KEYBOARD_TAB + 136)
#define KEY_RETURN (RAW_KEYBOARD_RETURN + 136)
#define KEY_ESC (RAW_KEYBOARD_ESC + 136)
#define KEY_INSERT (RAW_KEYBOARD_INSERT + 136)
#define KEY_DELETE (RAW_KEYBOARD_DELETE + 136)
#define KEY_PAGE_UP (RAW_KEYBOARD_PAGE_UP + 136)
#define KEY_PAGE_DOWN (RAW_KEYBOARD_PAGE_DOWN + 136)
#define KEY_HOME (RAW_KEYBOARD_HOME + 136)
#define KEY_END (RAW_KEYBOARD_END + 136)
#define KEY_CAPS_LOCK (RAW_KEYBOARD_CAPS_LOCK + 136)
#define KEY_F1 (RAW_KEYBOARD_F1 + 136)
#define KEY_F2 (RAW_KEYBOARD_F2 + 136)
#define KEY_F3 (RAW_KEYBOARD_F3 + 136)
#define KEY_F4 (RAW_KEYBOARD_F4 + 136)
#define KEY_F5 (RAW_KEYBOARD_F5 + 136)
#define KEY_F6 (RAW_KEYBOARD_F6 + 136)
#define KEY_F7 (RAW_KEYBOARD_F7 + 136)
#define KEY_F8 (RAW_KEYBOARD_F8 + 136)
#define KEY_F9 (RAW_KEYBOARD_F9 + 136)
#define KEY_F10 (RAW_KEYBOARD_F10 + 136)
#define KEY_F11 (RAW_KEYBOARD_F11 + 136)
#define KEY_F12 (RAW_KEYBOARD_F12 + 136)


// New key definitions
#define KEY_PRINT (RAW_KEYBOARD_PRINT + 136)
#define KEY_NUM_LOCK (RAW_KEYBOARD_NUM_LOCK + 136)
#define KEY_SCROLL_LOCK (RAW_KEYBOARD_SCROLL_LOCK + 136)
#define KEY_PAUSE (RAW_KEYBOARD_PAUSE + 136)
#define KEY_MENU (RAW_KEYBOARD_MENU + 136)
#define KEY_SPACE ' '
#define KEY_TAB 0xB3
#define KEY_RETURN 0xB0
#define KEY_ESC 0xB1
#define KEY_INSERT 0xD1
#define KEY_DELETE 0xD4
#define KEY_PAGE_UP 0xD3
#define KEY_PAGE_DOWN 0xD6
#define KEY_HOME 0xD2
#define KEY_END 0xD5
#define KEY_CAPS_LOCK 0xC1
#define KEY_F1 0xC2
#define KEY_F2 0xC3
#define KEY_F3 0xC4
#define KEY_F4 0xC5
#define KEY_F5 0xC6
#define KEY_F6 0xC7
#define KEY_F7 0xC8
#define KEY_F8 0xC9
#define KEY_F9 0xCA
#define KEY_F10 0xCB
#define KEY_F11 0xCC
#define KEY_F12 0xCD
#define KEY_LEFT_WINDOWS KEY_LEFT_GUI
#define KEY_RIGHT_WINDOWS KEY_RIGHT_GUI
#define KEY_PRINTSCREEN KEY_PRINT

// TODO implement Leds
#define LED_NUM_LOCK 0x01
#define LED_CAPS_LOCK 0x02
#define LED_SCROLL_LOCK 0x04

//Raw Keyboard definitions
//================================================================================
// LAYOUT_US_ENGLISH
//================================================================================

#ifdef LAYOUT_US_ENGLISH

#define RAW_KEYBOARD_LEFT_CTRL (1 << 0)
#define RAW_KEYBOARD_LEFT_SHIFT (1 << 1)
#define RAW_KEYBOARD_LEFT_ALT (1 << 2)
Expand All @@ -89,9 +98,6 @@ THE SOFTWARE.
#define RAW_KEYBOARD_RIGHT_ALT (1 << 6)
#define RAW_KEYBOARD_RIGHT_GUI (1 << 7)

#define RAW_KEYBOARD_KEY(key) ((key>='a' && key<='z') ? (0x04 + key-'a') :\
(key>='A' && key<='Z') ? (0x04 + key-'A') : (key>='1' && key<='9') ? (0x1E + key-'1') : 0x27)

#define RAW_KEYBOARD_UP_ARROW 0x52
#define RAW_KEYBOARD_DOWN_ARROW 0x51
#define RAW_KEYBOARD_LEFT_ARROW 0x50
Expand Down Expand Up @@ -120,9 +126,69 @@ THE SOFTWARE.
#define RAW_KEYBOARD_F10 0x43
#define RAW_KEYBOARD_F11 0x44
#define RAW_KEYBOARD_F12 0x45

#define RAW_KEYBOARD_KEY(key) ((key>='a' && key<='z') ? (0x04 + key-'a') :\
(key>='A' && key<='Z') ? (0x04 + key-'A') : (key>='1' && key<='9') ? (0x1E + key-'1') : 0x27)

#define RAW_KEYBOARD_A ( 4 )
#define RAW_KEYBOARD_B ( 5 )
#define RAW_KEYBOARD_C ( 6 )
#define RAW_KEYBOARD_D ( 7 )
#define RAW_KEYBOARD_E ( 8 )
#define RAW_KEYBOARD_F ( 9 )
#define RAW_KEYBOARD_G ( 10 )
#define RAW_KEYBOARD_H ( 11 )
#define RAW_KEYBOARD_I ( 12 )
#define RAW_KEYBOARD_J ( 13 )
#define RAW_KEYBOARD_K ( 14 )
#define RAW_KEYBOARD_L ( 15 )
#define RAW_KEYBOARD_M ( 16 )
#define RAW_KEYBOARD_N ( 17 )
#define RAW_KEYBOARD_O ( 18 )
#define RAW_KEYBOARD_P ( 19 )
#define RAW_KEYBOARD_Q ( 20 )
#define RAW_KEYBOARD_R ( 21 )
#define RAW_KEYBOARD_S ( 22 )
#define RAW_KEYBOARD_T ( 23 )
#define RAW_KEYBOARD_U ( 24 )
#define RAW_KEYBOARD_V ( 25 )
#define RAW_KEYBOARD_W ( 26 )
#define RAW_KEYBOARD_X ( 27 )
#define RAW_KEYBOARD_Y ( 28 )
#define RAW_KEYBOARD_Z ( 29 )
#define RAW_KEYBOARD_1 ( 30 )
#define RAW_KEYBOARD_2 ( 31 )
#define RAW_KEYBOARD_3 ( 32 )
#define RAW_KEYBOARD_4 ( 33 )
#define RAW_KEYBOARD_5 ( 34 )
#define RAW_KEYBOARD_6 ( 35 )
#define RAW_KEYBOARD_7 ( 36 )
#define RAW_KEYBOARD_8 ( 37 )
#define RAW_KEYBOARD_9 ( 38 )
#define RAW_KEYBOARD_0 ( 39 )
#define RAW_KEYBOARD_ENTER ( 40 )
#define RAW_KEYBOARD_ESC ( 41 )
#define RAW_KEYBOARD_BACKSPACE ( 42 )
#define RAW_KEYBOARD_TAB ( 43 )
#define RAW_KEYBOARD_SPACE ( 44 )
#define RAW_KEYBOARD_MINUS ( 45 )
#define RAW_KEYBOARD_EQUAL ( 46 )
#define RAW_KEYBOARD_LEFT_BRACE ( 47 )
#define RAW_KEYBOARD_RIGHT_BRACE ( 48 )
#define RAW_KEYBOARD_BACKSLASH ( 49 )
#define RAW_KEYBOARD_NON_US_NUM ( 50 )
#define RAW_KEYBOARD_SEMICOLON ( 51 )
#define RAW_KEYBOARD_QUOTE ( 52 )
#define RAW_KEYBOARD_TILDE ( 53 )
#define RAW_KEYBOARD_COMMA ( 54 )
#define RAW_KEYBOARD_PERIOD ( 55 )
#define RAW_KEYBOARD_SLASH ( 56 )

#define RAW_KEYBOARD_PRINT 0x46
#define RAW_KEYBOARD_NUM_LOCK 0x53
#define RAW_KEYBOARD_SCROLL_LOCK 0x47
#define RAW_KEYBOARD_PAUSE 0x48
#define RAW_KEYBOARD_MENU 0x65

#define SHIFT 0x80
static const uint8_t _asciimap[128] PROGMEM =
Expand All @@ -135,9 +201,9 @@ static const uint8_t _asciimap[128] PROGMEM =
0x00, // ENQ
0x00, // ACK
0x00, // BEL
0x2a, // BS Backspace
0x2b, // TAB Tab
0x28, // LF Enter
RAW_KEYBOARD_BACKSPACE, // BS Backspace
RAW_KEYBOARD_TAB, // TAB Tab
RAW_KEYBOARD_RETURN, // LF Enter
0x00, // VT
0x00, // FF
0x00, // CR
Expand All @@ -160,7 +226,7 @@ static const uint8_t _asciimap[128] PROGMEM =
0x00, // RS
0x00, // US

0x2c, // ' '
RAW_KEYBOARD_SPACE, // ' '
0x1e|SHIFT, // !
0x34|SHIFT, // "
0x20|SHIFT, // #
Expand All @@ -173,84 +239,84 @@ static const uint8_t _asciimap[128] PROGMEM =
0x25|SHIFT, // *
0x2e|SHIFT, // +
0x36, // ,
0x2d, // -
RAW_KEYBOARD_MINUS, // -
0x37, // .
0x38, // /
0x27, // 0
0x1e, // 1
0x1f, // 2
0x20, // 3
0x21, // 4
0x22, // 5
0x23, // 6
0x24, // 7
0x25, // 8
0x26, // 9
RAW_KEYBOARD_0, // 0
RAW_KEYBOARD_1, // 1
RAW_KEYBOARD_2, // 2
RAW_KEYBOARD_3, // 3
RAW_KEYBOARD_4, // 4
RAW_KEYBOARD_5, // 5
RAW_KEYBOARD_6, // 6
RAW_KEYBOARD_7, // 7
RAW_KEYBOARD_8, // 8
RAW_KEYBOARD_9, // 9
0x33|SHIFT, // :
0x33, // ;
0x36|SHIFT, // <
0x2e, // =
0x37|SHIFT, // >
0x38|SHIFT, // ?
0x1f|SHIFT, // @
0x04|SHIFT, // A
0x05|SHIFT, // B
0x06|SHIFT, // C
0x07|SHIFT, // D
0x08|SHIFT, // E
0x09|SHIFT, // F
0x0a|SHIFT, // G
0x0b|SHIFT, // H
0x0c|SHIFT, // I
0x0d|SHIFT, // J
0x0e|SHIFT, // K
0x0f|SHIFT, // L
0x10|SHIFT, // M
0x11|SHIFT, // N
0x12|SHIFT, // O
0x13|SHIFT, // P
0x14|SHIFT, // Q
0x15|SHIFT, // R
0x16|SHIFT, // S
0x17|SHIFT, // T
0x18|SHIFT, // U
0x19|SHIFT, // V
0x1a|SHIFT, // W
0x1b|SHIFT, // X
0x1c|SHIFT, // Y
0x1d|SHIFT, // Z
RAW_KEYBOARD_A|SHIFT, // A
RAW_KEYBOARD_B|SHIFT, // B
RAW_KEYBOARD_C|SHIFT, // C
RAW_KEYBOARD_D|SHIFT, // D
RAW_KEYBOARD_E|SHIFT, // E
RAW_KEYBOARD_F|SHIFT, // F
RAW_KEYBOARD_G|SHIFT, // G
RAW_KEYBOARD_H|SHIFT, // H
RAW_KEYBOARD_I|SHIFT, // I
RAW_KEYBOARD_J|SHIFT, // J
RAW_KEYBOARD_K|SHIFT, // K
RAW_KEYBOARD_L|SHIFT, // L
RAW_KEYBOARD_M|SHIFT, // M
RAW_KEYBOARD_N|SHIFT, // N
RAW_KEYBOARD_O|SHIFT, // O
RAW_KEYBOARD_P|SHIFT, // P
RAW_KEYBOARD_Q|SHIFT, // Q
RAW_KEYBOARD_R|SHIFT, // R
RAW_KEYBOARD_S|SHIFT, // S
RAW_KEYBOARD_T|SHIFT, // T
RAW_KEYBOARD_U|SHIFT, // U
RAW_KEYBOARD_V|SHIFT, // V
RAW_KEYBOARD_W|SHIFT, // W
RAW_KEYBOARD_X|SHIFT, // X
RAW_KEYBOARD_Y|SHIFT, // Y
RAW_KEYBOARD_Z|SHIFT, // Z
0x2f, // [
0x31, // bslash
0x30, // ]
0x23|SHIFT, // ^
0x2d|SHIFT, // _
0x35, // `
0x04, // a
0x05, // b
0x06, // c
0x07, // d
0x08, // e
0x09, // f
0x0a, // g
0x0b, // h
0x0c, // i
0x0d, // j
0x0e, // k
0x0f, // l
0x10, // m
0x11, // n
0x12, // o
0x13, // p
0x14, // q
0x15, // r
0x16, // s
0x17, // t
0x18, // u
0x19, // v
0x1a, // w
0x1b, // x
0x1c, // y
0x1d, // z
RAW_KEYBOARD_A, // a
RAW_KEYBOARD_B, // b
RAW_KEYBOARD_C, // c
RAW_KEYBOARD_D, // d
RAW_KEYBOARD_E, // e
RAW_KEYBOARD_F, // f
RAW_KEYBOARD_G, // g
RAW_KEYBOARD_H, // h
RAW_KEYBOARD_I, // i
RAW_KEYBOARD_J, // j
RAW_KEYBOARD_K, // k
RAW_KEYBOARD_L, // l
RAW_KEYBOARD_M, // m
RAW_KEYBOARD_N, // n
RAW_KEYBOARD_O, // o
RAW_KEYBOARD_P, // p
RAW_KEYBOARD_Q, // q
RAW_KEYBOARD_R, // r
RAW_KEYBOARD_S, // s
RAW_KEYBOARD_T, // t
RAW_KEYBOARD_U, // u
RAW_KEYBOARD_V, // v
RAW_KEYBOARD_W, // w
RAW_KEYBOARD_X, // x
RAW_KEYBOARD_Y, // y
RAW_KEYBOARD_Z, // z
0x2f|SHIFT, //
0x31|SHIFT, // |
0x30|SHIFT, // }
Expand Down

0 comments on commit 962b1a7

Please sign in to comment.