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