[Feature] Key Overrides (#11422)

This commit is contained in:
Jonas Gessner
2021-07-13 19:13:51 +02:00
committed by GitHub
parent 1ae4d52013
commit 52cfc9259b
14 changed files with 984 additions and 3 deletions

View File

@ -58,12 +58,16 @@ float bell_song[][2] = SONG(TERMINAL_SOUND);
# include "process_auto_shift.h"
#endif
static void do_code16(uint16_t code, void (*f)(uint8_t)) {
#ifdef KEY_OVERRIDE_ENABLE
# include "process_key_override_private.h"
#endif
uint8_t extract_mod_bits(uint16_t code) {
switch (code) {
case QK_MODS ... QK_MODS_MAX:
break;
default:
return;
return 0;
}
uint8_t mods_to_send = 0;
@ -80,9 +84,11 @@ static void do_code16(uint16_t code, void (*f)(uint8_t)) {
if (code & QK_LGUI) mods_to_send |= MOD_BIT(KC_LGUI);
}
f(mods_to_send);
return mods_to_send;
}
static void do_code16(uint16_t code, void (*f)(uint8_t)) { f(extract_mod_bits(code)); }
void register_code16(uint16_t code) {
if (IS_MOD(code) || code == KC_NO) {
do_code16(code, register_mods);
@ -243,6 +249,9 @@ bool process_record_quantum(keyrecord_t *record) {
#if (defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))) && !defined(NO_MUSIC_MODE)
process_music(keycode, record) &&
#endif
#ifdef KEY_OVERRIDE_ENABLE
process_key_override(keycode, record) &&
#endif
#ifdef TAP_DANCE_ENABLE
process_tap_dance(keycode, record) &&
#endif
@ -408,6 +417,10 @@ void matrix_scan_quantum() {
matrix_scan_music();
#endif
#ifdef KEY_OVERRIDE_ENABLE
matrix_scan_key_override();
#endif
#ifdef SEQUENCER_ENABLE
matrix_scan_sequencer();
#endif