diff options
Diffstat (limited to 'quantum/quantum.c')
| -rw-r--r-- | quantum/quantum.c | 27 | 
1 files changed, 20 insertions, 7 deletions
| diff --git a/quantum/quantum.c b/quantum/quantum.c index 8ccdb774bd..9cfffd9317 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -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 @@ -340,13 +349,13 @@ void set_single_persistent_default_layer(uint8_t default_layer) {  #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)      PLAY_SONG(default_layer_songs[default_layer]);  #endif -    eeconfig_update_default_layer(1U << default_layer); -    default_layer_set(1U << default_layer); +    eeconfig_update_default_layer((layer_state_t)1 << default_layer); +    default_layer_set((layer_state_t)1 << default_layer);  }  layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3) { -    layer_state_t mask12 = (1UL << layer1) | (1UL << layer2); -    layer_state_t mask3  = 1UL << layer3; +    layer_state_t mask12 = ((layer_state_t)1 << layer1) | ((layer_state_t)1 << layer2); +    layer_state_t mask3  = (layer_state_t)1 << layer3;      return (state & mask12) == mask12 ? (state | mask3) : (state & ~mask3);  } @@ -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 | 
