From 939d576e5d824bfe7c52df51448e474d96fa8784 Mon Sep 17 00:00:00 2001 From: Samuel Teixeira Date: Fri, 22 Nov 2024 20:22:47 -0300 Subject: [PATCH 1/4] Add Brazilian Portuguese keyboard layout --- src/Keyboard.h | 1 + src/KeyboardLayout_pt_BR.cpp | 144 +++++++++++++++++++++++++++++++++++ src/Keyboard_pt_BR.h | 44 +++++++++++ 3 files changed, 189 insertions(+) create mode 100644 src/KeyboardLayout_pt_BR.cpp create mode 100644 src/Keyboard_pt_BR.h diff --git a/src/Keyboard.h b/src/Keyboard.h index e110404..7a416d5 100644 --- a/src/Keyboard.h +++ b/src/Keyboard.h @@ -116,6 +116,7 @@ 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_BR[]; extern const uint8_t KeyboardLayout_pt_PT[]; extern const uint8_t KeyboardLayout_sv_SE[]; extern const uint8_t KeyboardLayout_da_DK[]; diff --git a/src/KeyboardLayout_pt_BR.cpp b/src/KeyboardLayout_pt_BR.cpp new file mode 100644 index 0000000..e5fad19 --- /dev/null +++ b/src/KeyboardLayout_pt_BR.cpp @@ -0,0 +1,144 @@ +/* + * Portuguese 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 + 0x29, // ESC + 0x00, // FS + 0x00, // GS + 0x00, // RS + 0x00, // US + + 0x2c, // ' ' + 0x1e|SHIFT, // ! + 0x35|SHIFT, // " + 0x20|SHIFT, // # + 0x21|SHIFT, // $ + 0x22|SHIFT, // % + 0x23|SHIFT, // & + 0x35, // ' + 0x26|SHIFT, // ( + 0x27|SHIFT, // ) + 0x25|SHIFT, // * + 0x2E|SHIFT, // + + 0x36, // , + 0x2D, // - + 0x37, // . + 0x54, // / + + 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, // > + 0x54|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 + + 0x30, // [ + 0x64, // bslash + 0x31, // ] + 0x34|SHIFT, // ^ not supported (requires dead key + space) + 0x2d|SHIFT, // _ + 0x2f|SHIFT, // ` 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 + + 0x30|SHIFT, // { + 0x64|SHIFT, // | + 0x31|SHIFT, // } + 0x34, // ~ not supported (requires dead key + space) + 0x00 // DEL +}; diff --git a/src/Keyboard_pt_BR.h b/src/Keyboard_pt_BR.h new file mode 100644 index 0000000..3b43891 --- /dev/null +++ b/src/Keyboard_pt_BR.h @@ -0,0 +1,44 @@ +/* + 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_BR_h +#define KEYBOARD_PT_BR_h + +#include "HID.h" + +#if !defined(_USING_HID) + +#warning "Using legacy HID core (non pluggable)" + +#else + +//================================================================================ +//================================================================================ +// Keyboard + +// pt_BR keys +#define KEY_MASCULINE_ORDINAL (136+0x31) +#define KEY_SIX (136+0x23) +#define KEY_ACUTE (136+0x2f) +#define KEY_C_CEDILLA (136+0x33) +#define KEY_TILDE (136+0x34) + +#endif +#endif From 6e1017b5173e3f7a6638eedd3d9ad0b5f2e8ac9e Mon Sep 17 00:00:00 2001 From: Samuel Teixeira Date: Mon, 25 Nov 2024 10:50:22 -0300 Subject: [PATCH 2/4] Some adjusts after comments --- src/KeyboardLayout_pt_BR.cpp | 32 +++++++++++++------------------- src/Keyboard_pt_BR.h | 6 +----- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/KeyboardLayout_pt_BR.cpp b/src/KeyboardLayout_pt_BR.cpp index e5fad19..62d7315 100644 --- a/src/KeyboardLayout_pt_BR.cpp +++ b/src/KeyboardLayout_pt_BR.cpp @@ -14,7 +14,6 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x00, // ENQ 0x00, // ACK 0x00, // BEL - 0x2a, // BS Backspace 0x2b, // TAB Tab 0x28, // LF Enter @@ -34,7 +33,7 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x00, // CAN 0x00, // EM 0x00, // SUB - 0x29, // ESC + 0x00, // ESC 0x00, // FS 0x00, // GS 0x00, // RS @@ -55,8 +54,7 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x36, // , 0x2D, // - 0x37, // . - 0x54, // / - + 0x14|ALT_GR, // / 0x27, // 0 0x1e, // 1 0x1f, // 2 @@ -68,13 +66,12 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x25, // 8 0x26, // 9 0x38|SHIFT, // : - 0x38, // ; - 0x36|SHIFT, // < + 0x38, // ; + 0x36|SHIFT, // < 0x2e, // = 0x37|SHIFT, // > - 0x54|SHIFT, // ? ??? + 0x1a|ALT_GR, // ? 0x1f|SHIFT, // @ - 0x04|SHIFT, // A 0x05|SHIFT, // B 0x06|SHIFT, // C @@ -101,14 +98,12 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x1b|SHIFT, // X 0x1c|SHIFT, // Y 0x1d|SHIFT, // Z - 0x30, // [ - 0x64, // bslash - 0x31, // ] - 0x34|SHIFT, // ^ not supported (requires dead key + space) + 0x32, // bslash + 0x31, // ] + 0x00, // ^ not supported (requires dead key + space) 0x2d|SHIFT, // _ - 0x2f|SHIFT, // ` not supported (requires dead key + space) - + 0x00, // ` not supported (requires dead key + space) 0x04, // a 0x05, // b 0x06, // c @@ -135,10 +130,9 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x1b, // x 0x1c, // y 0x1d, // z - - 0x30|SHIFT, // { - 0x64|SHIFT, // | - 0x31|SHIFT, // } - 0x34, // ~ not supported (requires dead key + space) + 0x30|SHIFT, // { + 0x32|SHIFT, // | + 0x31|SHIFT, // } + 0x00, // ~ not supported (requires dead key + space) 0x00 // DEL }; diff --git a/src/Keyboard_pt_BR.h b/src/Keyboard_pt_BR.h index 3b43891..35ff39e 100644 --- a/src/Keyboard_pt_BR.h +++ b/src/Keyboard_pt_BR.h @@ -1,7 +1,5 @@ /* - Keyboard_pt_PT.h - - Copyright (c) 2022, Edgar Bonet + Keyboard_pt_BR.h This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -34,8 +32,6 @@ // Keyboard // pt_BR keys -#define KEY_MASCULINE_ORDINAL (136+0x31) -#define KEY_SIX (136+0x23) #define KEY_ACUTE (136+0x2f) #define KEY_C_CEDILLA (136+0x33) #define KEY_TILDE (136+0x34) From 957e53f8394936510ffad685966b15f082c23bcf Mon Sep 17 00:00:00 2001 From: Samuel Teixeira Date: Mon, 25 Nov 2024 10:54:37 -0300 Subject: [PATCH 3/4] Update KeyboardLayout_pt_BR.cpp --- src/KeyboardLayout_pt_BR.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KeyboardLayout_pt_BR.cpp b/src/KeyboardLayout_pt_BR.cpp index 62d7315..e06eb25 100644 --- a/src/KeyboardLayout_pt_BR.cpp +++ b/src/KeyboardLayout_pt_BR.cpp @@ -45,7 +45,7 @@ extern const uint8_t KeyboardLayout_pt_BR[128] PROGMEM = 0x20|SHIFT, // # 0x21|SHIFT, // $ 0x22|SHIFT, // % - 0x23|SHIFT, // & + 0x24|SHIFT, // & 0x35, // ' 0x26|SHIFT, // ( 0x27|SHIFT, // ) From 7aaa02bbcdd84a3677e62161f2531961da9e6b1c Mon Sep 17 00:00:00 2001 From: Samuel Teixeira Date: Mon, 25 Nov 2024 10:55:55 -0300 Subject: [PATCH 4/4] Update KeyboardLayout_pt_BR.cpp --- src/KeyboardLayout_pt_BR.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/KeyboardLayout_pt_BR.cpp b/src/KeyboardLayout_pt_BR.cpp index e06eb25..a194ee7 100644 --- a/src/KeyboardLayout_pt_BR.cpp +++ b/src/KeyboardLayout_pt_BR.cpp @@ -1,5 +1,5 @@ /* - * Portuguese keyboard layout. + * Brazilian Portuguese keyboard layout. */ #include "KeyboardLayout.h"