Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added TR Language and some code refactoring #497

Merged
merged 10 commits into from
Nov 30, 2024
1 change: 1 addition & 0 deletions lib/Bad_Usb_Lib/BleKeyboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ extern const uint8_t KeyboardLayout_pt_BR[];
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_tr_TR[];

// Low level key report: up to 6 keys and shift, ctrl etc at once
typedef struct
Expand Down
4 changes: 2 additions & 2 deletions lib/Bad_Usb_Lib/CH9329_Keyboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ int CH9329_Keyboard_::getReportData(uint8_t *buffer, size_t size)
return getReportData(&_keyReport, buffer, size);
}

int CH9329_Keyboard_::getReportData(KeyReport* keys, uint8_t *buffer, size_t size)
int CH9329_Keyboard_::getReportData(CH9329_KeyReport* keys, uint8_t *buffer, size_t size)
{
if (size < KEY_REPORT_DATA_LENGTH) {
return 0;
Expand Down Expand Up @@ -83,7 +83,7 @@ int CH9329_Keyboard_::getReportData(KeyReport* keys, uint8_t *buffer, size_t siz
return KEY_REPORT_DATA_LENGTH;
}

void CH9329_Keyboard_::sendReport(KeyReport* keys)
void CH9329_Keyboard_::sendReport(CH9329_KeyReport* keys)
{
if (_stream == nullptr) {
return;
Expand Down
11 changes: 6 additions & 5 deletions lib/Bad_Usb_Lib/CH9329_Keyboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,15 @@ extern const uint8_t KeyboardLayout_pt_BR[];
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_tr_TR[];

// Low level key report: up to 6 keys and shift, ctrl etc at once
typedef struct
typedef struct CH9329_KeyReport
{
uint8_t modifiers;
uint8_t reserved;
uint8_t keys[6];
} KeyReport;
} CH9329_KeyReport;

#if defined(FLASHEND) && FLASHEND <= 0x7FF
class CH9329_Keyboard_
Expand All @@ -140,12 +141,12 @@ class CH9329_Keyboard_ : public Print
#endif
{
private:
KeyReport _keyReport;
CH9329_KeyReport _keyReport;
const uint8_t *_asciimap;
Stream* _stream;
uint8_t _reportData[KEY_REPORT_DATA_LENGTH];
void sendReport(KeyReport* keys);
int getReportData(KeyReport* keys, uint8_t *buffer, size_t size);
void sendReport(CH9329_KeyReport * keys);
int getReportData(CH9329_KeyReport * keys, uint8_t *buffer, size_t size);
public:
CH9329_Keyboard_(void);
void begin(Stream& stream, const uint8_t *layout = KeyboardLayout_en_US);
Expand Down
138 changes: 138 additions & 0 deletions lib/Bad_Usb_Lib/KeyboardLayout_tr_TR.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
/*
* Turkish keyboard layout.
*/

#include "KeyboardLayout.h"

extern const uint8_t KeyboardLayout_tr_TR[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, // ı (Turkish dotless i)
0x0d, // j
0x0e, // k
0x0f, // l
0x10, // m
0x11, // n
0x12, // o
0x13, // p
0x14|SHIFT, // Q
0x15, // r
0x16, // s
0x17, // t
0x18, // u
0x19, // v
0x1a, // w
0x1b, // x
0x1c|SHIFT, // y (Turkish dotted Y)
0x1d, // z
0x24|ALT_GR, // {
0x32|ALT_GR, // |
0x27|ALT_GR, // }
0x00, // ~ not supported (requires dead key + space)
0x00 // DEL
};
48 changes: 48 additions & 0 deletions lib/Bad_Usb_Lib/Keyboard_tr_TR.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
Keyboard_tr_TR.h
Copyright (c) 2021, [Your Name]
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_TR_TR_h
#define KEYBOARD_TR_TR_h

#include "HID.h"

#if !defined(_USING_HID)

#warning "Using legacy HID core (non pluggable)"

#else

//================================================================================
//================================================================================
// Keyboard

// TR_TR keys
#define KEY_A_RING (136+0x2f) // ğ
#define KEY_A_UMLAUT (136+0x34) // ö
#define KEY_O_UMLAUT (136+0x33) // ü
#define KEY_UMLAUT (136+0x30) // ş
#define KEY_ACUTE_ACC (136+0x2e) // ç
#define KEY_DOTLESS_I (136+0x3a) // ı
#define KEY_DOTTED_I (136+0x3b) // İ
#define KEY_Y_DOTTED (136+0x3c) // Y (dotted)
#define KEY_Y_DOTLESS (136+0x3d) // y (dotless)

#endif
#endif
1 change: 1 addition & 0 deletions lib/Bad_Usb_Lib/USBHIDKeyboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ extern const uint8_t KeyboardLayout_pt_BR[];
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_tr_TR[];

// Low level key report: up to 6 keys and shift, ctrl etc at once
typedef struct
Expand Down
20 changes: 10 additions & 10 deletions src/core/menu_items/BleMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@

void BleMenu::optionsMenu() {
options.clear();
if(BLEConnected) options.push_back({"Disconnect", [=]() {
if(BLEConnected) options.push_back({"Disconnect", [=]() {
BLEDevice::deinit();
BLEConnected=false;
if(Ask_for_restart==1) Ask_for_restart=2; // Sets the variable to ask for restart;
}});

options.push_back({"Media Cmds", [=]() { ble_MediaCommands(); }});
#if !defined(LITE_VERSION)
// options.push_back({"BLE Beacon", [=]() { ble_test(); }});
options.push_back({"BLE Scan", [=]() { ble_scan(); }});
options.push_back({"Bad BLE", [=]() { ble_setup(); }});
#endif
#if defined(HAS_KEYBOARD_HID)
options.push_back({"BLE Keyboard", [=]() { ble_keyboard(); }});
#endif
options.push_back({"Media Cmds", [=]() { ble_MediaCommands(); }});
#if !defined(LITE_VERSION)
// options.push_back({"BLE Beacon", [=]() { ble_test(); }});
options.push_back({"BLE Scan", [=]() { ble_scan(); }});
options.push_back({"Bad BLE", [=]() { ble_setup(); }});
#endif
#if defined(HAS_KEYBOARD_HID)
options.push_back({"BLE Keyboard", [=]() { ble_keyboard(); }});
#endif
options.push_back({"iOS Spam", [=]() { aj_adv(0); }});
options.push_back({"Windows Spam", [=]() { aj_adv(1); }});
options.push_back({"Samsung Spam", [=]() { aj_adv(2); }});
Expand Down
2 changes: 2 additions & 0 deletions src/modules/ble/bad_ble.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ void ble_setup() {
{"sv-SE", [=]() { chooseKb_ble(KeyboardLayout_sv_SE); }},
{"da-DK", [=]() { chooseKb_ble(KeyboardLayout_da_DK); }},
{"hu-HU", [=]() { chooseKb_ble(KeyboardLayout_hu_HU); }},
{"tr-TR", [=]() { chooseKb_ble(KeyboardLayout_tr_TR); }},
{"Main Menu", [=]() { returnToMenu=true; }},
};
delay(250);
Expand Down Expand Up @@ -370,6 +371,7 @@ void ble_keyboard() {
{"sv-SE", [=]() { chooseKb_ble(KeyboardLayout_sv_SE); }},
{"da-DK", [=]() { chooseKb_ble(KeyboardLayout_da_DK); }},
{"hu-HU", [=]() { chooseKb_ble(KeyboardLayout_hu_HU); }},
{"tr-TR", [=]() { chooseKb_ble(KeyboardLayout_tr_TR); }},
{"Main Menu", [=]() { returnToMenu = true; }},
};
delay(200);
Expand Down
24 changes: 13 additions & 11 deletions src/modules/others/bad_usb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -270,17 +270,18 @@ void usb_setup() {
tft.fillScreen(bruceConfig.bgColor);
if(first_time) {
options = {
{"US Inter", [=]() { chooseKb(KeyboardLayout_en_US); }},
{"PT-BR ABNT2", [=]() { chooseKb(KeyboardLayout_pt_BR); }},
{"PT-Portugal", [=]() { chooseKb(KeyboardLayout_pt_PT); }},
{"AZERTY FR", [=]() { chooseKb(KeyboardLayout_fr_FR); }},
{"es-Espanol", [=]() { chooseKb(KeyboardLayout_es_ES); }},
{"it-Italiano", [=]() { chooseKb(KeyboardLayout_it_IT); }},
{"en-UK", [=]() { chooseKb(KeyboardLayout_en_UK); }},
{"de-DE", [=]() { chooseKb(KeyboardLayout_de_DE); }},
{"sv-SE", [=]() { chooseKb(KeyboardLayout_sv_SE); }},
{"da-DK", [=]() { chooseKb(KeyboardLayout_da_DK); }},
{"hu-HU", [=]() { chooseKb(KeyboardLayout_hu_HU); }},
{"US International", [=]() { chooseKb(KeyboardLayout_en_US); }},
{"Portuguese (Brazil)", [=]() { chooseKb(KeyboardLayout_pt_BR); }},
{"Portuguese (Portugal)", [=]() { chooseKb(KeyboardLayout_pt_PT); }},
{"French AZERTY", [=]() { chooseKb(KeyboardLayout_fr_FR); }},
{"Spanish (Spain)", [=]() { chooseKb(KeyboardLayout_es_ES); }},
{"Italian (Italy)", [=]() { chooseKb(KeyboardLayout_it_IT); }},
{"English (UK)", [=]() { chooseKb(KeyboardLayout_en_UK); }},
{"German (Germany)", [=]() { chooseKb(KeyboardLayout_de_DE); }},
{"Swedish (Sweden)", [=]() { chooseKb(KeyboardLayout_sv_SE); }},
{"Danish (Denmark)", [=]() { chooseKb(KeyboardLayout_da_DK); }},
{"Hungarian (Hungary)", [=]() { chooseKb(KeyboardLayout_hu_HU); }},
{"Turkish (Turkey)", [=]() { chooseKb(KeyboardLayout_tr_TR); }},
};
delay(200);
loopOptions(options,false,true,"Keyboard Layout");
Expand Down Expand Up @@ -385,6 +386,7 @@ void usb_keyboard() {
{"sv-SE", [=]() { chooseKb(KeyboardLayout_sv_SE); }},
{"da-DK", [=]() { chooseKb(KeyboardLayout_da_DK); }},
{"hu-HU", [=]() { chooseKb(KeyboardLayout_hu_HU); }},
{"tr-TR", [=]() { chooseKb(KeyboardLayout_tr_TR); }},
{"Main Menu", [=]() { returnToMenu=true; }},
};
delay(200);
Expand Down