feat(usb_hid_keyboard): Adds Keyboard Layout and Sends reports just for Modifier Keys (#10591)
* feat(usb_kb): add keyboard layouts. new pt_br layout * feat(usb_kb): add kb layout and fixes modifier key press * feat(usb_kb): update cmakelists.txt to add new kb layout code * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
This commit is contained in:
parent
1a8e53fe47
commit
54a7a3ee9a
23 changed files with 1835 additions and 148 deletions
|
|
@ -205,6 +205,16 @@ set(ARDUINO_LIBRARY_USB_SRCS
|
|||
libraries/USB/src/USBMIDI.cpp
|
||||
libraries/USB/src/USBHIDMouse.cpp
|
||||
libraries/USB/src/USBHIDKeyboard.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_da_DK.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_de_DE.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_en_US.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_es_ES.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_fr_FR.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_hu_HU.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_it_IT.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_pt_BR.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_pt_PT.cpp
|
||||
libraries/USB/src/keyboardLayout/KeyboardLayout_sv_SE.cpp
|
||||
libraries/USB/src/USBHIDGamepad.cpp
|
||||
libraries/USB/src/USBHIDConsumerControl.cpp
|
||||
libraries/USB/src/USBHIDSystemControl.cpp
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#if CONFIG_TINYUSB_HID_ENABLED
|
||||
|
||||
#include "USBHIDKeyboard.h"
|
||||
#include "keyboardLayout/KeyboardLayout.h"
|
||||
|
||||
ESP_EVENT_DEFINE_BASE(ARDUINO_USB_HID_KEYBOARD_EVENTS);
|
||||
esp_err_t arduino_usb_event_post(esp_event_base_t event_base, int32_t event_id, void *event_data, size_t event_data_size, TickType_t ticks_to_wait);
|
||||
|
|
@ -31,7 +32,7 @@ esp_err_t arduino_usb_event_handler_register_with(esp_event_base_t event_base, i
|
|||
|
||||
static const uint8_t report_descriptor[] = {TUD_HID_REPORT_DESC_KEYBOARD(HID_REPORT_ID(HID_REPORT_ID_KEYBOARD))};
|
||||
|
||||
USBHIDKeyboard::USBHIDKeyboard() : hid(HID_ITF_PROTOCOL_KEYBOARD), shiftKeyReports(true) {
|
||||
USBHIDKeyboard::USBHIDKeyboard() : hid(HID_ITF_PROTOCOL_KEYBOARD), _asciimap(KeyboardLayout_en_US), shiftKeyReports(false) {
|
||||
static bool initialized = false;
|
||||
if (!initialized) {
|
||||
initialized = true;
|
||||
|
|
@ -45,7 +46,8 @@ uint16_t USBHIDKeyboard::_onGetDescriptor(uint8_t *dst) {
|
|||
return sizeof(report_descriptor);
|
||||
}
|
||||
|
||||
void USBHIDKeyboard::begin() {
|
||||
void USBHIDKeyboard::begin(const uint8_t *layout) {
|
||||
_asciimap = layout;
|
||||
hid.begin();
|
||||
}
|
||||
|
||||
|
|
@ -80,139 +82,6 @@ void USBHIDKeyboard::setShiftKeyReports(bool set) {
|
|||
shiftKeyReports = set;
|
||||
}
|
||||
|
||||
#define SHIFT 0x80
|
||||
const uint8_t _asciimap[128] = {
|
||||
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
|
||||
};
|
||||
|
||||
size_t USBHIDKeyboard::pressRaw(uint8_t k) {
|
||||
uint8_t i;
|
||||
if (k >= 0xE0 && k < 0xE8) {
|
||||
|
|
@ -234,7 +103,7 @@ size_t USBHIDKeyboard::pressRaw(uint8_t k) {
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else if (_keyReport.modifiers == 0) {
|
||||
//not a modifier and not a key
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -255,11 +124,8 @@ size_t USBHIDKeyboard::releaseRaw(uint8_t k) {
|
|||
_keyReport.keys[i] = 0x00;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//not a modifier and not a key
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Allowing for the release of a modifier key without a corresponding press
|
||||
sendReport(&_keyReport);
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -274,19 +140,26 @@ size_t USBHIDKeyboard::press(uint8_t k) {
|
|||
} else if (k >= 0x80) { // it's a modifier key
|
||||
_keyReport.modifiers |= (1 << (k - 0x80));
|
||||
k = 0;
|
||||
} else { // it's a printing key
|
||||
} else { // it's a printing key (k is a ASCII 0..127)
|
||||
k = _asciimap[k];
|
||||
if (!k) {
|
||||
return 0;
|
||||
}
|
||||
if (k & 0x80) { // it's a capital letter or other character reached with shift
|
||||
if ((k & SHIFT) == SHIFT) { // it's a capital letter or other character reached with shift
|
||||
// At boot, some PCs need a separate report with the shift key down like a real keyboard.
|
||||
if (shiftKeyReports) {
|
||||
pressRaw(HID_KEY_SHIFT_LEFT);
|
||||
} else {
|
||||
_keyReport.modifiers |= 0x02; // the left shift modifier
|
||||
}
|
||||
k &= 0x7F;
|
||||
k &= ~SHIFT;
|
||||
}
|
||||
if ((k & ALT_GR) == ALT_GR) {
|
||||
_keyReport.modifiers |= 0x40; // AltGr = right Alt
|
||||
k &= ~ALT_GR;
|
||||
}
|
||||
if (k == ISO_REPLACEMENT) {
|
||||
k = ISO_KEY;
|
||||
}
|
||||
}
|
||||
return pressRaw(k);
|
||||
|
|
@ -306,15 +179,22 @@ size_t USBHIDKeyboard::release(uint8_t k) {
|
|||
if (!k) {
|
||||
return 0;
|
||||
}
|
||||
if (k & 0x80) { // it's a capital letter or other character reached with shift
|
||||
if ((k & SHIFT) == SHIFT) { // it's a capital letter or other character reached with shift
|
||||
if (shiftKeyReports) {
|
||||
releaseRaw(k & 0x7F); // Release key without shift modifier
|
||||
k = HID_KEY_SHIFT_LEFT; // Below, release shift modifier
|
||||
} else {
|
||||
_keyReport.modifiers &= ~(0x02); // the left shift modifier
|
||||
k &= 0x7F;
|
||||
k &= ~SHIFT;
|
||||
}
|
||||
}
|
||||
if ((k & ALT_GR) == ALT_GR) {
|
||||
_keyReport.modifiers &= ~(0x40); // AltGr = right Alt
|
||||
k &= ~ALT_GR;
|
||||
}
|
||||
if (k == ISO_REPLACEMENT) {
|
||||
k = ISO_KEY;
|
||||
}
|
||||
}
|
||||
return releaseRaw(k);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,20 +50,32 @@ typedef union {
|
|||
uint8_t leds;
|
||||
} arduino_usb_hid_keyboard_event_data_t;
|
||||
|
||||
// Supported keyboard layouts
|
||||
extern const uint8_t KeyboardLayout_de_DE[];
|
||||
extern const uint8_t KeyboardLayout_en_US[];
|
||||
extern const uint8_t KeyboardLayout_es_ES[];
|
||||
extern const uint8_t KeyboardLayout_fr_FR[];
|
||||
extern const uint8_t KeyboardLayout_it_IT[];
|
||||
extern const uint8_t KeyboardLayout_pt_PT[];
|
||||
extern const uint8_t KeyboardLayout_sv_SE[];
|
||||
extern const uint8_t KeyboardLayout_da_DK[];
|
||||
extern const uint8_t KeyboardLayout_hu_HU[];
|
||||
extern const uint8_t KeyboardLayout_pt_BR[];
|
||||
|
||||
#define KEY_LEFT_CTRL 0x80
|
||||
#define KEY_LEFT_SHIFT 0x81
|
||||
#define KEY_LEFT_ALT 0x82
|
||||
#define KEY_LEFT_GUI 0x83
|
||||
#define KEY_RIGHT_CTRL 0x84
|
||||
#define KEY_RIGHT_SHIFT 0x85
|
||||
#define KEY_RIGHT_ALT 0x86
|
||||
#define KEY_RIGHT_ALT 0x86 // AltGr (Right Alt) Key
|
||||
#define KEY_RIGHT_GUI 0x87
|
||||
|
||||
#define KEY_UP_ARROW 0xDA
|
||||
#define KEY_DOWN_ARROW 0xD9
|
||||
#define KEY_LEFT_ARROW 0xD8
|
||||
#define KEY_RIGHT_ARROW 0xD7
|
||||
#define KEY_MENU 0xFE
|
||||
#define KEY_MENU 0xED // "Keyboard Application" in USB standard
|
||||
#define KEY_SPACE 0x20
|
||||
#define KEY_BACKSPACE 0xB2
|
||||
#define KEY_TAB 0xB3
|
||||
|
|
@ -111,6 +123,24 @@ typedef union {
|
|||
#define LED_COMPOSE 0x08
|
||||
#define LED_KANA 0x10
|
||||
|
||||
// Numeric keypad
|
||||
#define KEY_KP_SLASH 0xDC
|
||||
#define KEY_KP_ASTERISK 0xDD
|
||||
#define KEY_KP_MINUS 0xDE
|
||||
#define KEY_KP_PLUS 0xDF
|
||||
#define KEY_KP_ENTER 0xE0
|
||||
#define KEY_KP_1 0xE1
|
||||
#define KEY_KP_2 0xE2
|
||||
#define KEY_KP_3 0xE3
|
||||
#define KEY_KP_4 0xE4
|
||||
#define KEY_KP_5 0xE5
|
||||
#define KEY_KP_6 0xE6
|
||||
#define KEY_KP_7 0xE7
|
||||
#define KEY_KP_8 0xE8
|
||||
#define KEY_KP_9 0xE9
|
||||
#define KEY_KP_0 0xEA
|
||||
#define KEY_KP_DOT 0xEB
|
||||
|
||||
// Low level key report: up to 6 keys and shift, ctrl etc at once
|
||||
typedef struct {
|
||||
uint8_t modifiers;
|
||||
|
|
@ -122,11 +152,12 @@ class USBHIDKeyboard : public USBHIDDevice, public Print {
|
|||
private:
|
||||
USBHID hid;
|
||||
KeyReport _keyReport;
|
||||
const uint8_t *_asciimap;
|
||||
bool shiftKeyReports;
|
||||
|
||||
public:
|
||||
USBHIDKeyboard(void);
|
||||
void begin(void);
|
||||
void begin(const uint8_t *layout = KeyboardLayout_en_US);
|
||||
void end(void);
|
||||
size_t write(uint8_t k);
|
||||
size_t write(const uint8_t *buffer, size_t size);
|
||||
|
|
|
|||
68
libraries/USB/src/keyboardLayout/KeyboardLayout.h
Normal file
68
libraries/USB/src/keyboardLayout/KeyboardLayout.h
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
KeyboardLayout.h
|
||||
|
||||
This file is not part of the public API. It is meant to be included
|
||||
only in Keyboard.cpp and the keyboard layout files. Layout files map
|
||||
ASCII character codes to keyboard scan codes (technically, to USB HID
|
||||
Usage codes), possibly altered by the SHIFT or ALT_GR modifiers.
|
||||
Non-ACSII characters (anything outside the 7-bit range NUL..DEL) are
|
||||
not supported.
|
||||
|
||||
== Creating your own layout ==
|
||||
|
||||
In order to create your own layout file, copy an existing layout that
|
||||
is similar to yours, then modify it to use the correct keys. The
|
||||
layout is an array in ASCII order. Each entry contains a scan code,
|
||||
possibly modified by "|SHIFT" or "|ALT_GR", as in this excerpt from
|
||||
the Italian layout:
|
||||
|
||||
0x35, // bslash
|
||||
0x30|ALT_GR, // ]
|
||||
0x2e|SHIFT, // ^
|
||||
|
||||
Do not change the control characters (those before scan code 0x2c,
|
||||
corresponding to space). Do not attempt to grow the table past DEL. Do
|
||||
not use both SHIFT and ALT_GR on the same character: this is not
|
||||
supported. Unsupported characters should have 0x00 as scan code.
|
||||
|
||||
For a keyboard with an ISO physical layout, use the scan codes below:
|
||||
|
||||
+---+---+---+---+---+---+---+---+---+---+---+---+---+-------+
|
||||
|35 |1e |1f |20 |21 |22 |23 |24 |25 |26 |27 |2d |2e |BackSp |
|
||||
+---+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-----+
|
||||
| Tab |14 |1a |08 |15 |17 |1c |18 |0c |12 |13 |2f |30 | Ret |
|
||||
+-----++--++--++--++--++--++--++--++--++--++--++--++--++ |
|
||||
|CapsL |04 |16 |07 |09 |0a |0b |0d |0e |0f |33 |34 |31 | |
|
||||
+----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+----+
|
||||
|Shi.|32 |1d |1b |06 |19 |05 |11 |10 |36 |37 |38 | Shift |
|
||||
+----+---++--+-+-+---+---+---+---+---+--++---+---++----+----+
|
||||
|Ctrl|Win |Alt | |AlGr|Win |Menu|Ctrl|
|
||||
+----+----+----+------------------------+----+----+----+----+
|
||||
|
||||
The ANSI layout is identical except that key 0x31 is above (rather
|
||||
than next to) Return, and there is not key 0x32.
|
||||
|
||||
Give a unique name to the layout array, then declare it in Keyboard.h
|
||||
with a line of the form:
|
||||
|
||||
extern const uint8_t KeyboardLayout_xx_YY[];
|
||||
|
||||
== Encoding details ==
|
||||
|
||||
All scan codes are less than 0x80, which makes bit 7 available to
|
||||
signal that a modifier (Shift or AltGr) is needed to generate the
|
||||
character. With only one exception, keys that are used with modifiers
|
||||
have scan codes that are less than 0x40. This makes bit 6 available
|
||||
to signal whether the modifier is Shift or AltGr. The exception is
|
||||
0x64, the key next next to Left Shift on the ISO layout (and absent
|
||||
from the ANSI layout). We handle it by replacing its value by 0x32 in
|
||||
the layout arrays.
|
||||
*/
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
// Modifier keys for _asciimap[] table (not to be used directly)
|
||||
#define SHIFT 0x80
|
||||
#define ALT_GR 0x40
|
||||
#define ISO_KEY 0x64
|
||||
#define ISO_REPLACEMENT 0x32
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_da_DK.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_da_DK.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Danish keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_da_DK[128] = {
|
||||
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, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x20 | SHIFT, // #
|
||||
0x21 | ALT_GR, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x23 | SHIFT, // &
|
||||
0x31, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x31 | SHIFT, // *
|
||||
0x2d, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x24 | SHIFT, // /
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | SHIFT, // ;
|
||||
0x32, // <
|
||||
0x27 | SHIFT, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x2d | SHIFT, // ?
|
||||
0x1f | ALT_GR, // @
|
||||
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
|
||||
0x25 | ALT_GR, // [
|
||||
0x32 | ALT_GR, // bslash
|
||||
0x26 | ALT_GR, // ]
|
||||
0x00, // ^ not supported (requires dead key + space)
|
||||
0x38 | SHIFT, // _
|
||||
0x00, // ` not supported (requires dead key + space)
|
||||
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
|
||||
0x24 | ALT_GR, // {
|
||||
0x2e | ALT_GR, // |
|
||||
0x27 | ALT_GR, // }
|
||||
0x00, // ~ not supported (requires dead key + space)
|
||||
0x00 // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_de_DE.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_de_DE.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* German keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_de_DE[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, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x31, // #
|
||||
0x21 | SHIFT, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x23 | SHIFT, // &
|
||||
0x31 | SHIFT, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x30 | SHIFT, // *
|
||||
0x30, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x24 | SHIFT, // /
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | SHIFT, // ;
|
||||
0x32, // <
|
||||
0x27 | SHIFT, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x2d | SHIFT, // ?
|
||||
0x14 | ALT_GR, // @
|
||||
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
|
||||
0x1d | SHIFT, // Y
|
||||
0x1c | SHIFT, // Z
|
||||
0x25 | ALT_GR, // [
|
||||
0x2d | ALT_GR, // bslash
|
||||
0x26 | ALT_GR, // ]
|
||||
0x00, // ^ not supported (requires dead key + space)
|
||||
0x38 | SHIFT, // _
|
||||
0x00, // ` not supported (requires dead key + space)
|
||||
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
|
||||
0x1d, // y
|
||||
0x1c, // z
|
||||
0x24 | ALT_GR, // {
|
||||
0x32 | ALT_GR, // |
|
||||
0x27 | ALT_GR, // }
|
||||
0x30 | ALT_GR, // ~
|
||||
0x00 // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_en_US.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_en_US.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Standard US keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_en_US[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, // ~
|
||||
0x00 // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_es_ES.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_es_ES.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Spanish keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_es_ES[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, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x20 | ALT_GR, // #
|
||||
0x21 | SHIFT, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x23 | SHIFT, // &
|
||||
0x2d, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x30 | SHIFT, // *
|
||||
0x30, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x24 | SHIFT, // /
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | SHIFT, // ;
|
||||
0x32, // <
|
||||
0x27 | SHIFT, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x2d | SHIFT, // ?
|
||||
0x1f | ALT_GR, // @
|
||||
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 | ALT_GR, // [
|
||||
0x35 | ALT_GR, // bslash
|
||||
0x30 | ALT_GR, // ]
|
||||
0x00, // ^ not supported (requires dead key + space)
|
||||
0x38 | SHIFT, // _
|
||||
0x00, // ` not supported (requires dead key + space)
|
||||
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
|
||||
0x34 | ALT_GR, // {
|
||||
0x1e | ALT_GR, // |
|
||||
0x31 | ALT_GR, // }
|
||||
0x00, // ~ not supported (requires dead key + space)
|
||||
0x00 // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_fr_FR.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_fr_FR.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Traditional (not AFNOR) French keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_fr_FR[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, // ' '
|
||||
0x38, // !
|
||||
0x20, // "
|
||||
0x20 | ALT_GR, // #
|
||||
0x30, // $
|
||||
0x34 | SHIFT, // %
|
||||
0x1E, // &
|
||||
0x21, // '
|
||||
0x22, // (
|
||||
0x2d, // )
|
||||
0x31, // *
|
||||
0x2e | SHIFT, // +
|
||||
0x10, // ,
|
||||
0x23, // -
|
||||
0x36 | SHIFT, // .
|
||||
0x37 | SHIFT, // /
|
||||
0x27 | SHIFT, // 0
|
||||
0x1e | SHIFT, // 1
|
||||
0x1f | SHIFT, // 2
|
||||
0x20 | SHIFT, // 3
|
||||
0x21 | SHIFT, // 4
|
||||
0x22 | SHIFT, // 5
|
||||
0x23 | SHIFT, // 6
|
||||
0x24 | SHIFT, // 7
|
||||
0x25 | SHIFT, // 8
|
||||
0x26 | SHIFT, // 9
|
||||
0x37, // :
|
||||
0x36, // ;
|
||||
0x32, // <
|
||||
0x2e, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x10 | SHIFT, // ?
|
||||
0x27 | ALT_GR, // @
|
||||
0x14 | 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
|
||||
0x33 | SHIFT, // M
|
||||
0x11 | SHIFT, // N
|
||||
0x12 | SHIFT, // O
|
||||
0x13 | SHIFT, // P
|
||||
0x04 | SHIFT, // Q
|
||||
0x15 | SHIFT, // R
|
||||
0x16 | SHIFT, // S
|
||||
0x17 | SHIFT, // T
|
||||
0x18 | SHIFT, // U
|
||||
0x19 | SHIFT, // V
|
||||
0x1d | SHIFT, // W
|
||||
0x1b | SHIFT, // X
|
||||
0x1c | SHIFT, // Y
|
||||
0x1a | SHIFT, // Z
|
||||
0x22 | ALT_GR, // [
|
||||
0x25 | ALT_GR, // bslash
|
||||
0x2d | ALT_GR, // ]
|
||||
0x26 | ALT_GR, // ^
|
||||
0x25, // _
|
||||
0x24 | ALT_GR, // `
|
||||
0x14, // a
|
||||
0x05, // b
|
||||
0x06, // c
|
||||
0x07, // d
|
||||
0x08, // e
|
||||
0x09, // f
|
||||
0x0a, // g
|
||||
0x0b, // h
|
||||
0x0c, // i
|
||||
0x0d, // j
|
||||
0x0e, // k
|
||||
0x0f, // l
|
||||
0x33, // m
|
||||
0x11, // n
|
||||
0x12, // o
|
||||
0x13, // p
|
||||
0x04, // q
|
||||
0x15, // r
|
||||
0x16, // s
|
||||
0x17, // t
|
||||
0x18, // u
|
||||
0x19, // v
|
||||
0x1d, // w
|
||||
0x1b, // x
|
||||
0x1c, // y
|
||||
0x1a, // z
|
||||
0x21 | ALT_GR, // {
|
||||
0x23 | ALT_GR, // |
|
||||
0x2e | ALT_GR, // }
|
||||
0x1f | ALT_GR, // ~
|
||||
0x00 // DEL
|
||||
};
|
||||
143
libraries/USB/src/keyboardLayout/KeyboardLayout_hu_HU.cpp
Normal file
143
libraries/USB/src/keyboardLayout/KeyboardLayout_hu_HU.cpp
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
/*
|
||||
* Standard HU keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_hu_HU[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, // ' '
|
||||
0x21 | SHIFT, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x1b | ALT_GR, // #
|
||||
0x33 | ALT_GR, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x06 | ALT_GR, // &
|
||||
0x1e | SHIFT, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x38 | ALT_GR, // *
|
||||
0x20 | SHIFT, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x23 | SHIFT, // /
|
||||
|
||||
0x35, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | ALT_GR, // ;
|
||||
0x32 | ALT_GR, // <
|
||||
0x24 | SHIFT, // =
|
||||
0x1d | ALT_GR, // >
|
||||
0x36 | SHIFT, // ?
|
||||
0x19 | ALT_GR, // @
|
||||
|
||||
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
|
||||
0x1d | SHIFT, // Y
|
||||
0x1c | SHIFT, // Z
|
||||
|
||||
0x09 | ALT_GR, // [
|
||||
0x14 | ALT_GR, // bslash
|
||||
0x0a | ALT_GR, // ]
|
||||
0x20 | ALT_GR, // ^
|
||||
0x38 | SHIFT, // _
|
||||
0x24 | ALT_GR, // `
|
||||
|
||||
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
|
||||
0x1d, // y
|
||||
0x1c, // z
|
||||
|
||||
0x05 | ALT_GR, // {
|
||||
0x1a | ALT_GR, // |
|
||||
0x11 | ALT_GR, // }
|
||||
0x1e | ALT_GR, // ~
|
||||
0x00 // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_it_IT.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_it_IT.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Italian keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_it_IT[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, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x34 | ALT_GR, // #
|
||||
0x21 | SHIFT, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x23 | SHIFT, // &
|
||||
0x2d, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x30 | SHIFT, // *
|
||||
0x30, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x24 | SHIFT, // /
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | SHIFT, // ;
|
||||
0x32, // <
|
||||
0x27 | SHIFT, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x2d | SHIFT, // ?
|
||||
0x33 | ALT_GR, // @
|
||||
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 | ALT_GR, // [
|
||||
0x35, // bslash
|
||||
0x30 | ALT_GR, // ]
|
||||
0x2e | SHIFT, // ^
|
||||
0x38 | SHIFT, // _
|
||||
0x00, // ` not in this layout
|
||||
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
|
||||
0x00, // { not supported (requires AltGr+Shift)
|
||||
0x35 | SHIFT, // |
|
||||
0x00, // } not supported (requires AltGr+Shift)
|
||||
0x00, // ~ not in this layout
|
||||
0x00 // DEL
|
||||
};
|
||||
141
libraries/USB/src/keyboardLayout/KeyboardLayout_pt_BR.cpp
Normal file
141
libraries/USB/src/keyboardLayout/KeyboardLayout_pt_BR.cpp
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Keyboard_pt_BR.h
|
||||
* Portuguese Brazilian keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_pt_BR[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, // !
|
||||
0x35 | SHIFT, // "
|
||||
0x20 | SHIFT, // #
|
||||
0x21 | SHIFT, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x24 | SHIFT, // &
|
||||
0x35, // '
|
||||
0x26 | SHIFT, // (
|
||||
0x27 | SHIFT, // )
|
||||
0x25 | SHIFT, // *
|
||||
0x2e | SHIFT, // +
|
||||
0x36, // ,
|
||||
0x2d, // -
|
||||
0x37, // .
|
||||
0x14 | ALT_GR, // / R_ALT + q
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x38 | SHIFT, // :
|
||||
0x38, // ;
|
||||
0x36 | SHIFT, // <
|
||||
0x2e, // =
|
||||
0x37 | SHIFT, // >
|
||||
0x1a | ALT_GR, // ? R_ALT + w
|
||||
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
|
||||
0x30, // [
|
||||
0x32, // bslash -->ISO Key
|
||||
0x31, // ]
|
||||
0x34 | SHIFT, // ^
|
||||
0x2d | SHIFT, // _
|
||||
0x2f | SHIFT, // `
|
||||
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
|
||||
0x30 | SHIFT, // {
|
||||
0x32 | SHIFT, // | -->ISO Key
|
||||
0x31 | SHIFT, // }
|
||||
0x34, // ~
|
||||
0x4c // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_pt_PT.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_pt_PT.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Portuguese keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_pt_PT[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, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x20 | SHIFT, // #
|
||||
0x21 | SHIFT, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x23 | SHIFT, // &
|
||||
0x2d, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x2f | SHIFT, // *
|
||||
0x2f, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x24 | SHIFT, // /
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | SHIFT, // ;
|
||||
0x32, // <
|
||||
0x27 | SHIFT, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x2d | SHIFT, // ?
|
||||
0x1f | ALT_GR, // @
|
||||
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
|
||||
0x25 | ALT_GR, // [
|
||||
0x35, // bslash
|
||||
0x26 | ALT_GR, // ]
|
||||
0x00, // ^ not supported (requires dead key + space)
|
||||
0x38 | SHIFT, // _
|
||||
0x00, // ` not supported (requires dead key + space)
|
||||
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
|
||||
0x24 | ALT_GR, // {
|
||||
0x35 | SHIFT, // |
|
||||
0x27 | ALT_GR, // }
|
||||
0x00, // ~ not supported (requires dead key + space)
|
||||
0x00 // DEL
|
||||
};
|
||||
137
libraries/USB/src/keyboardLayout/KeyboardLayout_sv_SE.cpp
Normal file
137
libraries/USB/src/keyboardLayout/KeyboardLayout_sv_SE.cpp
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* Swedish keyboard layout.
|
||||
*/
|
||||
|
||||
#include "KeyboardLayout.h"
|
||||
|
||||
extern const uint8_t KeyboardLayout_sv_SE[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, // !
|
||||
0x1f | SHIFT, // "
|
||||
0x20 | SHIFT, // #
|
||||
0x21 | ALT_GR, // $
|
||||
0x22 | SHIFT, // %
|
||||
0x23 | SHIFT, // &
|
||||
0x31, // '
|
||||
0x25 | SHIFT, // (
|
||||
0x26 | SHIFT, // )
|
||||
0x31 | SHIFT, // *
|
||||
0x2d, // +
|
||||
0x36, // ,
|
||||
0x38, // -
|
||||
0x37, // .
|
||||
0x24 | SHIFT, // /
|
||||
0x27, // 0
|
||||
0x1e, // 1
|
||||
0x1f, // 2
|
||||
0x20, // 3
|
||||
0x21, // 4
|
||||
0x22, // 5
|
||||
0x23, // 6
|
||||
0x24, // 7
|
||||
0x25, // 8
|
||||
0x26, // 9
|
||||
0x37 | SHIFT, // :
|
||||
0x36 | SHIFT, // ;
|
||||
0x32, // <
|
||||
0x27 | SHIFT, // =
|
||||
0x32 | SHIFT, // >
|
||||
0x2d | SHIFT, // ?
|
||||
0x1f | ALT_GR, // @
|
||||
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
|
||||
0x25 | ALT_GR, // [
|
||||
0x2d | ALT_GR, // bslash
|
||||
0x26 | ALT_GR, // ]
|
||||
0x00, // ^ not supported (requires dead key + space)
|
||||
0x38 | SHIFT, // _
|
||||
0x00, // ` not supported (requires dead key + space)
|
||||
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
|
||||
0x24 | ALT_GR, // {
|
||||
0x32 | ALT_GR, // |
|
||||
0x27 | ALT_GR, // }
|
||||
0x00, // ~ not supported (requires dead key + space)
|
||||
0x00 // DEL
|
||||
};
|
||||
35
libraries/USB/src/keyboardLayout/Keyboard_da_DK.h
Normal file
35
libraries/USB/src/keyboardLayout/Keyboard_da_DK.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
Keyboard_da_DK.h
|
||||
|
||||
Copyright (c) 2021, Peter John
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_DA_DK_h
|
||||
#define KEYBOARD_DA_DK_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// DA_DK keys
|
||||
#define KEY_A_RING (0x88 + 0x2f)
|
||||
#define KEY_SLASHED_O (0x88 + 0x34)
|
||||
#define KEY_ASH (0x88 + 0x33)
|
||||
#define KEY_UMLAUT (0x88 + 0x30)
|
||||
#define KEY_ACUTE_ACC (0x88 + 0x2e)
|
||||
|
||||
#endif
|
||||
36
libraries/USB/src/keyboardLayout/Keyboard_de_DE.h
Normal file
36
libraries/USB/src/keyboardLayout/Keyboard_de_DE.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
Keyboard_de_DE.h
|
||||
|
||||
Copyright (c) 2022, Edgar Bonet
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_DE_DE_h
|
||||
#define KEYBOARD_DE_DE_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// de_DE keys
|
||||
#define KEY_CIRCUMFLEX (0x88 + 0x35)
|
||||
#define KEY_ESZETT (0x88 + 0x2d)
|
||||
#define KEY_ACUTE (0x88 + 0x2e)
|
||||
#define KEY_U_UMLAUT (0x88 + 0x2f)
|
||||
#define KEY_O_UMLAUT (0x88 + 0x33)
|
||||
#define KEY_A_UMLAUT (0x88 + 0x34)
|
||||
|
||||
#endif
|
||||
37
libraries/USB/src/keyboardLayout/Keyboard_es_ES.h
Normal file
37
libraries/USB/src/keyboardLayout/Keyboard_es_ES.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Keyboard_es_ES.h
|
||||
|
||||
Copyright (c) 2022, Edgar Bonet
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_ES_ES_h
|
||||
#define KEYBOARD_ES_ES_h
|
||||
|
||||
#include "class/hid/hid.h"
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// es_ES keys
|
||||
#define KEY_MASCULINE_ORDINAL (0x88 + 0x35)
|
||||
#define KEY_INVERTED_EXCLAMATION (0x88 + 0x2e)
|
||||
#define KEY_GRAVE (0x88 + 0x2f)
|
||||
#define KEY_N_TILDE (0x88 + 0x33)
|
||||
#define KEY_ACUTE (0x88 + 0x34)
|
||||
#define KEY_C_CEDILLA (0x88 + 0x31)
|
||||
|
||||
#endif
|
||||
37
libraries/USB/src/keyboardLayout/Keyboard_fr_FR.h
Normal file
37
libraries/USB/src/keyboardLayout/Keyboard_fr_FR.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Keyboard_fr_FR.h
|
||||
|
||||
Copyright (c) 2022, Edgar Bonet
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_FR_FR_h
|
||||
#define KEYBOARD_FR_FR_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// fr_FR keys
|
||||
#define KEY_SUPERSCRIPT_TWO (0x88 + 0x35)
|
||||
#define KEY_E_ACUTE (0x88 + 0x1f)
|
||||
#define KEY_E_GRAVE (0x88 + 0x24)
|
||||
#define KEY_C_CEDILLA (0x88 + 0x26)
|
||||
#define KEY_A_GRAVE (0x88 + 0x27)
|
||||
#define KEY_CIRCUMFLEX (0x88 + 0x2f)
|
||||
#define KEY_U_GRAVE (0x88 + 0x34)
|
||||
|
||||
#endif
|
||||
43
libraries/USB/src/keyboardLayout/Keyboard_hu_HU.h
Normal file
43
libraries/USB/src/keyboardLayout/Keyboard_hu_HU.h
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
Keyboard_hu_HU.h
|
||||
|
||||
Copyright (c) 2023, Barab(0x34)si Rich(0x34)rd
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_HU_HU_h
|
||||
#define KEYBOARD_HU_HU_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// hu_HU keys
|
||||
#define KEY_O_ACUTE (0x88 + 0x2e)
|
||||
#define KEY_O_UMLAUT (0x88 + 0x27)
|
||||
#define KEY_O_DOUBLE_ACUTE (0x88 + 0x2f)
|
||||
|
||||
#define KEY_U_ACUTE (0x88 + 0x30)
|
||||
#define KEY_U_UMLAUT (0x88 + 0x2d)
|
||||
#define KEY_U_DOUBLE_ACUTE (0x88 + 0x31)
|
||||
|
||||
#define KEY_A_ACUTE (0x88 + 0x34)
|
||||
|
||||
#define KEY_E_ACUTE (0x88 + 0x33)
|
||||
|
||||
#define KEY_I_ACUTE (0x88 + 0x32)
|
||||
|
||||
#endif
|
||||
35
libraries/USB/src/keyboardLayout/Keyboard_it_IT.h
Normal file
35
libraries/USB/src/keyboardLayout/Keyboard_it_IT.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
Keyboard_it_IT.h
|
||||
|
||||
Copyright (c) 2022, Edgar Bonet
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_IT_IT_h
|
||||
#define KEYBOARD_IT_IT_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// it_IT keys
|
||||
#define KEY_I_GRAVE (0x88 + 0x2e)
|
||||
#define KEY_E_GRAVE (0x88 + 0x2f)
|
||||
#define KEY_O_GRAVE (0x88 + 0x33)
|
||||
#define KEY_A_GRAVE (0x88 + 0x34)
|
||||
#define KEY_U_GRAVE (0x88 + 0x31)
|
||||
|
||||
#endif
|
||||
25
libraries/USB/src/keyboardLayout/Keyboard_pt_BR.h
Normal file
25
libraries/USB/src/keyboardLayout/Keyboard_pt_BR.h
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Keyboard_pt_BR.h
|
||||
* Portuguese Brazilian keyboard layout.
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_PT_BR_h
|
||||
#define KEYBOARD_PT_BR_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// pt_BR keys
|
||||
#define KEY_C_CEDILLA (0x88 + 0x33)
|
||||
#define KEY_ACUTE (0x88 + 0x2f)
|
||||
// use the pressRaw() to press the modification key and then press the key you want to modify
|
||||
#define KEY_MASCULINE_ORDINAL (0x88 + 0x32) // first pressRaw(HID_KEY_ALT_RIGHT), then press(KEY_MASCULINE_ORDINAL)
|
||||
#define KEY_FEMININE_ORDINAL (0x88 + 0x30) // first pressRaw(HID_KEY_ALT_RIGHT), then press(KEY_FEMININE_ORDINAL)
|
||||
#define KEY_PARAGRAPH (0x88 + 0x2e) // first pressRaw(HID_KEY_ALT_RIGHT), then press(KEY_PARAGRAPH)
|
||||
#define KEY_UMLAUT (0x88 + 0x23) // first pressRaw(HID_KEY_SHIFT_RIGHT), then press(KEY_UMLAUT)
|
||||
|
||||
#endif
|
||||
35
libraries/USB/src/keyboardLayout/Keyboard_pt_PT.h
Normal file
35
libraries/USB/src/keyboardLayout/Keyboard_pt_PT.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
Keyboard_pt_PT.h
|
||||
|
||||
Copyright (c) 2022, Edgar Bonet
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_PT_PT_h
|
||||
#define KEYBOARD_PT_PT_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// pt_PT keys
|
||||
#define KEY_LEFT_GUILLEMET (0x88 + 0x2e)
|
||||
#define KEY_ACUTE (0x88 + 0x30)
|
||||
#define KEY_C_CEDILLA (0x88 + 0x33)
|
||||
#define KEY_MASCULINE_ORDINAL (0x88 + 0x34)
|
||||
#define KEY_TILDE (0x88 + 0x31)
|
||||
|
||||
#endif
|
||||
35
libraries/USB/src/keyboardLayout/Keyboard_sv_SE.h
Normal file
35
libraries/USB/src/keyboardLayout/Keyboard_sv_SE.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
Keyboard_sv_SE.h
|
||||
|
||||
Copyright (c) 2021, Peter John
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef KEYBOARD_SV_SE_h
|
||||
#define KEYBOARD_SV_SE_h
|
||||
|
||||
//================================================================================
|
||||
//================================================================================
|
||||
// Keyboard
|
||||
|
||||
// SV_SE keys
|
||||
#define KEY_A_RING (0x88 + 0x2f)
|
||||
#define KEY_A_UMLAUT (0x88 + 0x34)
|
||||
#define KEY_O_UMLAUT (0x88 + 0x33)
|
||||
#define KEY_UMLAUT (0x88 + 0x30)
|
||||
#define KEY_ACUTE_ACC (0x88 + 0x2e)
|
||||
|
||||
#endif
|
||||
Loading…
Reference in a new issue