Browse Source

Add magic capable (un)register functions

pull/9125/head
Drashna Jael're 3 years ago
parent
commit
1dc6a8cec8
No known key found for this signature in database GPG Key ID: DBA1FD3A860D1B11
2 changed files with 35 additions and 0 deletions
  1. +28
    -0
      quantum/quantum.c
  2. +7
    -0
      quantum/quantum.h

+ 28
- 0
quantum/quantum.c View File

@ -108,6 +108,34 @@ void tap_code16(uint16_t code) {
unregister_code16(code);
}
void register_magic_code(uint8_t code) { register_code(keycode_config(code)); }
void register_magic_code16(uint16_t keycode) {
if (keycode >= QK_MODS && keycode <= QK_MODS_MAX) {
keycode = (mod_config((keycode >> 8) & 0x1F) << 8 | keycode_config(keycode & 0xFF));
}
register_code16(keycode_config(keycode));
}
void unregister_magic_code(uint8_t code) { unregister_code(keycode_config(code)); }
void unregister_magic_code16(uint16_t keycode) {
if (keycode >= QK_MODS && keycode <= QK_MODS_MAX) {
keycode = (mod_config((keycode >> 8) & 0x1F) << 8 | keycode_config(keycode & 0xFF));
}
unregister_code16(keycode_config(keycode));
}
void tap_magic_code(uint8_t keycode) { tap_code(keycode_config(keycode)); }
void tap_magic_code_delay(uint8_t keycode, uint16_t delay) { tap_code_delay(keycode_config(keycode), delay); }
void tap_magic_code16(uint16_t keycode) {
if (keycode >= QK_MODS && keycode <= QK_MODS_MAX) {
keycode = (mod_config((keycode >> 8) & 0x1F) << 8 | keycode_config(keycode & 0xFF));
}
tap_code16(keycode_config(keycode));
}
__attribute__((weak)) bool process_action_kb(keyrecord_t *record) { return true; }
__attribute__((weak)) bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return process_record_user(keycode, record); }


+ 7
- 0
quantum/quantum.h View File

@ -232,6 +232,13 @@ void shutdown_user(void);
void register_code16(uint16_t code);
void unregister_code16(uint16_t code);
void tap_code16(uint16_t code);
void register_magic_code(uint8_t code);
void register_magic_code16(uint16_t keycode);
void unregister_magic_code(uint8_t code);
void unregister_magic_code16(uint16_t keycode);
void tap_magic_code(uint8_t keycode);
void tap_magic_code_delay(uint8_t keycode, uint16_t delay);
void tap_magic_code16(uint16_t keycode);
void led_set_user(uint8_t usb_led);
void led_set_kb(uint8_t usb_led);


Loading…
Cancel
Save