aboutsummaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
Diffstat (limited to 'quantum')
-rw-r--r--quantum/process_keycode/process_tap_dance.c8
-rw-r--r--quantum/quantum.c37
-rw-r--r--quantum/quantum.h3
3 files changed, 44 insertions, 4 deletions
diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c
index e152f2350..07de3ecb8 100644
--- a/quantum/process_keycode/process_tap_dance.c
+++ b/quantum/process_keycode/process_tap_dance.c
@@ -8,9 +8,9 @@ void qk_tap_dance_pair_finished (qk_tap_dance_state_t *state, void *user_data) {
8 qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; 8 qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data;
9 9
10 if (state->count == 1) { 10 if (state->count == 1) {
11 register_code (pair->kc1); 11 register_code16 (pair->kc1);
12 } else if (state->count == 2) { 12 } else if (state->count == 2) {
13 register_code (pair->kc2); 13 register_code16 (pair->kc2);
14 } 14 }
15} 15}
16 16
@@ -18,9 +18,9 @@ void qk_tap_dance_pair_reset (qk_tap_dance_state_t *state, void *user_data) {
18 qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data; 18 qk_tap_dance_pair_t *pair = (qk_tap_dance_pair_t *)user_data;
19 19
20 if (state->count == 1) { 20 if (state->count == 1) {
21 unregister_code (pair->kc1); 21 unregister_code16 (pair->kc1);
22 } else if (state->count == 2) { 22 } else if (state->count == 2) {
23 unregister_code (pair->kc2); 23 unregister_code16 (pair->kc2);
24 } 24 }
25} 25}
26 26
diff --git a/quantum/quantum.c b/quantum/quantum.c
index cb1ba04ff..e3a20f43e 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -1,5 +1,42 @@
1#include "quantum.h" 1#include "quantum.h"
2 2
3static void do_code16 (uint16_t code, void (*f) (uint8_t)) {
4 switch (code) {
5 case QK_MODS ... QK_MODS_MAX:
6 break;
7 default:
8 return;
9 }
10
11 if (code & QK_LCTL)
12 f(KC_LCTL);
13 if (code & QK_LSFT)
14 f(KC_LSFT);
15 if (code & QK_LALT)
16 f(KC_LALT);
17 if (code & QK_LGUI)
18 f(KC_LGUI);
19
20 if (code & QK_RCTL)
21 f(KC_RCTL);
22 if (code & QK_RSFT)
23 f(KC_RSFT);
24 if (code & QK_RALT)
25 f(KC_RALT);
26 if (code & QK_RGUI)
27 f(KC_RGUI);
28}
29
30void register_code16 (uint16_t code) {
31 do_code16 (code, register_code);
32 register_code (code);
33}
34
35void unregister_code16 (uint16_t code) {
36 unregister_code (code);
37 do_code16 (code, unregister_code);
38}
39
3__attribute__ ((weak)) 40__attribute__ ((weak))
4bool process_action_kb(keyrecord_t *record) { 41bool process_action_kb(keyrecord_t *record) {
5 return true; 42 return true;
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 6e3fbcc79..0c6046649 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -83,6 +83,9 @@ void reset_keyboard(void);
83void startup_user(void); 83void startup_user(void);
84void shutdown_user(void); 84void shutdown_user(void);
85 85
86void register_code16 (uint16_t code);
87void unregister_code16 (uint16_t code);
88
86#ifdef BACKLIGHT_ENABLE 89#ifdef BACKLIGHT_ENABLE
87void backlight_init_ports(void); 90void backlight_init_ports(void);
88 91