void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive bool litup = false; for (uint8_t light_index = 0 ; light_index < RGBLED_NUM ; ++light_index ) { if (lights[light_index].enabled && timer_elapsed(lights[light_index].timer) > 10) { rgblight_fadeout *light = &lights[light_index]; litup = true; if (light->life) { light->life -= 1; if (biton32(layer_state) == 0) { sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]); } light->timer = timer_read(); } else { if (light->enabled && biton32(layer_state) == 0) { rgblight_sethsv_default_helper(light_index); } litup = light->enabled = false; } } } if (litup && biton32(layer_state) == 0) { rgblight_set(); } }
void matrix_scan_keymap (void) { static uint8_t current_mods; static uint8_t current_host_leds; static uint8_t current_oneshot_mods; static bool has_status_changed = true; if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) { has_status_changed = true; current_mods = get_mods(); current_host_leds = host_keyboard_leds(); current_oneshot_mods = get_oneshot_mods(); } if (has_status_changed) { has_status_changed = false; if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) { rgblight_sethsv_at(0, 255, 255, 5); rgblight_sethsv_at(0, 255, 255, 10); } else { rgblight_sethsv_default_helper(5); rgblight_sethsv_default_helper(10); } if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) { rgblight_sethsv_at(51, 255, 255, 6); rgblight_sethsv_at(51, 255, 255, 9); } else { rgblight_sethsv_default_helper(6); rgblight_sethsv_default_helper(9); } if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) { rgblight_sethsv_at(120, 255, 255, 7); rgblight_sethsv_at(120, 255, 255, 8); } else { rgblight_sethsv_default_helper(7); rgblight_sethsv_default_helper(8); } } }
void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { if (userspace_config.rgb_layer_change && biton32(layer_state) == 0) { if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK) ) { #ifdef SHFT_LED1 rgblight_sethsv_at(120, 255, 255, SHFT_LED1); #endif // SHFT_LED1 #ifdef SHFT_LED2 rgblight_sethsv_at(120, 255, 255, SHFT_LED2); #endif // SHFT_LED2 } else { #ifdef SHFT_LED1 rgblight_sethsv_default_helper(SHFT_LED1); #endif // SHFT_LED1 #ifdef SHFT_LED2 rgblight_sethsv_default_helper(SHFT_LED2); #endif // SHFT_LED2 } if ( (this_mod | this_osm) & MOD_MASK_CTRL) { #ifdef CTRL_LED1 rgblight_sethsv_at(0, 255, 255, CTRL_LED1); #endif // CTRL_LED1 #ifdef CTRL_LED2 rgblight_sethsv_at(0, 255, 255, CTRL_LED2); #endif // CTRL_LED2 } else { #ifdef CTRL_LED1 rgblight_sethsv_default_helper(CTRL_LED1); #endif // CTRL_LED1 #ifdef CTRL_LED2 rgblight_sethsv_default_helper(CTRL_LED2); #endif // CTRL_LED2 } if ( (this_mod | this_osm) & MOD_MASK_GUI) { #ifdef GUI_LED1 rgblight_sethsv_at(51, 255, 255, GUI_LED1); #endif // GUI_LED1 #ifdef GUI_LED2 rgblight_sethsv_at(51, 255, 255, GUI_LED2); #endif // GUI_LED2 } else { #ifdef GUI_LED1 rgblight_sethsv_default_helper(GUI_LED1); #endif // GUI_LED1 #ifdef GUI_LED2 rgblight_sethsv_default_helper(GUI_LED2); #endif // GUI_LED2 } if ( (this_mod | this_osm) & MOD_MASK_ALT) { #ifdef ALT_LED1 rgblight_sethsv_at(240, 255, 255, ALT_LED1); #endif // ALT_LED1 #ifdef GUI_LED2 rgblight_sethsv_at(240, 255, 255, ALT_LED2); #endif // GUI_LED2 } else { #ifdef GUI_LED1 rgblight_sethsv_default_helper(ALT_LED1); #endif // GUI_LED1 #ifdef GUI_LED2 rgblight_sethsv_default_helper(ALT_LED2); #endif // GUI_LED2 } } }