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 | |
| parent | a9a2817f3aff389fecf1b4bced52093a175a5a65 (diff) | |
| download | firmware-4a6cfb06c5aafb353ddfa056bfa69ae82b5fc894.tar.gz firmware-4a6cfb06c5aafb353ddfa056bfa69ae82b5fc894.tar.bz2 firmware-4a6cfb06c5aafb353ddfa056bfa69ae82b5fc894.zip | |
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.
| -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 4f6288133..bad4319f1 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 df88350f0..444e6ede9 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 }  \  } - | 
