diff options
Diffstat (limited to 'quantum/process_keycode/process_leader.c')
-rw-r--r-- | quantum/process_keycode/process_leader.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c index b74b4927a8..80bc96e65f 100644 --- a/quantum/process_keycode/process_leader.c +++ b/quantum/process_keycode/process_leader.c @@ -14,18 +14,16 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifdef LEADER_ENABLE +#include "process_leader.h" +#include <string.h> -# include "process_leader.h" -# include <string.h> - -# ifndef LEADER_TIMEOUT -# define LEADER_TIMEOUT 300 -# endif +#ifndef LEADER_TIMEOUT +# define LEADER_TIMEOUT 300 +#endif -__attribute__((weak)) void leader_start(void) {} +__attribute__((weak)) void leader_start_user(void) {} -__attribute__((weak)) void leader_end(void) {} +__attribute__((weak)) void leader_end_user(void) {} // Leader key stuff bool leading = false; @@ -34,52 +32,54 @@ uint16_t leader_time = 0; uint16_t leader_sequence[5] = {0, 0, 0, 0, 0}; uint8_t leader_sequence_size = 0; -void qk_leader_start(void) { +void leader_start(void) { if (leading) { return; } - leader_start(); + leader_start_user(); leading = true; leader_time = timer_read(); leader_sequence_size = 0; memset(leader_sequence, 0, sizeof(leader_sequence)); } +void leader_end(void) { + leader_end_user(); +} + bool process_leader(uint16_t keycode, keyrecord_t *record) { // Leader key set-up if (record->event.pressed) { if (leading) { -# ifndef LEADER_NO_TIMEOUT +#ifndef LEADER_NO_TIMEOUT if (timer_elapsed(leader_time) < LEADER_TIMEOUT) -# endif // LEADER_NO_TIMEOUT +#endif // LEADER_NO_TIMEOUT { -# ifndef LEADER_KEY_STRICT_KEY_PROCESSING +#ifndef LEADER_KEY_STRICT_KEY_PROCESSING if (IS_QK_MOD_TAP(keycode)) { keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode); } else if (IS_QK_LAYER_TAP(keycode)) { keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode); } -# endif // LEADER_KEY_STRICT_KEY_PROCESSING +#endif // LEADER_KEY_STRICT_KEY_PROCESSING if (leader_sequence_size < ARRAY_SIZE(leader_sequence)) { leader_sequence[leader_sequence_size] = keycode; leader_sequence_size++; } else { leading = false; - leader_end(); + leader_end_user(); return true; } -# ifdef LEADER_PER_KEY_TIMING +#ifdef LEADER_PER_KEY_TIMING leader_time = timer_read(); -# endif +#endif return false; } } else { if (keycode == QK_LEADER) { - qk_leader_start(); + leader_start(); } } } return true; } - -#endif |