diff options
| -rw-r--r-- | keyboard/planck/planck.c | 32 | ||||
| -rw-r--r-- | keyboard/planck/planck.h | 1 | ||||
| -rw-r--r-- | quantum/template/template.c | 20 | ||||
| -rw-r--r-- | quantum/template/template.h | 5 | ||||
| -rw-r--r-- | tmk_core/common/action.c | 5 | ||||
| -rw-r--r-- | tmk_core/common/action.h | 3 | 
6 files changed, 45 insertions, 21 deletions
diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index fe8731ec7..4b39cf1e8 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,28 +1,26 @@  #include "planck.h"  __attribute__ ((weak)) -void matrix_init_user(void) { - -} +void matrix_init_user(void) {}  __attribute__ ((weak)) -void matrix_scan_user(void) { +void matrix_scan_user(void) {} -} +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) {}  void matrix_init_kb(void) { -	#ifdef BACKLIGHT_ENABLE -    	backlight_init_ports(); -	#endif +#ifdef BACKLIGHT_ENABLE +	backlight_init_ports(); +#endif -	#ifdef RGBLIGHT_ENABLE -		rgblight_init(); -	#endif +#ifdef RGBLIGHT_ENABLE +	rgblight_init(); +#endif - -    // Turn status LED on -    DDRE |= (1<<6); -    PORTE |= (1<<6); +	// Turn status LED on +	DDRE |= (1<<6); +	PORTE |= (1<<6);  	matrix_init_user();  } @@ -30,3 +28,7 @@ void matrix_init_kb(void) {  void matrix_scan_kb(void) {  	matrix_scan_user();  } + +void process_action_kb(keyrecord_t *record) { +	process_action_user(record); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index e9566b922..edcb5fbff 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -42,5 +42,6 @@  void matrix_init_user(void);  void matrix_scan_user(void); +void process_action_user(keyrecord_t *record);  #endif diff --git a/quantum/template/template.c b/quantum/template/template.c index 58e73cb09..cc52e496f 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -11,6 +11,11 @@ void matrix_scan_user(void) {  }  __attribute__ ((weak)) +void process_action_user(keyrecord_t *record) { +	// leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak))  void led_set_user(uint8_t usb_led) {  	// leave this function blank - it can be defined in a keymap file  } @@ -18,19 +23,26 @@ void led_set_user(uint8_t usb_led) {  void matrix_init_kb(void) {  	// put your keyboard start-up code here  	// runs once when the firmware starts up -	 +  	matrix_init_user();  }  void matrix_scan_kb(void) { -    // put your looping keyboard code here -    // runs every cycle (a lot) +	// put your looping keyboard code here +	// runs every cycle (a lot)  	matrix_scan_user();  } +void process_action_kb(keyrecord_t *record) { +	// put your per-action keyboard code here +	// runs for every action, just before processing by the firmware + +	process_action_user(record); +} +  void led_set_kb(uint8_t usb_led) {  	// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here  	led_set_user(usb_led); -}
\ No newline at end of file +} diff --git a/quantum/template/template.h b/quantum/template/template.h index ba91abac3..b1c34d3cb 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -17,10 +17,11 @@  { \      { k00, k01,   k02 }, \      { k10, KC_NO, k11 }, \ -}  +}  void matrix_init_user(void);  void matrix_scan_user(void); +void process_action_user(keyrecord_t *record);  void led_set_user(uint8_t usb_led); -#endif
\ No newline at end of file +#endif diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 4197c53ed..2ccc0e0b9 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -53,6 +53,9 @@ void action_exec(keyevent_t event)  #endif  } +__attribute__ ((weak)) +void process_action_kb(keyrecord_t *record) {} +  void process_action(keyrecord_t *record)  {      keyevent_t event = record->event; @@ -62,6 +65,8 @@ void process_action(keyrecord_t *record)      if (IS_NOEVENT(event)) { return; } +    process_action_kb(record); +      action_t action = layer_switch_get_action(event.key);      dprint("ACTION: "); debug_action(action);  #ifndef NO_ACTION_LAYER diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 8a4736d7b..9f528af4b 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -58,6 +58,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt);  /* user defined special function */  void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); +/* keyboard-specific key event (pre)processing */ +void process_action_kb(keyrecord_t *record); +  /* Utilities for actions.  */  void process_action(keyrecord_t *record);  void register_code(uint8_t code);  | 
