Browse Source

process_record implementation (non-breaking for process_action ATM)

Jack Humbert 9 năm trước cách đây
mục cha
commit
17977a7e24
2 tập tin đã thay đổi với 16 bổ sung0 xóa
  1. 13 0
      quantum/quantum.c
  2. 3 0
      quantum/quantum.h

+ 13 - 0
quantum/quantum.c

@@ -12,6 +12,16 @@ 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);
+}
+
+__attribute__ ((weak))
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  return true;
+}
+
 __attribute__ ((weak))
 void leader_start(void) {}
 
@@ -124,6 +134,9 @@ bool process_record_quantum(keyrecord_t *record) {
     keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key);
   #endif
 
+  if (!process_record_kb(keycode, record))
+    return false;
+
     // This is how you use actions here
     // if (keycode == KC_LEAD) {
     //   action_t action;

+ 3 - 0
quantum/quantum.h

@@ -62,6 +62,9 @@ extern uint32_t default_layer_state;
 void matrix_init_kb(void);
 void matrix_scan_kb(void);
 bool process_action_kb(keyrecord_t *record);
+bool process_record_kb(uint16_t keycode, keyrecord_t *record);
+bool process_record_user(uint16_t keycode, keyrecord_t *record);
+
 
 bool is_music_on(void);
 void music_toggle(void);