From 7d23ffe1bc1f1ed63b7fff1a9576694af62eee91 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Sun, 4 Jul 2021 19:04:46 -0400 Subject: [PATCH] qmk_settings: wrap COMBO_TERM --- quantum/process_keycode/process_combo.c | 3 ++- quantum/qmk_settings.c | 4 ++++ quantum/qmk_settings.h | 9 ++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index 77122eada8..c210eb3c6f 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -16,6 +16,7 @@ #include "print.h" #include "process_combo.h" +#include "qmk_settings.h" #ifdef VIAL_COMBO_ENABLE #include "dynamic_keymap.h" @@ -222,7 +223,7 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { } void matrix_scan_combo(void) { - if (b_combo_enable && timer && timer_elapsed(timer) > COMBO_TERM) { + if (b_combo_enable && timer && timer_elapsed(timer) > QS_combo_term) { /* This disables the combo, meaning key events for this * combo will be handled by the next processors in the chain */ diff --git a/quantum/qmk_settings.c b/quantum/qmk_settings.c index ea71add9cd..933a3b78f9 100644 --- a/quantum/qmk_settings.c +++ b/quantum/qmk_settings.c @@ -7,6 +7,7 @@ #include "dynamic_keymap.h" #include "process_auto_shift.h" #include "mousekey.h" +#include "process_combo.h" qmk_settings_t QS; @@ -30,6 +31,7 @@ static void mousekey_apply(void) { static const qmk_settings_proto_t protos[] PROGMEM = { DECLARE_SETTING(1, grave_esc_override), + DECLARE_SETTING(2, combo_term), DECLARE_SETTING(3, auto_shift), DECLARE_SETTING_CB(4, auto_shift_timeout, auto_shift_timeout_apply), DECLARE_SETTING(5, osk_tap_toggle), @@ -98,6 +100,8 @@ void qmk_settings_reset(void) { QS.mousekey_wheel_max_speed = MOUSEKEY_WHEEL_MAX_SPEED; QS.mousekey_wheel_time_to_max = MOUSEKEY_WHEEL_TIME_TO_MAX; + QS.combo_term = COMBO_TERM; + save_settings(); /* to trigger all callbacks */ qmk_settings_init(); diff --git a/quantum/qmk_settings.h b/quantum/qmk_settings.h index b3b0bfe0c7..52b4d76ac6 100644 --- a/quantum/qmk_settings.h +++ b/quantum/qmk_settings.h @@ -94,12 +94,13 @@ typedef struct { uint16_t mousekey_wheel_interval; uint16_t mousekey_wheel_max_speed; uint16_t mousekey_wheel_time_to_max; + uint16_t combo_term; uint8_t grave_esc_override; uint8_t auto_shift; uint8_t osk_tap_toggle; uint8_t padding0; } qmk_settings_t; -_Static_assert(sizeof(qmk_settings_t) == 26, "unexpected size of the qmk_settings_t structure"); +_Static_assert(sizeof(qmk_settings_t) == 28, "unexpected size of the qmk_settings_t structure"); typedef void (*qmk_setting_callback_t)(void); @@ -141,6 +142,9 @@ extern qmk_settings_t QS; /* Mouse keys */ #define QS_mousekey_move_delta (QS.mousekey_move_delta) +/* Combo */ +#define QS_combo_term (QS.combo_term) + #else /* dynamic settings framework is disabled => hardcode the settings and let the compiler optimize extra branches out */ @@ -166,4 +170,7 @@ extern qmk_settings_t QS; /* Mouse keys */ #define QS_mousekey_move_delta MOUSEKEY_MOVE_DELTA +/* Combo */ +#define QS_combo_term COMBO_TERM + #endif