diff options
author | Joe Wasson <joe@talljoe.com> | 2020-08-31 22:19:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-31 22:19:51 -0700 |
commit | 4a6cfb06c5aafb353ddfa056bfa69ae82b5fc894 (patch) | |
tree | bef6cc895bbc6280a400d579eb43cc06f1bbbcba /keyboards/tmo50 | |
parent | a9a2817f3aff389fecf1b4bced52093a175a5a65 (diff) |
TMO50: use layer_state_set_kb at keyboard level (#10150)
* Change TMO to use layer_state_set_kb as is customary at the keyboard level.
This also factors out `process_indicator_led` to a separate method.
Diffstat (limited to 'keyboards/tmo50')
-rw-r--r-- | keyboards/tmo50/tmo50.c | 37 | ||||
-rw-r--r-- | keyboards/tmo50/tmo50.h | 5 |
2 files changed, 31 insertions, 11 deletions
diff --git a/keyboards/tmo50/tmo50.c b/keyboards/tmo50/tmo50.c index 4f6288133d..bad4319f11 100644 --- a/keyboards/tmo50/tmo50.c +++ b/keyboards/tmo50/tmo50.c @@ -51,34 +51,51 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } -uint32_t layer_state_set_user(uint32_t state) +layer_state_t layer_state_set_kb(layer_state_t state) { - // if on layer 0, turn on B0 LED, otherwise off. - if (biton32(state) == 0) { + state = layer_state_set_user(state); + process_indicator_led_kb(state); + + return state; +} + +__attribute__((weak)) +bool process_indicator_led_user(layer_state_t state){ + return true; +} + +bool process_indicator_led_kb(layer_state_t state) +{ + if(process_indicator_led_user(state)) + { + // if on layer 0, turn on B0 LED, otherwise off. + if (get_highest_layer(state) == 0) { PORTB &= ~(1<<PB0); } else { PORTB |= (1<<PB0); } - // if on layer 1, turn on B1 LED, otherwise off. - if (biton32(state) == 1) { + // if on layer 1, turn on B1 LED, otherwise off. + if (get_highest_layer(state) == 1) { PORTB &= ~(1<<PB1); } else { PORTB |= (1<<PB1); } - // if on layer 2, turn on B2 LED, otherwise off. - if (biton32(state) == 2) { + + // if on layer 2, turn on B2 LED, otherwise off. + if (get_highest_layer(state) == 2) { PORTB &= ~(1<<PB2); } else { PORTB |= (1<<PB2); } - // if on layer 3, turn on B3 LED, otherwise off. - if (biton32(state) == 3) { + // if on layer 3, turn on B3 LED, otherwise off. + if (get_highest_layer(state) == 3) { PORTB &= ~(1<<PB3); } else { PORTB |= (1<<PB3); } + } - return state; + return true; } diff --git a/keyboards/tmo50/tmo50.h b/keyboards/tmo50/tmo50.h index df88350f02..444e6ede96 100644 --- a/keyboards/tmo50/tmo50.h +++ b/keyboards/tmo50/tmo50.h @@ -17,6 +17,10 @@ #include "quantum.h" +bool process_indicator_led_kb(layer_state_t state); +__attribute__((weak)) +bool process_indicator_led_user(layer_state_t state); + /* This a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical @@ -51,4 +55,3 @@ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ { K30, K31, K32, K33, KC_NO, KC_NO, KC_NO, K37, KC_NO, KC_NO, K3A, KC_NO, KC_NO, KC_NO } \ } - |