diff options
Diffstat (limited to 'keyboards/tmo50/keymaps/talljoe/keymap.c')
-rw-r--r-- | keyboards/tmo50/keymaps/talljoe/keymap.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/keyboards/tmo50/keymaps/talljoe/keymap.c b/keyboards/tmo50/keymaps/talljoe/keymap.c new file mode 100644 index 0000000000..fa6523992e --- /dev/null +++ b/keyboards/tmo50/keymaps/talljoe/keymap.c @@ -0,0 +1,44 @@ +#include "quantum.h" +#include "talljoe.h" + +bool process_indicator_led_user(uint32_t state){ + return false; +} + +#define LED_MASK (_BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3)) +#define WHITE (_BV(PB0)) +#define YELLOW (_BV(PB1)) +#define MAGENTA (_BV(PB2)) +#define RED (_BV(PB3)) + +void matrix_scan_keymap(void) { + uint32_t lights = WHITE; + + switch(get_highest_layer(layer_state)) + { + case _NAV: + lights |= YELLOW; + break; + case _NUM: + lights |= MAGENTA; + break; + case _ADJUST: + lights |= RED; + break; + default: { + uint8_t default_layer = get_highest_layer(default_layer_state); + lights = 0; // no white LED by default. + if(default_layer & 1) + lights |= YELLOW; + if(default_layer & 2) + lights |= MAGENTA; + if(default_layer & 4) + lights |= RED; + } + } + + uint32_t port = PORTB; + port |= LED_MASK; + port &= ~lights; + PORTB = port; +} |