diff options
author | Toni <jeder@mail1a.de> | 2016-08-19 09:49:56 +0200 |
---|---|---|
committer | Toni <jeder@mail1a.de> | 2016-08-19 09:49:56 +0200 |
commit | 225c73ed30b97229bcb88182b5153c27082886f9 (patch) | |
tree | 3aa08f903fd3dd886656efccf96020083c8c1f9f /quantum/quantum.c | |
parent | fe906538861c5ee30a75d6f955e611dd38d93977 (diff) | |
parent | 2c59f71090f5053fee389012871bff801c2b0a2e (diff) |
Merge remote-tracking branch 'origin/master' into amj60
merge with upstream
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r-- | quantum/quantum.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c index cb1ba04ffb..e3a20f43e0 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -1,5 +1,42 @@ #include "quantum.h" +static void do_code16 (uint16_t code, void (*f) (uint8_t)) { + switch (code) { + case QK_MODS ... QK_MODS_MAX: + break; + default: + return; + } + + if (code & QK_LCTL) + f(KC_LCTL); + if (code & QK_LSFT) + f(KC_LSFT); + if (code & QK_LALT) + f(KC_LALT); + if (code & QK_LGUI) + f(KC_LGUI); + + if (code & QK_RCTL) + f(KC_RCTL); + if (code & QK_RSFT) + f(KC_RSFT); + if (code & QK_RALT) + f(KC_RALT); + if (code & QK_RGUI) + f(KC_RGUI); +} + +void register_code16 (uint16_t code) { + do_code16 (code, register_code); + register_code (code); +} + +void unregister_code16 (uint16_t code) { + unregister_code (code); + do_code16 (code, unregister_code); +} + __attribute__ ((weak)) bool process_action_kb(keyrecord_t *record) { return true; |