From 5cd31fda9c1302044f4423d940be7c888d15ad1a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 28 Jan 2024 22:51:58 +0000 Subject: Begin removal of bootmagic lite terminology (#22970) --- quantum/bootmagic/bootmagic.c | 69 ++++++++++++++++++++++++++++++++++++++ quantum/bootmagic/bootmagic.h | 7 ++-- quantum/bootmagic/bootmagic_lite.c | 69 -------------------------------------- quantum/bootmagic/bootmagic_lite.h | 25 -------------- quantum/bootmagic/magic.c | 54 ----------------------------- quantum/bootmagic/magic.h | 18 ---------- quantum/keyboard.c | 58 +++++++++++++++++++++----------- quantum/keycode_config.c | 2 ++ quantum/quantum.h | 5 ++- 9 files changed, 119 insertions(+), 188 deletions(-) create mode 100644 quantum/bootmagic/bootmagic.c delete mode 100644 quantum/bootmagic/bootmagic_lite.c delete mode 100644 quantum/bootmagic/bootmagic_lite.h delete mode 100644 quantum/bootmagic/magic.c delete mode 100644 quantum/bootmagic/magic.h (limited to 'quantum') diff --git a/quantum/bootmagic/bootmagic.c b/quantum/bootmagic/bootmagic.c new file mode 100644 index 0000000000..efce6bfd12 --- /dev/null +++ b/quantum/bootmagic/bootmagic.c @@ -0,0 +1,69 @@ +/* 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 . + */ +#include "bootmagic.h" +#include "matrix.h" +#include "keyboard.h" +#include "wait.h" +#include "eeconfig.h" +#include "bootloader.h" + +/** \brief Reset eeprom + * + * ...just incase someone wants to only change the eeprom behaviour + */ +__attribute__((weak)) void bootmagic_lite_reset_eeprom(void) { + eeconfig_disable(); +} + +/** \brief The lite version of TMK's bootmagic based on Wilba. + * + * 100% less potential for accidentally making the keyboard do stupid things. + */ +__attribute__((weak)) void bootmagic_lite(void) { + // We need multiple scans because debouncing can't be turned off. + matrix_scan(); +#if defined(DEBOUNCE) && DEBOUNCE > 0 + wait_ms(DEBOUNCE * 2); +#else + wait_ms(30); +#endif + matrix_scan(); + + // If the configured key (commonly Esc) is held down on power up, + // reset the EEPROM valid state and jump to bootloader. + // This isn't very generalized, but we need something that doesn't + // rely on user's keymaps in firmware or EEPROM. + uint8_t row = BOOTMAGIC_LITE_ROW; + uint8_t col = BOOTMAGIC_LITE_COLUMN; + +#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_LITE_ROW_RIGHT) && defined(BOOTMAGIC_LITE_COLUMN_RIGHT) + if (!is_keyboard_left()) { + row = BOOTMAGIC_LITE_ROW_RIGHT; + col = BOOTMAGIC_LITE_COLUMN_RIGHT; + } +#endif + + if (matrix_get_row(row) & (1 << col)) { + bootmagic_lite_reset_eeprom(); + + // Jump to bootloader. + bootloader_jump(); + } +} + +void bootmagic(void) { + bootmagic_lite(); +} 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.c b/quantum/bootmagic/bootmagic_lite.c deleted file mode 100644 index efce6bfd12..0000000000 --- a/quantum/bootmagic/bootmagic_lite.c +++ /dev/null @@ -1,69 +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 . - */ -#include "bootmagic.h" -#include "matrix.h" -#include "keyboard.h" -#include "wait.h" -#include "eeconfig.h" -#include "bootloader.h" - -/** \brief Reset eeprom - * - * ...just incase someone wants to only change the eeprom behaviour - */ -__attribute__((weak)) void bootmagic_lite_reset_eeprom(void) { - eeconfig_disable(); -} - -/** \brief The lite version of TMK's bootmagic based on Wilba. - * - * 100% less potential for accidentally making the keyboard do stupid things. - */ -__attribute__((weak)) void bootmagic_lite(void) { - // We need multiple scans because debouncing can't be turned off. - matrix_scan(); -#if defined(DEBOUNCE) && DEBOUNCE > 0 - wait_ms(DEBOUNCE * 2); -#else - wait_ms(30); -#endif - matrix_scan(); - - // If the configured key (commonly Esc) is held down on power up, - // reset the EEPROM valid state and jump to bootloader. - // This isn't very generalized, but we need something that doesn't - // rely on user's keymaps in firmware or EEPROM. - uint8_t row = BOOTMAGIC_LITE_ROW; - uint8_t col = BOOTMAGIC_LITE_COLUMN; - -#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_LITE_ROW_RIGHT) && defined(BOOTMAGIC_LITE_COLUMN_RIGHT) - if (!is_keyboard_left()) { - row = BOOTMAGIC_LITE_ROW_RIGHT; - col = BOOTMAGIC_LITE_COLUMN_RIGHT; - } -#endif - - if (matrix_get_row(row) & (1 << col)) { - bootmagic_lite_reset_eeprom(); - - // Jump to bootloader. - bootloader_jump(); - } -} - -void bootmagic(void) { - bootmagic_lite(); -} 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 . - */ -#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 . - */ -#include -#include -#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 . - */ -#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 . #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 . #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 #include +#ifdef BOOTMAGIC_ENABLE +# include "bootmagic.h" +#endif + #ifdef DEFERRED_EXEC_ENABLE # include "deferred_exec.h" #endif -- cgit v1.2.3