Get rid of USB_LED_CAPS_LOCK (#21436)

This commit is contained in:
Ryan 2023-07-06 18:48:02 +10:00 committed by GitHub
parent 928e03e8d6
commit 87b11345a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
70 changed files with 214 additions and 226 deletions

View File

@ -18,12 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B2); setPinOutput(B2);
writePinLow(B2); writePinLow(B2);
} else { } else {
setPinInput(B2); setPinInput(B2);
writePinLow(B2); writePinLow(B2);
} }
return false;
} }

View File

@ -18,12 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B2); setPinOutput(B2);
writePinLow(B2); writePinLow(B2);
} else { } else {
setPinInput(B2); setPinInput(B2);
writePinLow(B2); writePinLow(B2);
} }
return false;
} }

View File

@ -72,10 +72,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
} }
// support for standard mod state keys (caps lock, scroll lock, etc.) // support for standard mod state keys (caps lock, scroll lock, etc.)
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
DDRB |= (1 << 2); PORTB &= ~(1 << 2); DDRB |= (1 << 2); PORTB &= ~(1 << 2);
} else { } else {
DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
} }
return false;
} }

View File

@ -18,12 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B2); setPinOutput(B2);
writePinLow(B2); writePinLow(B2);
} else { } else {
setPinInput(B2); setPinInput(B2);
writePinLow(B2); writePinLow(B2);
} }
return false;
} }

View File

@ -157,11 +157,11 @@ void dynamic_macro_record_end_user(int8_t direction) {
// Custom Caps Lock backlight behaviour // Custom Caps Lock backlight behaviour
// ------------------------------------ // ------------------------------------
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
// This exists because I don't like the backlight to turn OFF when the Caps Lock is ON. // This exists because I don't like the backlight to turn OFF when the Caps Lock is ON.
// That is, this will turn the backlight ON (at half the brightness) when the Caps Lock is ON as well. // That is, this will turn the backlight ON (at half the brightness) when the Caps Lock is ON as well.
static bool prev_is_caps_on; static bool prev_is_caps_on;
bool is_caps_on = IS_LED_ON(usb_led, USB_LED_CAPS_LOCK); bool is_caps_on = led_state.caps_lock;
if (prev_is_caps_on != is_caps_on) { if (prev_is_caps_on != is_caps_on) {
prev_is_caps_on = is_caps_on; prev_is_caps_on = is_caps_on;
@ -178,7 +178,7 @@ void led_set_user(uint8_t usb_led) {
} }
// Turn on the Pro Micro's on-board LEDs for Caps Lock // Turn on the Pro Micro's on-board LEDs for Caps Lock
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
// Set to low // Set to low
setPinOutput(B0); setPinOutput(B0);
writePinLow(B0); writePinLow(B0);
@ -189,6 +189,7 @@ void led_set_user(uint8_t usb_led) {
setPinInput(B0); setPinInput(B0);
setPinInput(D5); setPinInput(D5);
} }
return false;
} }
// Backlight idle timeout feature // Backlight idle timeout feature

View File

@ -35,11 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
) )
}; };
bool led_update_user(led_t led_state){
void led_set_user(uint8_t usb_led){
//turn on the Pro Micro's on board LEDs for CAPS LOCK //turn on the Pro Micro's on board LEDs for CAPS LOCK
if(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)){ if(led_state.caps_lock){
//set led pins to low //set led pins to low
setPinOutput(B0); setPinOutput(B0);
writePinLow(B0); writePinLow(B0);
@ -50,4 +48,5 @@ void led_set_user(uint8_t usb_led){
setPinInput(B0); setPinInput(B0);
setPinInput(D5); setPinInput(D5);
} }
return false;
} }

View File

@ -19,20 +19,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <stdint.h> #include <stdint.h>
#include "led.h" #include "led.h"
bool led_update_kb(led_t led_state)
void led_set(uint8_t usb_led)
{ {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { bool res = led_update_user(led_state);
// output low if (res) {
DDRB |= (1<<0); if (led_state.caps_lock) {
PORTB &= ~(1<<0); // output low
DDRD |= (1<<5); DDRB |= (1<<0);
PORTD &= ~(1<<5); PORTB &= ~(1<<0);
} else { DDRD |= (1<<5);
// Hi-Z PORTD &= ~(1<<5);
DDRB &= ~(1<<0); } else {
PORTB &= ~(1<<0); // Hi-Z
DDRD &= ~(1<<5); DDRB &= ~(1<<0);
PORTD &= ~(1<<5); PORTB &= ~(1<<0);
DDRD &= ~(1<<5);
PORTD &= ~(1<<5);
}
} }
return false;
} }

View File

@ -51,10 +51,11 @@ void matrix_init_user(void) {
writePinLow(B0); writePinLow(B0);
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
writePinHigh(B0); writePinHigh(B0);
} else { } else {
writePinLow(B0); writePinLow(B0);
} }
return false;
} }

View File

@ -25,12 +25,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
DDRB |= (1 << 2); PORTB &= ~(1 << 2); DDRB |= (1 << 2); PORTB &= ~(1 << 2);
} else { } else {
DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
} }
return false;
} }
bool process_record_user(uint16_t keycode, keyrecord_t *record) bool process_record_user(uint16_t keycode, keyrecord_t *record)

View File

@ -85,7 +85,7 @@ void highlight_layer3(void){
} }
bool rgb_matrix_indicators_user(void) { bool rgb_matrix_indicators_user(void) {
uint8_t this_led = host_keyboard_leds(); led_t led_state = host_keyboard_led_state();
if (!g_suspend_state) { if (!g_suspend_state) {
switch (get_highest_layer(layer_state)) { switch (get_highest_layer(layer_state)) {
case 3: case 3:
@ -94,7 +94,7 @@ bool rgb_matrix_indicators_user(void) {
break; break;
} }
} }
if ( this_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
} }
return false; return false;

View File

@ -146,7 +146,7 @@ void highlight_layer3(void) {
} }
bool rgb_matrix_indicators_user(void) { bool rgb_matrix_indicators_user(void) {
uint8_t this_led = host_keyboard_leds(); led_t led_state = host_keyboard_led_state();
if (!g_suspend_state) { if (!g_suspend_state) {
switch (get_highest_layer(layer_state)) { switch (get_highest_layer(layer_state)) {
case 1: case 1:
@ -161,7 +161,7 @@ bool rgb_matrix_indicators_user(void) {
break; break;
} }
} }
if ( this_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
} }
return false; return false;

View File

@ -296,12 +296,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
ergodox_right_led_1_on(); ergodox_right_led_1_on();
} else { } else {
ergodox_right_led_1_off(); ergodox_right_led_1_off();
} }
return false;
} }

View File

@ -194,11 +194,12 @@ void matrix_scan_user(void) {
} }
}; };
void led_set_user(uint8_t usb_led){ bool led_update_user(led_t led_state){
if (usb_led & (1 << USB_LED_CAPS_LOCK)) if (led_state.caps_lock)
{ {
capsOn = true; capsOn = true;
}else { }else {
capsOn = false; capsOn = false;
} }
return false;
} }

View File

@ -351,11 +351,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)){ if (led_state.caps_lock){
frenchdev_led_3_on(); frenchdev_led_3_on();
} else { } else {
frenchdev_led_3_off(); frenchdev_led_3_off();
} }
return ; return false;
} }

View File

@ -67,24 +67,6 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_180; return OLED_ROTATION_180;
} }
bool oled_task_user(void) { bool oled_task_user(void) {
// Host Keyboard Layer Status
/*oled_write_P(PSTR("Lyr: "), false);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR("Alpha\n"), false);
break;
case 1:
oled_write_P(PSTR("FN\n"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("Undefined"), false);
}
uint8_t led_usb_state = host_keyboard_leds();
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
*/
static const char PROGMEM qmk_logo[] = { static const char PROGMEM qmk_logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,

View File

@ -1303,8 +1303,8 @@ void turn_off_capslock(void) {
rgbsps_send(); rgbsps_send();
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK); bool new_capslock = led_state.caps_lock;
if (new_capslock ^ capslock) { // capslock state is different if (new_capslock ^ capslock) { // capslock state is different
if ((capslock = new_capslock)) { if ((capslock = new_capslock)) {
rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK); rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK);
@ -1313,6 +1313,7 @@ void turn_off_capslock(void) {
} }
rgbsps_send(); rgbsps_send();
} }
return false;
} }
#endif #endif

View File

@ -1306,8 +1306,8 @@ void turn_off_capslock(void) {
rgbsps_send(); rgbsps_send();
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
bool new_capslock = usb_led & (1<<USB_LED_CAPS_LOCK); bool new_capslock = led_state.caps_lock;
if (new_capslock ^ capslock) { // capslock state is different if (new_capslock ^ capslock) { // capslock state is different
if ((capslock = new_capslock)) { if ((capslock = new_capslock)) {
rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK); rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK);
@ -1316,6 +1316,7 @@ void turn_off_capslock(void) {
} }
rgbsps_send(); rgbsps_send();
} }
return false;
} }
#endif #endif

View File

@ -69,22 +69,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______), _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______),
}; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool led_update_user(led_t led_state) {
return true; if (led_state.caps_lock) {
}
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
} else { } else {
rgblight_disable_noeeprom(); rgblight_disable_noeeprom();
} }
return false;
} }

View File

@ -43,8 +43,8 @@ static void check_light_layer(layer_state_t state) {
last_checked_layer = true; last_checked_layer = true;
} }
static void check_light_led(uint8_t leds) { static void check_light_led(led_t led_state) {
if (IS_LED_ON(leds, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
caps_light(); caps_light();
} else if (IS_LAYER_ON(L_FN)) { } else if (IS_LAYER_ON(L_FN)) {
fn_light(); fn_light();
@ -57,7 +57,7 @@ static void check_light_led(uint8_t leds) {
static void inline check_light(void) { static void inline check_light(void) {
last_checked_layer last_checked_layer
? check_light_layer(layer_state) ? check_light_layer(layer_state)
: check_light_led(host_keyboard_leds()); : check_light_led(host_keyboard_led_state());
} }
void eeconfig_init_keymap(void) { void eeconfig_init_keymap(void) {

View File

@ -79,11 +79,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B2); setPinOutput(B2);
writePinLow(B2); writePinLow(B2);
} else { } else {
setPinInput(B2); setPinInput(B2);
} }
return false;
} }

View File

@ -56,12 +56,13 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state; return state;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING); rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING);
} else { } else {
layer_state_set_user(layer_state); layer_state_set_user(layer_state);
} }
return false;
} }
void myrgb_toggle(void) { void myrgb_toggle(void) {

View File

@ -39,10 +39,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
), ),
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
writePinLow(B1); writePinLow(B1);
} else { } else {
writePinHigh(B1); writePinHigh(B1);
} }
return false;
} }

View File

@ -165,7 +165,7 @@ if(IS_LAYER_ON(NSSL)) {
//capslock leds //capslock leds
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color_all(50, 15.6, 0); rgb_matrix_set_color_all(50, 15.6, 0);
} }

View File

@ -64,12 +64,13 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state; return state;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING); rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING);
} else { } else {
layer_state_set_user(layer_state); layer_state_set_user(layer_state);
} }
return false;
} }
void myrgb_toggle(void) { void myrgb_toggle(void) {

View File

@ -64,12 +64,13 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state; return state;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING); rgblight_mode_noeeprom(RGBLIGHT_MODE_ALTERNATING);
} else { } else {
layer_state_set_user(layer_state); layer_state_set_user(layer_state);
} }
return false;
} }
void myrgb_toggle(void) { void myrgb_toggle(void) {

View File

@ -100,10 +100,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
), ),
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
writePinLow(E6); writePinLow(E6);
} else { } else {
writePinHigh(E6); writePinHigh(E6);
} }
return false;
} }

View File

@ -49,11 +49,12 @@ EE_CLR, _______, _______, _______, _______,
) )
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
// Turn LED On/Off for Caps Lock // Turn LED On/Off for Caps Lock
if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
the50_led_on(); the50_led_on();
} else { } else {
the50_led_off(); the50_led_off();
} }
return false;
} }

View File

@ -69,11 +69,12 @@ EE_CLR, _______, _______, _______, _______,
) )
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
// Turn LED On/Off for Caps Lock // Turn LED On/Off for Caps Lock
if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
the50_led_on(); the50_led_on();
} else { } else {
the50_led_off(); the50_led_off();
} }
return false;
} }

View File

@ -52,12 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B6); setPinOutput(B6);
writePinHigh(B6); writePinHigh(B6);
} else { } else {
setPinInput(B6); setPinInput(B6);
writePinLow(B6); writePinLow(B6);
} }
return false;
} }

View File

@ -70,8 +70,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B6); setPinOutput(B6);
writePinHigh(B6); writePinHigh(B6);
} }
@ -79,4 +79,5 @@ void led_set_user(uint8_t usb_led) {
setPinInput(B6); setPinInput(B6);
writePinLow(B6); writePinLow(B6);
} }
return false;
} }

View File

@ -52,12 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(B6); setPinOutput(B6);
writePinHigh(B6); writePinHigh(B6);
} else { } else {
setPinInput(B6); setPinInput(B6);
writePinLow(B6); writePinLow(B6);
} }
return false;
} }

View File

@ -70,11 +70,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
DDRB |= (1 << 6); PORTB |= (1 << 6); DDRB |= (1 << 6); PORTB |= (1 << 6);
} }
else { else {
DDRB &= ~(1 << 6); PORTB &= ~(1 << 6); DDRB &= ~(1 << 6); PORTB &= ~(1 << 6);
} }
return false;
} }

View File

@ -108,7 +108,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
case KC_CAPS: case KC_CAPS:
if(IS_LED_ON(host_keyboard_leds(), USB_LED_CAPS_LOCK)){ if(host_keyboard_led_state().caps_lock){
caps_mode_index = CAPS_MODE_LOWER; caps_mode_index = CAPS_MODE_LOWER;
} else{ } else{
caps_mode_index = CAPS_MODE_UPPER; caps_mode_index = CAPS_MODE_UPPER;

View File

@ -47,10 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
rgblight_sethsv(HSV_RED); rgblight_sethsv(HSV_RED);
} else { } else {
rgblight_sethsv(HSV_TURQUOISE); rgblight_sethsv(HSV_TURQUOISE);
} }
return false;
} }

View File

@ -13,21 +13,22 @@ void matrix_init_user(void)
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
void led_set_user(uint8_t usb_led) bool led_update_user(led_t led_state)
{ {
static uint8_t old_usb_led = 0; static led_t old_led_state = {0};
_delay_ms(10); // gets rid of tick _delay_ms(10); // gets rid of tick
if (!is_playing_notes()) { if (!is_playing_notes()) {
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { if (led_state.caps_lock && !old_led_state.caps_lock) {
// if capslock LED is turning on // if capslock LED is turning on
PLAY_SONG(song_caps_on); PLAY_SONG(song_caps_on);
} }
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { else if (!led_state.caps_lock && old_led_state.caps_lock) {
// if capslock LED is turning off // if capslock LED is turning off
PLAY_SONG(song_caps_off); PLAY_SONG(song_caps_off);
} }
} }
old_usb_led = usb_led; old_led_state = led_state;
return false;
} }
#endif #endif

View File

@ -13,21 +13,22 @@ void matrix_init_user(void)
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
void led_set_user(uint8_t usb_led) bool led_update_user(led_t led_state)
{ {
static uint8_t old_usb_led = 0; static led_t old_led_state = {0};
_delay_ms(10); // gets rid of tick _delay_ms(10); // gets rid of tick
if (!is_playing_notes()) { if (!is_playing_notes()) {
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { if (led_state.caps_lock && !old_led_state.caps_lock) {
// if capslock LED is turning on // if capslock LED is turning on
PLAY_SONG(song_caps_on); PLAY_SONG(song_caps_on);
} }
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { else if (!led_state.caps_lock && old_led_state.caps_lock) {
// if capslock LED is turning off // if capslock LED is turning off
PLAY_SONG(song_caps_off); PLAY_SONG(song_caps_off);
} }
} }
old_usb_led = usb_led; old_led_state = led_state;
return false;
} }
#endif #endif

View File

@ -13,21 +13,22 @@ void matrix_init_user(void)
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
void led_set_user(uint8_t usb_led) bool led_update_user(led_t led_state)
{ {
static uint8_t old_usb_led = 0; static led_t old_led_state = {0};
_delay_ms(10); // gets rid of tick _delay_ms(10); // gets rid of tick
if (!is_playing_notes()) { if (!is_playing_notes()) {
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { if (led_state.caps_lock && !old_led_state.caps_lock) {
// if capslock LED is turning on // if capslock LED is turning on
PLAY_SONG(song_caps_on); PLAY_SONG(song_caps_on);
} }
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { else if (!led_state.caps_lock && old_led_state.caps_lock) {
// if capslock LED is turning off // if capslock LED is turning off
PLAY_SONG(song_caps_off); PLAY_SONG(song_caps_off);
} }
} }
old_usb_led = usb_led; old_led_state = led_state;
return false;
} }
#endif #endif

View File

@ -1527,7 +1527,7 @@ void scap_finished(tap_dance_state_t* state, void* user_data) {
register_code(KC_LSFT); register_code(KC_LSFT);
break; break;
default: default:
if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { if (host_keyboard_led_state().caps_lock) {
tap_code(KC_CAPS); tap_code(KC_CAPS);
reset_tap_dance(state); reset_tap_dance(state);
break; break;

View File

@ -13,21 +13,22 @@ void matrix_init_user(void)
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
void led_set_user(uint8_t usb_led) bool led_update_user(led_t led_state)
{ {
static uint8_t old_usb_led = 0; static led_t old_led_state = {0};
_delay_ms(10); // gets rid of tick _delay_ms(10); // gets rid of tick
if (!is_playing_notes()) { if (!is_playing_notes()) {
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { if (led_state.caps_lock && !old_led_state.caps_lock) {
// if capslock LED is turning on // if capslock LED is turning on
PLAY_SONG(song_caps_on); PLAY_SONG(song_caps_on);
} }
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { else if (!led_state.caps_lock && old_led_state.caps_lock) {
// if capslock LED is turning off // if capslock LED is turning off
PLAY_SONG(song_caps_off); PLAY_SONG(song_caps_off);
} }
} }
old_usb_led = usb_led; old_led_state = led_state;
return false;
} }
#endif #endif

View File

@ -17,20 +17,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
}; };
void matrix_init_user(void) { bool led_update_user(led_t led_state) {
} if (led_state.caps_lock) {
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
DDRD |= (1 << 1); PORTD &= ~(1 << 1); DDRD |= (1 << 1); PORTD &= ~(1 << 1);
} else { } else {
DDRD &= ~(1 << 1); PORTD &= ~(1 << 1); DDRD &= ~(1 << 1); PORTD &= ~(1 << 1);
} }
return false;
} }

View File

@ -20,12 +20,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(F4); setPinOutput(F4);
writePinLow(F4); writePinLow(F4);
} else { } else {
setPinInput(F4); setPinInput(F4);
writePinLow(F4); writePinLow(F4);
} }
return false;
} }

View File

@ -100,13 +100,14 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state; return state;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
CAPS = 1; CAPS = 1;
} }
else { else {
CAPS = 0; CAPS = 0;
} }
return false;
} }
void togg_indicator(uint8_t *state, uint8_t pin) { void togg_indicator(uint8_t *state, uint8_t pin) {

View File

@ -91,8 +91,9 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state; return state;
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
CAPS = IS_LED_ON(usb_led, USB_LED_CAPS_LOCK); CAPS = led_state.caps_lock;
return false;
} }
void togg_indicator(uint8_t *state, uint8_t pin) { void togg_indicator(uint8_t *state, uint8_t pin) {

View File

@ -163,7 +163,7 @@ bool oled_task_user(void) {
oled_set_cursor(0,6); oled_set_cursor(0,6);
oled_write_P(PSTR(" WPM: "), false); oled_write_P(PSTR(" WPM: "), false);
oled_write(get_u8_str(get_current_wpm(), '0'), false); oled_write(get_u8_str(get_current_wpm(), '0'), false);
if(host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)){ if(host_keyboard_led_state().caps_lock){
oled_set_cursor(0,5); oled_set_cursor(0,5);
oled_write_P(PSTR(" CAPS LOCK"), false); oled_write_P(PSTR(" CAPS LOCK"), false);
} }

View File

@ -91,12 +91,13 @@ Capslock's led cannot be controlled separately on bananasplit and you can only t
leds at once. If you only install led for capslock, it will look like capslock has toggable leds at once. If you only install led for capslock, it will look like capslock has toggable
backlight. backlight.
*/ */
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led && (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
DDRB |= (1 << 7); DDRB |= (1 << 7);
PORTB |= (1 << 7); PORTB |= (1 << 7);
} else { } else {
DDRB &= ~(1 << 7); DDRB &= ~(1 << 7);
PORTB &= ~(1 << 7); PORTB &= ~(1 << 7);
} }
return false;
} }

View File

@ -75,12 +75,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
setPinOutput(A3); setPinOutput(A3);
writePinHigh(A3); writePinHigh(A3);
} else { } else {
setPinInput(A3); setPinInput(A3);
writePinLow(A3); writePinLow(A3);
} }
return false;
} }

View File

@ -74,10 +74,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
DDRA |= (1 << 3); PORTA |= (1 << 3); DDRA |= (1 << 3); PORTA |= (1 << 3);
} else { } else {
DDRA &= ~(1 << 3); PORTA &= ~(1 << 3); DDRA &= ~(1 << 3); PORTA &= ~(1 << 3);
} }
return false;
} }

View File

@ -95,8 +95,8 @@ WASD are Up Left Right Down respectively
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
// output low // output low
DDRE |= (1<<PE6); DDRE |= (1<<PE6);
PORTE &= ~(1<<PE6); PORTE &= ~(1<<PE6);
@ -106,4 +106,5 @@ void led_set_user(uint8_t usb_led) {
DDRE &= ~(1<<PE6); DDRE &= ~(1<<PE6);
PORTE &= ~(1<<PE6); PORTE &= ~(1<<PE6);
} }
return false;
} }

View File

@ -97,8 +97,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_____, _____, _____, _____, _____, _____, _____, _____), _____, _____, _____, _____, _____, _____, _____, _____),
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
// output low // output low
DDRE |= (1<<PE6); DDRE |= (1<<PE6);
PORTE &= ~(1<<PE6); PORTE &= ~(1<<PE6);
@ -108,4 +108,5 @@ void led_set_user(uint8_t usb_led) {
DDRE &= ~(1<<PE6); DDRE &= ~(1<<PE6);
PORTE &= ~(1<<PE6); PORTE &= ~(1<<PE6);
} }
return false;
} }

View File

@ -69,8 +69,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
// output low // output low
DDRE |= (1<<PE6); DDRE |= (1<<PE6);
PORTE &= ~(1<<PE6); PORTE &= ~(1<<PE6);
@ -80,6 +80,7 @@ void led_set_user(uint8_t usb_led) {
DDRE &= ~(1<<PE6); DDRE &= ~(1<<PE6);
PORTE &= ~(1<<PE6); PORTE &= ~(1<<PE6);
} }
return false;
} }
#define C_RED 0xFF, 0x00, 0x00 #define C_RED 0xFF, 0x00, 0x00

View File

@ -110,7 +110,7 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
uint8_t this_mod = get_mods(); uint8_t this_mod = get_mods();
uint8_t this_led = host_keyboard_leds(); led_t this_led = host_keyboard_led_state();
uint8_t this_osm = get_oneshot_mods(); uint8_t this_osm = get_oneshot_mods();
#define THUMB_LED 6 #define THUMB_LED 6
#define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__) #define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__)
@ -134,7 +134,7 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
} }
} }
if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) {
if (!layer_state_is(_ADJUST)) { if (!layer_state_is(_ADJUST)) {
RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0x00); RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0x00);
RGB_MATRIX_INDICATOR_SET_COLOR(13, 0x00, 0xFF, 0x00); RGB_MATRIX_INDICATOR_SET_COLOR(13, 0x00, 0xFF, 0x00);

View File

@ -101,7 +101,7 @@ bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) { if (!rgb_matrix_indicators_user()) {
return false; return false;
} }
if (IS_LED_ON(host_keyboard_leds(), USB_LED_CAPS_LOCK)) { if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); rgb_matrix_set_color(30, 0xFF, 0x00, 0x00);
} }
return true; return true;

View File

@ -130,16 +130,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true; return true;
} }
void matrix_init_user(void) { bool led_update_user(led_t led_state) {
if (led_state.caps_lock) {
}
void matrix_scan_user(void) {
}
void led_set_user(uint8_t usb_led) {
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
capslock_led_on(); capslock_led_on();
} else { } else {
capslock_led_off(); capslock_led_off();
@ -149,4 +141,5 @@ void led_set_user(uint8_t usb_led) {
} else { } else {
gp100_led_off(); gp100_led_off();
} }
return false;
} }

View File

@ -109,9 +109,9 @@ void update_led(void) {
} }
} }
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
// Caps Lock Indicator // Caps Lock Indicator
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
writePinLow(B2); writePinLow(B2);
rgblight_setrgb(255, 110, 0); rgblight_setrgb(255, 110, 0);
} }
@ -133,6 +133,7 @@ void led_set_user(uint8_t usb_led) {
} }
update_led(); update_led();
} }
return false;
} }
layer_state_t layer_state_set_user(layer_state_t state) { layer_state_t layer_state_set_user(layer_state_t state) {

View File

@ -310,9 +310,6 @@ void matrix_init_user(void) {
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = get_highest_layer(layer_state); uint8_t layer = get_highest_layer(layer_state);
//led 1, RED, Caps-Lock ON
//if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ergodox_right_led_1_on();
//led 2, GREEN //led 2, GREEN
if (layer == LAYER_NUM) if (layer == LAYER_NUM)
ergodox_right_led_2_on(); ergodox_right_led_2_on();
@ -327,9 +324,10 @@ void matrix_scan_user(void) {
}; };
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) if (led_state.caps_lock)
ergodox_right_led_1_on(); ergodox_right_led_1_on();
else else
ergodox_right_led_1_off(); ergodox_right_led_1_off();
return false;
} }

View File

@ -212,9 +212,9 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
void housekeeping_task_keymap(void) { // runs frequently to update info void housekeeping_task_keymap(void) { // runs frequently to update info
#ifdef KEYBOARD_ergodox_ez #ifdef KEYBOARD_ergodox_ez
uint8_t modifiers = get_mods(); uint8_t modifiers = get_mods();
uint8_t led_usb_state = host_keyboard_leds(); led_t led_state = host_keyboard_led_state();
uint8_t one_shot = get_oneshot_mods(); uint8_t one_shot = get_oneshot_mods();
if (!skip_leds) { if (!skip_leds) {
ergodox_board_led_off(); ergodox_board_led_off();
@ -225,7 +225,7 @@ void housekeeping_task_keymap(void) { // runs frequently to update info
// Since we're not using the LEDs here for layer indication anymore, // Since we're not using the LEDs here for layer indication anymore,
// then lets use them for modifier indicators. Shame we don't have 4... // then lets use them for modifier indicators. Shame we don't have 4...
// Also, no "else", since we want to know each, independently. // Also, no "else", since we want to know each, independently.
if ((modifiers | one_shot) & MOD_MASK_SHIFT || led_usb_state & (1 << USB_LED_CAPS_LOCK)) { if ((modifiers | one_shot) & MOD_MASK_SHIFT || led_state.caps_lock) {
ergodox_right_led_2_on(); ergodox_right_led_2_on();
ergodox_right_led_2_set(50); ergodox_right_led_2_set(50);
} }

View File

@ -94,12 +94,12 @@ layer_state_t layer_state_set_keymap(layer_state_t state) {
void matrix_scan_keymap(void) { void matrix_scan_keymap(void) {
uint8_t modifiers = get_mods(); uint8_t modifiers = get_mods();
uint8_t led_usb_state = host_keyboard_leds(); led_t led_state = host_keyboard_led_state();
uint8_t one_shot = get_oneshot_mods(); uint8_t one_shot = get_oneshot_mods();
uint8_t layer_is_workman = layer_state_is(_WORKMAN); uint8_t layer_is_workman = layer_state_is(_WORKMAN);
if ((modifiers) && (layer_is_workman)) { if ((modifiers) && (layer_is_workman)) {
if (modifiers & MOD_MASK_SHIFT || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MOD_MASK_SHIFT) { if (modifiers & MOD_MASK_SHIFT || led_state.caps_lock || one_shot & MOD_MASK_SHIFT) {
ergodox_right_led_1_on(); ergodox_right_led_1_on();
ergodox_right_led_1_set( 25 ); ergodox_right_led_1_set( 25 );
} else { } else {

View File

@ -238,7 +238,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
void matrix_scan_user(void) { void matrix_scan_user(void) {
// shift or caps lock turns on red light // shift or caps lock turns on red light
if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) { if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || host_keyboard_led_state().caps_lock) {
ergodox_right_led_1_on(); ergodox_right_led_1_on();
} else { } else {
ergodox_right_led_1_off(); ergodox_right_led_1_off();

View File

@ -238,7 +238,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
void matrix_scan_user(void) { void matrix_scan_user(void) {
// shift or caps lock turns on red light // shift or caps lock turns on red light
if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) { if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || host_keyboard_led_state().caps_lock) {
ergodox_right_led_1_on(); ergodox_right_led_1_on();
} else { } else {
ergodox_right_led_1_off(); ergodox_right_led_1_off();

View File

@ -686,7 +686,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if ((capslock_state & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) { if ((capslock_state & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) {
// CAPSLOCK is currently active, disable it // CAPSLOCK is currently active, disable it
if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { if (host_keyboard_led_state().caps_lock) {
unregister_code(KC_LOCKING_CAPS_LOCK); unregister_code(KC_LOCKING_CAPS_LOCK);
} else { } else {
register_code(KC_LOCKING_CAPS_LOCK); register_code(KC_LOCKING_CAPS_LOCK);
@ -697,11 +697,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return process_record_user_shifted(keycode, record); return process_record_user_shifted(keycode, record);
}; };
// Runs just one time when the keyboard initializes.
void matrix_init_user(void){
};
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = get_highest_layer(layer_state); uint8_t layer = get_highest_layer(layer_state);

View File

@ -106,7 +106,7 @@ void matrix_scan_user(void) {
ergodox_right_led_3_off(); ergodox_right_led_3_off();
ergodox_board_led_off(); ergodox_board_led_off();
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { if (host_keyboard_led_state().caps_lock) {
ergodox_right_led_3_on(); ergodox_right_led_3_on();
} }

View File

@ -154,11 +154,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
), ),
}; };
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
void matrix_scan_user(void) { void matrix_scan_user(void) {
@ -185,7 +180,7 @@ void matrix_scan_user(void) {
break; break;
} }
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { if (host_keyboard_led_state().caps_lock) {
// if capslk is on, set led 1 on // if capslk is on, set led 1 on
ergodox_right_led_1_on(); ergodox_right_led_1_on();
} else { } else {

View File

@ -100,12 +100,13 @@ void keyboard_post_init_keymap(void) {
} }
// Use Green LED for Caps Lock // Use Green LED for Caps Lock
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (IS_LED_OFF(usb_led, USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
writePinLow(LED_GREEN); writePinLow(LED_GREEN);
} else { } else {
writePinHigh(LED_GREEN); writePinHigh(LED_GREEN);
} }
return false;
} }
#endif #endif

View File

@ -184,7 +184,7 @@ led_config_t g_led_config = {
bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
uint8_t this_mod = get_mods(); uint8_t this_mod = get_mods();
uint8_t this_led = host_keyboard_leds(); led_t this_led = host_keyboard_led_state();
uint8_t this_osm = get_oneshot_mods(); uint8_t this_osm = get_oneshot_mods();
# ifdef KEYBOARD_planck_ez # ifdef KEYBOARD_planck_ez
# define THUMB_LED 41 # define THUMB_LED 41
@ -208,7 +208,7 @@ bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
break; break;
} }
if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) {
if (!layer_state_cmp(layer_state, _ADJUST)) { if (!layer_state_cmp(layer_state, _ADJUST)) {
RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00); RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00);
} }

View File

@ -109,16 +109,19 @@ ISR(TIMERx_COMPA_vect) {
uint8_t duration : 2; uint8_t duration : 2;
uint8_t index : 6; uint8_t index : 6;
} pwm; } pwm;
} timer = {.row = 0}; } timer = {.row = 0};
static led_t led_state = {0};
timer.row++; timer.row++;
// LED on // LED on
if (timer.pwm.count == 0) { if (timer.pwm.count == 0) {
led_set(1 << USB_LED_CAPS_LOCK); led_state.caps_lock = true;
led_set(led_state.raw);
} }
// LED off // LED off
if (timer.pwm.count == pgm_read_byte(&breathing_table[timer.pwm.index])) { if (timer.pwm.count == pgm_read_byte(&breathing_table[timer.pwm.index])) {
led_set(0); led_state.caps_lock = false;
led_set(led_state.raw);
} }
} }

View File

@ -41,17 +41,20 @@ void sleep_led_timer_callback(void) {
uint8_t duration : 2; uint8_t duration : 2;
uint8_t index : 6; uint8_t index : 6;
} pwm; } pwm;
} timer = {.row = 0}; } timer = {.row = 0};
static led_t led_state = {0};
timer.row++; timer.row++;
// LED on // LED on
if (timer.pwm.count == 0) { if (timer.pwm.count == 0) {
led_set(1 << USB_LED_CAPS_LOCK); led_state.caps_lock = true;
led_set(led_state.raw);
} }
// LED off // LED off
if (timer.pwm.count == breathing_table[timer.pwm.index]) { if (timer.pwm.count == breathing_table[timer.pwm.index]) {
led_set(0); led_state.caps_lock = false;
led_set(led_state.raw);
} }
} }
@ -190,7 +193,7 @@ void sleep_led_toggle(void) {
void sleep_led_init(void) {} void sleep_led_init(void) {}
void sleep_led_enable(void) { void sleep_led_enable(void) {
led_set(1 << USB_LED_CAPS_LOCK); led_set(2); // Caps Lock
} }
void sleep_led_disable(void) { void sleep_led_disable(void) {

View File

@ -153,14 +153,14 @@ __attribute__((weak)) void led_set(uint8_t usb_led) {
/** \brief Trigger behaviour on transition to suspend /** \brief Trigger behaviour on transition to suspend
*/ */
void led_suspend(void) { void led_suspend(void) {
uint8_t leds_off = 0; led_t leds_off = {0};
#ifdef BACKLIGHT_CAPS_LOCK #ifdef BACKLIGHT_CAPS_LOCK
if (is_backlight_enabled()) { if (is_backlight_enabled()) {
// Don't try to turn off Caps Lock indicator as it is backlight and backlight is already off // Don't try to turn off Caps Lock indicator as it is backlight and backlight is already off
leds_off |= (1 << USB_LED_CAPS_LOCK); leds_off.caps_lock = true;
} }
#endif #endif
led_set(leds_off); led_set(leds_off.raw);
} }
/** \brief Trigger behaviour on transition from suspend /** \brief Trigger behaviour on transition from suspend

View File

@ -22,9 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* FIXME: Add doxygen comments here. */ /* FIXME: Add doxygen comments here. */
/* keyboard LEDs */
#define USB_LED_CAPS_LOCK 1
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif

View File

@ -11,9 +11,9 @@ void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight
* This is especially useful for One Shot Mods, since it's not always obvious if they're still lit up. * This is especially useful for One Shot Mods, since it's not always obvious if they're still lit up.
*/ */
#if defined(INDICATOR_LIGHTS) #if defined(INDICATOR_LIGHTS)
void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { void set_rgb_indicators(uint8_t this_mod, led_t this_led, uint8_t this_osm) {
if (userspace_config.rgb_layer_change && get_highest_layer(layer_state) == 0) { if (userspace_config.rgb_layer_change && get_highest_layer(layer_state) == 0) {
if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) {
# ifdef SHFT_LED1 # ifdef SHFT_LED1
rgblight_sethsv_at(120, 255, 255, SHFT_LED1); rgblight_sethsv_at(120, 255, 255, SHFT_LED1);
# endif // SHFT_LED1 # endif // SHFT_LED1
@ -79,7 +79,7 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) {
/* Function for the indicators */ /* Function for the indicators */
void matrix_scan_indicator(void) { void matrix_scan_indicator(void) {
if (has_initialized) { if (has_initialized) {
set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods()); set_rgb_indicators(get_mods(), host_keyboard_led_state(), get_oneshot_mods());
} }
} }
#endif // INDICATOR_LIGHTS #endif // INDICATOR_LIGHTS

View File

@ -135,14 +135,15 @@ void matrix_init_user(void) {
} }
static bool is_capslocked = false; static bool is_capslocked = false;
void led_set_user(uint8_t usb_led) { bool led_update_user(led_t led_state) {
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (led_state.caps_lock) {
is_capslocked = true; is_capslocked = true;
// DDRB |= (1 << 2); PORTB &= ~(1 << 2); // DDRB |= (1 << 2); PORTB &= ~(1 << 2);
} else { } else {
is_capslocked = false; is_capslocked = false;
// DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); // DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
} }
return false;
} }
//rgblight_set(); //rgblight_set();