~ruther/qmk_firmware

4ef8ff458d7dcf49a288bb484323ab2098a21ef9 — Joel Challis 4 years ago 50964ae
Minor tidy up of key overrides (#13747)

* Minor tidy up of key overrides

* Update quantum/quantum.c

* Update quantum/quantum.c
5 files changed, 17 insertions(+), 39 deletions(-)

M common_features.mk
M quantum/process_keycode/process_key_override.c
M quantum/process_keycode/process_key_override.h
D quantum/process_keycode/process_key_override_private.h
M quantum/quantum.c
M common_features.mk => common_features.mk +5 -5
@@ 334,11 334,6 @@ ifeq ($(strip $(PRINTING_ENABLE)), yes)
    SRC += $(TMK_DIR)/protocol/serial_uart.c
endif

ifeq ($(strip $(KEY_OVERRIDE_ENABLE)), yes)
    OPT_DEFS += -DKEY_OVERRIDE_ENABLE
    SRC += $(QUANTUM_DIR)/process_keycode/process_key_override.c
endif

ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
    SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
    SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)


@@ 663,6 658,11 @@ ifeq ($(strip $(COMBO_ENABLE)), yes)
    OPT_DEFS += -DCOMBO_ENABLE
endif

ifeq ($(strip $(KEY_OVERRIDE_ENABLE)), yes)
    SRC += $(QUANTUM_DIR)/process_keycode/process_key_override.c
    OPT_DEFS += -DKEY_OVERRIDE_ENABLE
endif

ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
    SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
    OPT_DEFS += -DTAP_DANCE_ENABLE

M quantum/process_keycode/process_key_override.c => quantum/process_keycode/process_key_override.c +1 -1
@@ 380,7 380,7 @@ static bool try_activating_override(const uint16_t keycode, const uint8_t layer,
    return true;
}

void matrix_scan_key_override(void) {
void key_override_task(void) {
    if (deferred_register == 0) {
        return;
    }

M quantum/process_keycode/process_key_override.h => quantum/process_keycode/process_key_override.h +10 -4
@@ 92,16 92,22 @@ typedef struct {
extern const key_override_t **key_overrides;

/** Turns key overrides on */
extern void key_override_on(void);
void key_override_on(void);

/** Turns key overrides off */
extern void key_override_off(void);
void key_override_off(void);

/** Toggles key overrides on */
extern void key_override_toggle(void);
void key_override_toggle(void);

/** Returns whether key overrides are enabled */
extern bool key_override_is_enabled(void);
bool key_override_is_enabled(void);

/** Handling of key overrides and its implemented keycodes */
bool process_key_override(const uint16_t keycode, const keyrecord_t *const record);

/** Perform any deferred keys */
void key_override_task(void);

/**
 *  Preferrably use these macros to create key overrides. They fix many of the options to a standard setting that should satisfy most basic use-cases. Only directly create a key_override_t struct when you really need to.

D quantum/process_keycode/process_key_override_private.h => quantum/process_keycode/process_key_override_private.h +0 -24
@@ 1,24 0,0 @@
/*
 * Copyright 2021 Jonas Gessner
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include <stdint.h>
#include "action.h"

bool process_key_override(const uint16_t keycode, const keyrecord_t *const record);
void matrix_scan_key_override(void);

M quantum/quantum.c => quantum/quantum.c +1 -5
@@ 55,10 55,6 @@ float default_layer_songs[][16][2] = DEFAULT_LAYER_SONGS;
#    include "process_auto_shift.h"
#endif

#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:


@@ 415,7 411,7 @@ void matrix_scan_quantum() {
#endif

#ifdef KEY_OVERRIDE_ENABLE
    matrix_scan_key_override();
    key_override_task();
#endif

#ifdef SEQUENCER_ENABLE