Print error when building non-existing keyboard
[jackhill/qmk/firmware.git] / quantum / process_keycode / process_leader.c
CommitLineData
65faab3b
JH
1#include "process_leader.h"
2
3__attribute__ ((weak))
4void leader_start(void) {}
5
6__attribute__ ((weak))
7void leader_end(void) {}
8
9// Leader key stuff
10bool leading = false;
11uint16_t leader_time = 0;
12
13uint16_t leader_sequence[5] = {0, 0, 0, 0, 0};
14uint8_t leader_sequence_size = 0;
15
16bool process_leader(uint16_t keycode, keyrecord_t *record) {
17 // Leader key set-up
18 if (record->event.pressed) {
19 if (!leading && keycode == KC_LEAD) {
20 leader_start();
21 leading = true;
22 leader_time = timer_read();
23 leader_sequence_size = 0;
24 leader_sequence[0] = 0;
25 leader_sequence[1] = 0;
26 leader_sequence[2] = 0;
27 leader_sequence[3] = 0;
28 leader_sequence[4] = 0;
29 return false;
30 }
31 if (leading && timer_elapsed(leader_time) < LEADER_TIMEOUT) {
32 leader_sequence[leader_sequence_size] = keycode;
33 leader_sequence_size++;
34 return false;
35 }
36 }
37 return true;
38}