diff options
Diffstat (limited to 'tmk_core/common')
-rw-r--r-- | tmk_core/common/action.h | 1 | ||||
-rw-r--r-- | tmk_core/common/avr/suspend.c | 2 | ||||
-rw-r--r-- | tmk_core/common/keyboard.c | 6 | ||||
-rw-r--r-- | tmk_core/common/keyboard.h | 8 | ||||
-rw-r--r-- | tmk_core/common/keymap.c | 5 | ||||
-rw-r--r-- | tmk_core/common/matrix.h | 4 |
6 files changed, 22 insertions, 4 deletions
diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 8a4736d7bc..e76161c17f 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -51,6 +51,7 @@ void action_exec(keyevent_t event); /* action for key */ action_t action_for_key(uint8_t layer, keypos_t key); +action_t action_for_key_default(uint8_t layer, keypos_t key); /* macro */ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 80243f02bc..af99f52b5e 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -85,6 +85,8 @@ void suspend_power_down(void) power_down(WDTO_15MS); } +__attribute__ ((weak)) void matrix_power_up(void) {} +__attribute__ ((weak)) void matrix_power_down(void) {} bool suspend_wakeup_condition(void) { matrix_power_up(); diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index b03b124d76..eb7b096bed 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -62,6 +62,12 @@ static bool has_ghost_in_row(uint8_t row) #endif +__attribute__ ((weak)) void matrix_setup(void) {} +void keyboard_setup(void) +{ + matrix_setup(); +} + void keyboard_init(void) { timer_init(); diff --git a/tmk_core/common/keyboard.h b/tmk_core/common/keyboard.h index 6442716fc7..7738251b64 100644 --- a/tmk_core/common/keyboard.h +++ b/tmk_core/common/keyboard.h @@ -58,13 +58,15 @@ static inline bool IS_RELEASED(keyevent_t event) { return (!IS_NOEVENT(event) && } +/* it runs once at early stage of startup before keyboard_init. */ +void keyboard_setup(void); +/* it runs once after initializing host side protocol, debug and MCU peripherals. */ void keyboard_init(void); +/* it runs repeatedly in main loop */ void keyboard_task(void); +/* it runs when host LED status is updated */ void keyboard_set_leds(uint8_t leds); -__attribute__ ((weak)) void matrix_power_up(void) {} -__attribute__ ((weak)) void matrix_power_down(void) {} - #ifdef __cplusplus } #endif diff --git a/tmk_core/common/keymap.c b/tmk_core/common/keymap.c index 9f4fab5216..a43ca460f2 100644 --- a/tmk_core/common/keymap.c +++ b/tmk_core/common/keymap.c @@ -27,8 +27,13 @@ static action_t keycode_to_action(uint8_t keycode); /* converts key to action */ +__attribute__((__weak__)) action_t action_for_key(uint8_t layer, keypos_t key) { + return action_for_key_default(layer, key); +} + +action_t action_for_key_default(uint8_t layer, keypos_t key) uint8_t keycode = keymap_key_to_keycode(layer, key); switch (keycode) { case KC_FN0 ... KC_FN31: diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 107ee72653..ec6f8cd431 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -43,7 +43,9 @@ extern "C" { uint8_t matrix_rows(void); /* number of matrix columns */ uint8_t matrix_cols(void); -/* intialize matrix for scaning. should be called once. */ +/* should be called at early stage of startup before matrix_init.(optional) */ +void matrix_setup(void); +/* intialize matrix for scaning. */ void matrix_init(void); /* scan all key states on matrix */ uint8_t matrix_scan(void); |