-
-
Notifications
You must be signed in to change notification settings - Fork 407
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
forgot in the last commits to add it
- Loading branch information
Showing
1 changed file
with
265 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,265 @@ | ||
/* | ||
Copyright (c) 2014-2015 NicoHood | ||
See the readme for credit to other people. | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
*/ | ||
|
||
#pragma once | ||
|
||
//================================================================================ | ||
// LAYOUT_US_ENGLISH | ||
//================================================================================ | ||
|
||
#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 | ||
|
||
#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 | ||
#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 LED_NUM_LOCK 0x01 | ||
#define LED_CAPS_LOCK 0x02 | ||
#define LED_SCROLL_LOCK 0x04 | ||
|
||
//Raw Keyboard definitions | ||
#define RAW_KEYBOARD_LEFT_CTRL (1 << 0) | ||
#define RAW_KEYBOARD_LEFT_SHIFT (1 << 1) | ||
#define RAW_KEYBOARD_LEFT_ALT (1 << 2) | ||
#define RAW_KEYBOARD_LEFT_GUI (1 << 3) | ||
#define RAW_KEYBOARD_RIGHT_CTRL (1 << 4) | ||
#define RAW_KEYBOARD_RIGHT_SHIFT (1 << 5) | ||
#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 | ||
#define RAW_KEYBOARD_RIGHT_ARROW 0x4F | ||
#define RAW_KEYBOARD_SPACEBAR 0x2C | ||
#define RAW_KEYBOARD_BACKSPACE 0x2A | ||
#define RAW_KEYBOARD_TAB 0x2B | ||
#define RAW_KEYBOARD_RETURN 0x28 | ||
#define RAW_KEYBOARD_ESC 0x29 | ||
#define RAW_KEYBOARD_INSERT 0x49 | ||
#define RAW_KEYBOARD_DELETE 0x4C | ||
#define RAW_KEYBOARD_PAGE_UP 0x4B | ||
#define RAW_KEYBOARD_PAGE_DOWN 0x4E | ||
#define RAW_KEYBOARD_HOME 0x4A | ||
#define RAW_KEYBOARD_END 0x4D | ||
#define RAW_KEYBOARD_CAPS_LOCK 0x39 | ||
#define RAW_KEYBOARD_F1 0x3A | ||
#define RAW_KEYBOARD_F2 0x3B | ||
#define RAW_KEYBOARD_F3 0x3C | ||
#define RAW_KEYBOARD_F4 0x3D | ||
#define RAW_KEYBOARD_F5 0x3E | ||
#define RAW_KEYBOARD_F6 0x3F | ||
#define RAW_KEYBOARD_F7 0x40 | ||
#define RAW_KEYBOARD_F8 0x41 | ||
#define RAW_KEYBOARD_F9 0x42 | ||
#define RAW_KEYBOARD_F10 0x43 | ||
#define RAW_KEYBOARD_F11 0x44 | ||
#define RAW_KEYBOARD_F12 0x45 | ||
#define RAW_KEYBOARD_PRINT 0x46 | ||
#define RAW_KEYBOARD_SCROLL_LOCK 0x47 | ||
#define RAW_KEYBOARD_PAUSE 0x48 | ||
|
||
#define SHIFT 0x80 | ||
static const uint8_t _asciimap[128] PROGMEM = | ||
{ | ||
0x00, // NUL | ||
0x00, // SOH | ||
0x00, // STX | ||
0x00, // ETX | ||
0x00, // EOT | ||
0x00, // ENQ | ||
0x00, // ACK | ||
0x00, // BEL | ||
0x2a, // BS Backspace | ||
0x2b, // TAB Tab | ||
0x28, // LF Enter | ||
0x00, // VT | ||
0x00, // FF | ||
0x00, // CR | ||
0x00, // SO | ||
0x00, // SI | ||
0x00, // DEL | ||
0x00, // DC1 | ||
0x00, // DC2 | ||
0x00, // DC3 | ||
0x00, // DC4 | ||
0x00, // NAK | ||
0x00, // SYN | ||
0x00, // ETB | ||
0x00, // CAN | ||
0x00, // EM | ||
0x00, // SUB | ||
0x00, // ESC | ||
0x00, // FS | ||
0x00, // GS | ||
0x00, // RS | ||
0x00, // US | ||
|
||
0x2c, // ' ' | ||
0x1e|SHIFT, // ! | ||
0x34|SHIFT, // " | ||
0x20|SHIFT, // # | ||
0x21|SHIFT, // $ | ||
0x22|SHIFT, // % | ||
0x24|SHIFT, // & | ||
0x34, // ' | ||
0x26|SHIFT, // ( | ||
0x27|SHIFT, // ) | ||
0x25|SHIFT, // * | ||
0x2e|SHIFT, // + | ||
0x36, // , | ||
0x2d, // - | ||
0x37, // . | ||
0x38, // / | ||
0x27, // 0 | ||
0x1e, // 1 | ||
0x1f, // 2 | ||
0x20, // 3 | ||
0x21, // 4 | ||
0x22, // 5 | ||
0x23, // 6 | ||
0x24, // 7 | ||
0x25, // 8 | ||
0x26, // 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 | ||
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 | ||
0x2f|SHIFT, // | ||
0x31|SHIFT, // | | ||
0x30|SHIFT, // } | ||
0x35|SHIFT, // ~ | ||
0 // DEL | ||
}; | ||
|
||
#else | ||
|
||
//TODO other layouts | ||
|
||
#endif |