diff options
| -rw-r--r-- | builddefs/common_features.mk | 15 | ||||
| -rw-r--r-- | builddefs/generic_features.mk | 1 | ||||
| -rw-r--r-- | quantum/bootmagic/bootmagic.c (renamed from quantum/bootmagic/bootmagic_lite.c) | 0 | ||||
| -rw-r--r-- | quantum/bootmagic/bootmagic.h | 7 | ||||
| -rw-r--r-- | quantum/bootmagic/bootmagic_lite.h | 25 | ||||
| -rw-r--r-- | quantum/bootmagic/magic.c | 54 | ||||
| -rw-r--r-- | quantum/bootmagic/magic.h | 18 | ||||
| -rw-r--r-- | quantum/keyboard.c | 58 | ||||
| -rw-r--r-- | quantum/keycode_config.c | 2 | ||||
| -rw-r--r-- | quantum/quantum.h | 5 | 
10 files changed, 51 insertions, 134 deletions
| diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index a6193991f8..513a3678a9 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -608,24 +608,9 @@ ifeq ($(strip $(VIA_ENABLE)), yes)      TRI_LAYER_ENABLE := yes  endif -VALID_MAGIC_TYPES := yes -BOOTMAGIC_ENABLE ?= no -ifneq ($(strip $(BOOTMAGIC_ENABLE)), no) -  ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),) -    $(call CATASTROPHIC_ERROR,Invalid BOOTMAGIC_ENABLE,BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic) -  endif -  ifneq ($(strip $(BOOTMAGIC_ENABLE)), no) -      OPT_DEFS += -DBOOTMAGIC_LITE -      QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_lite.c -  endif -endif -COMMON_VPATH += $(QUANTUM_DIR)/bootmagic -QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/magic.c -  VALID_CUSTOM_MATRIX_TYPES:= yes lite no  CUSTOM_MATRIX ?= no -  ifneq ($(strip $(CUSTOM_MATRIX)), yes)      ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),)          $(call CATASTROPHIC_ERROR,Invalid CUSTOM_MATRIX,CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type) diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk index 9c86958625..dc34a64230 100644 --- a/builddefs/generic_features.mk +++ b/builddefs/generic_features.mk @@ -21,6 +21,7 @@ SPACE_CADET_ENABLE ?= yes  GENERIC_FEATURES = \      AUTO_SHIFT \      AUTOCORRECT \ +    BOOTMAGIC \      CAPS_WORD \      COMBO \      COMMAND \ diff --git a/quantum/bootmagic/bootmagic_lite.c b/quantum/bootmagic/bootmagic.c index efce6bfd12..efce6bfd12 100644 --- a/quantum/bootmagic/bootmagic_lite.c +++ b/quantum/bootmagic/bootmagic.c diff --git a/quantum/bootmagic/bootmagic.h b/quantum/bootmagic/bootmagic.h index db826025ce..4b5f5f7c5e 100644 --- a/quantum/bootmagic/bootmagic.h +++ b/quantum/bootmagic/bootmagic.h @@ -15,8 +15,11 @@   */  #pragma once -#if defined(BOOTMAGIC_LITE) -#    include "bootmagic_lite.h" +#ifndef BOOTMAGIC_LITE_COLUMN +#    define BOOTMAGIC_LITE_COLUMN 0 +#endif +#ifndef BOOTMAGIC_LITE_ROW +#    define BOOTMAGIC_LITE_ROW 0  #endif  void bootmagic(void); diff --git a/quantum/bootmagic/bootmagic_lite.h b/quantum/bootmagic/bootmagic_lite.h deleted file mode 100644 index 17777e6b4a..0000000000 --- a/quantum/bootmagic/bootmagic_lite.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2021 QMK - * - * 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 3 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 - -#ifndef BOOTMAGIC_LITE_COLUMN -#    define BOOTMAGIC_LITE_COLUMN 0 -#endif -#ifndef BOOTMAGIC_LITE_ROW -#    define BOOTMAGIC_LITE_ROW 0 -#endif - -void bootmagic_lite(void); diff --git a/quantum/bootmagic/magic.c b/quantum/bootmagic/magic.c deleted file mode 100644 index d68df3fa58..0000000000 --- a/quantum/bootmagic/magic.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright 2021 QMK - * - * 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 3 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/>. - */ -#include <stdint.h> -#include <stdbool.h> -#include "wait.h" -#include "matrix.h" -#include "bootloader.h" -#include "debug.h" -#include "keycode_config.h" -#include "host.h" -#include "action_layer.h" -#include "eeconfig.h" -#include "bootmagic.h" - -keymap_config_t keymap_config; - -__attribute__((weak)) void bootmagic(void) {} - -/** \brief Magic - * - * FIXME: Needs doc - */ -void magic(void) { -    /* check signature */ -    if (!eeconfig_is_enabled()) { -        eeconfig_init(); -    } - -    /* init globals */ -    debug_config.raw  = eeconfig_read_debug(); -    keymap_config.raw = eeconfig_read_keymap(); - -    bootmagic(); - -    /* read here just incase bootmagic process changed its value */ -    layer_state_t default_layer = (layer_state_t)eeconfig_read_default_layer(); -    default_layer_set(default_layer); - -    /* Also initialize layer state to trigger callback functions for layer_state */ -    layer_state_set_kb((layer_state_t)layer_state); -} diff --git a/quantum/bootmagic/magic.h b/quantum/bootmagic/magic.h deleted file mode 100644 index 2c3969b85c..0000000000 --- a/quantum/bootmagic/magic.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright 2021 QMK - * - * 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 3 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 - -void magic(void); diff --git a/quantum/keyboard.c b/quantum/keyboard.c index b5fa1a6e2e..9bdf6e6344 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -20,7 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "keycode_config.h"  #include "matrix.h"  #include "keymap_introspection.h" -#include "magic.h"  #include "host.h"  #include "led.h"  #include "keycode.h" @@ -33,6 +32,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "sendchar.h"  #include "eeconfig.h"  #include "action_layer.h" +#ifdef BOOTMAGIC_ENABLE +#    include "bootmagic.h" +#endif  #ifdef AUDIO_ENABLE  #    include "audio.h"  #endif @@ -370,28 +372,30 @@ void housekeeping_task(void) {      housekeeping_task_user();  } -/** \brief Init tasks previously located in matrix_init_quantum +/** \brief quantum_init   * - * TODO: rationalise against keyboard_init and current split role + * Init global state   */  void quantum_init(void) { -    magic(); -    led_init_ports(); -#ifdef BACKLIGHT_ENABLE -    backlight_init_ports(); -#endif -#ifdef AUDIO_ENABLE -    audio_init(); -#endif -#ifdef LED_MATRIX_ENABLE -    led_matrix_init(); -#endif -#ifdef RGB_MATRIX_ENABLE -    rgb_matrix_init(); -#endif -#if defined(UNICODE_COMMON_ENABLE) -    unicode_input_mode_init(); +    /* check signature */ +    if (!eeconfig_is_enabled()) { +        eeconfig_init(); +    } + +    /* init globals */ +    debug_config.raw  = eeconfig_read_debug(); +    keymap_config.raw = eeconfig_read_keymap(); + +#ifdef BOOTMAGIC_ENABLE +    bootmagic();  #endif + +    /* read here just incase bootmagic process changed its value */ +    layer_state_t default_layer = (layer_state_t)eeconfig_read_default_layer(); +    default_layer_set(default_layer); + +    /* Also initialize layer state to trigger callback functions for layer_state */ +    layer_state_set_kb((layer_state_t)layer_state);  }  /** \brief keyboard_init @@ -412,6 +416,22 @@ void keyboard_init(void) {  #endif      matrix_init();      quantum_init(); +    led_init_ports(); +#ifdef BACKLIGHT_ENABLE +    backlight_init_ports(); +#endif +#ifdef AUDIO_ENABLE +    audio_init(); +#endif +#ifdef LED_MATRIX_ENABLE +    led_matrix_init(); +#endif +#ifdef RGB_MATRIX_ENABLE +    rgb_matrix_init(); +#endif +#if defined(UNICODE_COMMON_ENABLE) +    unicode_input_mode_init(); +#endif  #if defined(CRC_ENABLE)      crc_init();  #endif diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index 864488a65c..cbfbcc8140 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -16,6 +16,8 @@  #include "keycode_config.h" +keymap_config_t keymap_config; +  /** \brief keycode_config   *   * This function is used to check a specific keycode against the bootmagic config, diff --git a/quantum/quantum.h b/quantum/quantum.h index 996e93a12f..98d848581d 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -42,7 +42,6 @@  #include "action_layer.h"  #include "eeconfig.h"  #include "bootloader.h" -#include "bootmagic.h"  #include "timer.h"  #include "sync_timer.h"  #include "gpio.h" @@ -59,6 +58,10 @@  #include <stdio.h>  #include <string.h> +#ifdef BOOTMAGIC_ENABLE +#    include "bootmagic.h" +#endif +  #ifdef DEFERRED_EXEC_ENABLE  #    include "deferred_exec.h"  #endif | 
