forked from forks/qmk_firmware
Add AltGr/RALT support to Send String
This commit is contained in:
parent
6832a067ef
commit
a2090d5e86
|
@ -850,6 +850,26 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = {
|
|||
0, 0, 0, 1, 1, 1, 1, 0
|
||||
};
|
||||
|
||||
__attribute__ ((weak))
|
||||
const bool ascii_to_alt_lut[0x80] PROGMEM = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
__attribute__ ((weak))
|
||||
const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
|
@ -932,16 +952,21 @@ void send_string_with_delay_P(const char *str, uint8_t interval) {
|
|||
|
||||
void send_char(char ascii_code) {
|
||||
uint8_t keycode;
|
||||
bool is_shifted;
|
||||
bool is_alted;
|
||||
|
||||
keycode = pgm_read_byte(&ascii_to_keycode_lut[(uint8_t)ascii_code]);
|
||||
if (pgm_read_byte(&ascii_to_shift_lut[(uint8_t)ascii_code])) {
|
||||
register_code(KC_LSFT);
|
||||
register_code(keycode);
|
||||
unregister_code(keycode);
|
||||
unregister_code(KC_LSFT);
|
||||
} else {
|
||||
register_code(keycode);
|
||||
unregister_code(keycode);
|
||||
}
|
||||
if (pgm_read_byte(&ascii_to_shift_lut[(uint8_t)ascii_code])) { is_shifted = true; } else { is_shifted = false; }
|
||||
if (pgm_read_byte(&ascii_to_alt_lut[(uint8_t)ascii_code])) { is_alted = true; } else { is_alted = false; }
|
||||
|
||||
if (is_shifted) { register_code(KC_LSFT); }
|
||||
if (is_alted) { register_code(KC_RALT); }
|
||||
|
||||
register_code(keycode);
|
||||
unregister_code(keycode);
|
||||
|
||||
if (is_alted) { unregister_code(KC_RALT); }
|
||||
if (is_shifted) { unregister_code(KC_LSFT); }
|
||||
}
|
||||
|
||||
void set_single_persistent_default_layer(uint8_t default_layer) {
|
||||
|
|
Loading…
Reference in a new issue