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/USBMIDI.cpp
|
||||||
libraries/USB/src/USBHIDMouse.cpp
|
libraries/USB/src/USBHIDMouse.cpp
|
||||||
libraries/USB/src/USBHIDKeyboard.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/USBHIDGamepad.cpp
|
||||||
libraries/USB/src/USBHIDConsumerControl.cpp
|
libraries/USB/src/USBHIDConsumerControl.cpp
|
||||||
libraries/USB/src/USBHIDSystemControl.cpp
|
libraries/USB/src/USBHIDSystemControl.cpp
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
#if CONFIG_TINYUSB_HID_ENABLED
|
#if CONFIG_TINYUSB_HID_ENABLED
|
||||||
|
|
||||||
#include "USBHIDKeyboard.h"
|
#include "USBHIDKeyboard.h"
|
||||||
|
#include "keyboardLayout/KeyboardLayout.h"
|
||||||
|
|
||||||
ESP_EVENT_DEFINE_BASE(ARDUINO_USB_HID_KEYBOARD_EVENTS);
|
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);
|
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))};
|
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;
|
static bool initialized = false;
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
@ -45,7 +46,8 @@ uint16_t USBHIDKeyboard::_onGetDescriptor(uint8_t *dst) {
|
||||||
return sizeof(report_descriptor);
|
return sizeof(report_descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void USBHIDKeyboard::begin() {
|
void USBHIDKeyboard::begin(const uint8_t *layout) {
|
||||||
|
_asciimap = layout;
|
||||||
hid.begin();
|
hid.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,139 +82,6 @@ void USBHIDKeyboard::setShiftKeyReports(bool set) {
|
||||||
shiftKeyReports = 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) {
|
size_t USBHIDKeyboard::pressRaw(uint8_t k) {
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
if (k >= 0xE0 && k < 0xE8) {
|
if (k >= 0xE0 && k < 0xE8) {
|
||||||
|
|
@ -234,7 +103,7 @@ size_t USBHIDKeyboard::pressRaw(uint8_t k) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else if (_keyReport.modifiers == 0) {
|
||||||
//not a modifier and not a key
|
//not a modifier and not a key
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -255,11 +124,8 @@ size_t USBHIDKeyboard::releaseRaw(uint8_t k) {
|
||||||
_keyReport.keys[i] = 0x00;
|
_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);
|
sendReport(&_keyReport);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -274,19 +140,26 @@ size_t USBHIDKeyboard::press(uint8_t k) {
|
||||||
} else if (k >= 0x80) { // it's a modifier key
|
} else if (k >= 0x80) { // it's a modifier key
|
||||||
_keyReport.modifiers |= (1 << (k - 0x80));
|
_keyReport.modifiers |= (1 << (k - 0x80));
|
||||||
k = 0;
|
k = 0;
|
||||||
} else { // it's a printing key
|
} else { // it's a printing key (k is a ASCII 0..127)
|
||||||
k = _asciimap[k];
|
k = _asciimap[k];
|
||||||
if (!k) {
|
if (!k) {
|
||||||
return 0;
|
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.
|
// At boot, some PCs need a separate report with the shift key down like a real keyboard.
|
||||||
if (shiftKeyReports) {
|
if (shiftKeyReports) {
|
||||||
pressRaw(HID_KEY_SHIFT_LEFT);
|
pressRaw(HID_KEY_SHIFT_LEFT);
|
||||||
} else {
|
} else {
|
||||||
_keyReport.modifiers |= 0x02; // the left shift modifier
|
_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);
|
return pressRaw(k);
|
||||||
|
|
@ -306,15 +179,22 @@ size_t USBHIDKeyboard::release(uint8_t k) {
|
||||||
if (!k) {
|
if (!k) {
|
||||||
return 0;
|
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) {
|
if (shiftKeyReports) {
|
||||||
releaseRaw(k & 0x7F); // Release key without shift modifier
|
releaseRaw(k & 0x7F); // Release key without shift modifier
|
||||||
k = HID_KEY_SHIFT_LEFT; // Below, release shift modifier
|
k = HID_KEY_SHIFT_LEFT; // Below, release shift modifier
|
||||||
} else {
|
} else {
|
||||||
_keyReport.modifiers &= ~(0x02); // the left shift modifier
|
_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);
|
return releaseRaw(k);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,20 +50,32 @@ typedef union {
|
||||||
uint8_t leds;
|
uint8_t leds;
|
||||||
} arduino_usb_hid_keyboard_event_data_t;
|
} 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_CTRL 0x80
|
||||||
#define KEY_LEFT_SHIFT 0x81
|
#define KEY_LEFT_SHIFT 0x81
|
||||||
#define KEY_LEFT_ALT 0x82
|
#define KEY_LEFT_ALT 0x82
|
||||||
#define KEY_LEFT_GUI 0x83
|
#define KEY_LEFT_GUI 0x83
|
||||||
#define KEY_RIGHT_CTRL 0x84
|
#define KEY_RIGHT_CTRL 0x84
|
||||||
#define KEY_RIGHT_SHIFT 0x85
|
#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_RIGHT_GUI 0x87
|
||||||
|
|
||||||
#define KEY_UP_ARROW 0xDA
|
#define KEY_UP_ARROW 0xDA
|
||||||
#define KEY_DOWN_ARROW 0xD9
|
#define KEY_DOWN_ARROW 0xD9
|
||||||
#define KEY_LEFT_ARROW 0xD8
|
#define KEY_LEFT_ARROW 0xD8
|
||||||
#define KEY_RIGHT_ARROW 0xD7
|
#define KEY_RIGHT_ARROW 0xD7
|
||||||
#define KEY_MENU 0xFE
|
#define KEY_MENU 0xED // "Keyboard Application" in USB standard
|
||||||
#define KEY_SPACE 0x20
|
#define KEY_SPACE 0x20
|
||||||
#define KEY_BACKSPACE 0xB2
|
#define KEY_BACKSPACE 0xB2
|
||||||
#define KEY_TAB 0xB3
|
#define KEY_TAB 0xB3
|
||||||
|
|
@ -111,6 +123,24 @@ typedef union {
|
||||||
#define LED_COMPOSE 0x08
|
#define LED_COMPOSE 0x08
|
||||||
#define LED_KANA 0x10
|
#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
|
// Low level key report: up to 6 keys and shift, ctrl etc at once
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t modifiers;
|
uint8_t modifiers;
|
||||||
|
|
@ -122,11 +152,12 @@ class USBHIDKeyboard : public USBHIDDevice, public Print {
|
||||||
private:
|
private:
|
||||||
USBHID hid;
|
USBHID hid;
|
||||||
KeyReport _keyReport;
|
KeyReport _keyReport;
|
||||||
|
const uint8_t *_asciimap;
|
||||||
bool shiftKeyReports;
|
bool shiftKeyReports;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
USBHIDKeyboard(void);
|
USBHIDKeyboard(void);
|
||||||
void begin(void);
|
void begin(const uint8_t *layout = KeyboardLayout_en_US);
|
||||||
void end(void);
|
void end(void);
|
||||||
size_t write(uint8_t k);
|
size_t write(uint8_t k);
|
||||||
size_t write(const uint8_t *buffer, size_t size);
|
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