summaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2024-02-17 12:27:34 +0000
committerGitHub <noreply@github.com>2024-02-17 12:27:34 +0000
commite2dbe39b9475b0d46702e5a32432cb248d72290c (patch)
tree0703d8929f4119bd99a6abe6875736a6d4e1f038 /quantum
parent538333571754c3cbeec92bc793b1b8023744cbbd (diff)
Removal of bootmagic lite terminology (#22979)
Diffstat (limited to 'quantum')
-rw-r--r--quantum/bootmagic/bootmagic.c54
-rw-r--r--quantum/bootmagic/bootmagic.h23
2 files changed, 51 insertions, 26 deletions
diff --git a/quantum/bootmagic/bootmagic.c b/quantum/bootmagic/bootmagic.c
index efce6bfd12..419ec5229e 100644
--- a/quantum/bootmagic/bootmagic.c
+++ b/quantum/bootmagic/bootmagic.c
@@ -20,44 +20,54 @@
#include "eeconfig.h"
#include "bootloader.h"
+#ifndef BOOTMAGIC_DEBOUNCE
+# if defined(DEBOUNCE) && DEBOUNCE > 0
+# define BOOTMAGIC_DEBOUNCE (DEBOUNCE * 2)
+# else
+# define BOOTMAGIC_DEBOUNCE 30
+# endif
+#endif
+
/** \brief Reset eeprom
*
* ...just incase someone wants to only change the eeprom behaviour
*/
-__attribute__((weak)) void bootmagic_lite_reset_eeprom(void) {
+__attribute__((weak)) void bootmagic_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.
+/** \brief Decide reboot based on current matrix state
*/
-__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();
-
+__attribute__((weak)) bool bootmagic_should_reset(void) {
// 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;
+ uint8_t row = BOOTMAGIC_ROW;
+ uint8_t col = BOOTMAGIC_COLUMN;
-#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_LITE_ROW_RIGHT) && defined(BOOTMAGIC_LITE_COLUMN_RIGHT)
+#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_ROW_RIGHT) && defined(BOOTMAGIC_COLUMN_RIGHT)
if (!is_keyboard_left()) {
- row = BOOTMAGIC_LITE_ROW_RIGHT;
- col = BOOTMAGIC_LITE_COLUMN_RIGHT;
+ row = BOOTMAGIC_ROW_RIGHT;
+ col = BOOTMAGIC_COLUMN_RIGHT;
}
#endif
- if (matrix_get_row(row) & (1 << col)) {
- bootmagic_lite_reset_eeprom();
+ return matrix_get_row(row) & (1 << col);
+}
+
+/** \brief The abridged version of TMK's bootmagic based on Wilba.
+ *
+ * 100% less potential for accidentally making the keyboard do stupid things.
+ */
+__attribute__((weak)) void bootmagic_scan(void) {
+ // We need multiple scans because debouncing can't be turned off.
+ matrix_scan();
+ wait_ms(BOOTMAGIC_DEBOUNCE);
+ matrix_scan();
+
+ if (bootmagic_should_reset()) {
+ bootmagic_reset_eeprom();
// Jump to bootloader.
bootloader_jump();
@@ -65,5 +75,5 @@ __attribute__((weak)) void bootmagic_lite(void) {
}
void bootmagic(void) {
- bootmagic_lite();
+ bootmagic_scan();
}
diff --git a/quantum/bootmagic/bootmagic.h b/quantum/bootmagic/bootmagic.h
index 4b5f5f7c5e..ee6fb49748 100644
--- a/quantum/bootmagic/bootmagic.h
+++ b/quantum/bootmagic/bootmagic.h
@@ -15,11 +15,26 @@
*/
#pragma once
-#ifndef BOOTMAGIC_LITE_COLUMN
-# define BOOTMAGIC_LITE_COLUMN 0
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef BOOTMAGIC_LITE_ROW
+# define BOOTMAGIC_ROW BOOTMAGIC_LITE_ROW
#endif
-#ifndef BOOTMAGIC_LITE_ROW
-# define BOOTMAGIC_LITE_ROW 0
+#ifdef BOOTMAGIC_LITE_COLUMN
+# define BOOTMAGIC_COLUMN BOOTMAGIC_LITE_COLUMN
+#endif
+#ifdef BOOTMAGIC_LITE_ROW_RIGHT
+# define BOOTMAGIC_ROW_RIGHT BOOTMAGIC_LITE_ROW_RIGHT
+#endif
+#ifdef BOOTMAGIC_LITE_COLUMN_RIGHT
+# define BOOTMAGIC_COLUMN_RIGHT BOOTMAGIC_LITE_COLUMN_RIGHT
+#endif
+// ========
+
+#ifndef BOOTMAGIC_COLUMN
+# define BOOTMAGIC_COLUMN 0
+#endif
+#ifndef BOOTMAGIC_ROW
+# define BOOTMAGIC_ROW 0
#endif
void bootmagic(void);