1
0
Fork 0

speeding up (un)register_code16

In register_code16 and unregister_code16 we call register_code and
unregister_code twice, once for the mods and once for the keycode.
The (un)register_code have many check to see that keycode we have sent
however because we know that we are sending it a mods key, why not
just skip all of it and call (un)register_mods instead. This will skip
alot of checks and should speedup the loop a little.
This commit is contained in:
SjB 2017-01-21 02:01:55 -05:00
parent 841d7e6a1d
commit 2b3859937b
1 changed files with 10 additions and 2 deletions

View File

@ -33,14 +33,22 @@ static void do_code16 (uint16_t code, void (*f) (uint8_t)) {
f(KC_RGUI); f(KC_RGUI);
} }
static inline void qk_register_mods(uint8_t kc) {
register_mods(MOD_BIT(kc));
}
static inline void qk_unregister_mods(uint8_t kc) {
unregister_mods(MOD_BIT(kc));
}
void register_code16 (uint16_t code) { void register_code16 (uint16_t code) {
do_code16 (code, register_code); do_code16 (code, qk_register_mods);
register_code (code); register_code (code);
} }
void unregister_code16 (uint16_t code) { void unregister_code16 (uint16_t code) {
unregister_code (code); unregister_code (code);
do_code16 (code, unregister_code); do_code16 (code, qk_unregister_mods);
} }
__attribute__ ((weak)) __attribute__ ((weak))