- #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;
- }
|