@ -33,22 +33,42 @@ static void do_code16 (uint16_t code, void (*f) (uint8_t)) {
f ( KC_RGUI ) ;
f ( KC_RGUI ) ;
}
}
static inline void qk_register_weak_mods ( uint8_t kc ) {
add_weak_mods ( MOD_BIT ( kc ) ) ;
send_keyboard_report ( ) ;
}
static inline void qk_unregister_weak_mods ( uint8_t kc ) {
del_weak_mods ( MOD_BIT ( kc ) ) ;
send_keyboard_report ( ) ;
}
static inline void qk_register_mods ( uint8_t kc ) {
static inline void qk_register_mods ( uint8_t kc ) {
register_mods ( MOD_BIT ( kc ) ) ;
add_weak_mods ( MOD_BIT ( kc ) ) ;
send_keyboard_report ( ) ;
}
}
static inline void qk_unregister_mods ( uint8_t kc ) {
static inline void qk_unregister_mods ( uint8_t kc ) {
unregister_mods ( MOD_BIT ( kc ) ) ;
del_weak_mods ( MOD_BIT ( kc ) ) ;
send_keyboard_report ( ) ;
}
}
void register_code16 ( uint16_t code ) {
void register_code16 ( uint16_t code ) {
if ( IS_MOD ( code ) | | code = = KC_NO ) {
do_code16 ( code , qk_register_mods ) ;
do_code16 ( code , qk_register_mods ) ;
} else {
do_code16 ( code , qk_register_weak_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 ) ;
if ( IS_MOD ( code ) | | code = = KC_NO ) {
do_code16 ( code , qk_unregister_mods ) ;
do_code16 ( code , qk_unregister_mods ) ;
} else {
do_code16 ( code , qk_unregister_weak_mods ) ;
}
}
}
__attribute__ ( ( weak ) )
__attribute__ ( ( weak ) )