aboutsummaryrefslogtreecommitdiff
path: root/quantum/quantum.c
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2020-03-22 06:29:05 -0700
committerGitHub <noreply@github.com>2020-03-23 00:29:05 +1100
commit5117dff6a26aec4eca04fb9787b4f428884739bc (patch)
treeecc94acb888c3ed330c11008fa6324b1d73b12cc /quantum/quantum.c
parente5d34fd084a7bdde0867749470b27c50e8144eb8 (diff)
downloadqmk_firmware-5117dff6a26aec4eca04fb9787b4f428884739bc.tar.gz
qmk_firmware-5117dff6a26aec4eca04fb9787b4f428884739bc.zip
Add Post Processing to process_record (#4892)
* Improve process_record system Code based on @colinta's * Rename and better handle functions * Fix incorrect function call to process_record_user * Add documentation for post_process_record * Add both get_event_keycode and get_record_keycode functions And add some comments about these functions * Update code format * Cleanup merge artifacts
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 49767819d..d7dbc49dc 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -120,6 +120,14 @@ __attribute__((weak)) bool process_record_kb(uint16_t keycode, keyrecord_t *reco
120 120
121__attribute__((weak)) bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } 121__attribute__((weak)) bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }
122 122
123__attribute__ ((weak))
124void post_process_record_kb(uint16_t keycode, keyrecord_t *record) {
125 post_process_record_user(keycode, record);
126}
127
128__attribute__ ((weak))
129void post_process_record_user(uint16_t keycode, keyrecord_t *record) {}
130
123void reset_keyboard(void) { 131void reset_keyboard(void) {
124 clear_keyboard(); 132 clear_keyboard();
125#if defined(MIDI_ENABLE) && defined(MIDI_BASIC) 133#if defined(MIDI_ENABLE) && defined(MIDI_BASIC)
@@ -172,9 +180,15 @@ uint16_t get_event_keycode(keyevent_t event) {
172 return keymap_key_to_keycode(layer_switch_get_layer(event.key), event.key); 180 return keymap_key_to_keycode(layer_switch_get_layer(event.key), event.key);
173} 181}
174 182
175/* Main keycode processing function. Hands off handling to other functions, 183/* Get keycode, and then call keyboard function */
176 * then processes internal Quantum keycodes, then processes ACTIONs. 184void post_process_record_quantum(keyrecord_t *record) {
177 */ 185 uint16_t keycode = get_record_keycode(record);
186 post_process_record_kb(keycode, record);
187}
188
189/* Core keycode function, hands off handling to other functions,
190 then processes internal quantum keycodes, and then processes
191 ACTIONs. */
178bool process_record_quantum(keyrecord_t *record) { 192bool process_record_quantum(keyrecord_t *record) {
179 uint16_t keycode = get_record_keycode(record); 193 uint16_t keycode = get_record_keycode(record);
180 194