167 lines
4.1 KiB
C++
167 lines
4.1 KiB
C++
|
|
/*
|
||
|
|
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.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include "ImprovedKeyboard.h"
|
||
|
|
|
||
|
|
#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
|
||
|
|
0x15|SHIFT, // Y
|
||
|
|
0x14|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
|
||
|
|
};
|
||
|
|
|
||
|
|
uint8_t Keyboard_::getKeycode(uint8_t k){
|
||
|
|
return pgm_read_byte(_asciimap + k);
|
||
|
|
}
|
||
|
|
|
||
|
|
void Keyboard_::useLayoutUS(void) {
|
||
|
|
// Empty
|
||
|
|
}
|