Get rid of `USB_LED_SCROLL_LOCK` (#21405)
This commit is contained in:
parent
9dbad1fa5c
commit
7ff80a57cb
|
@ -3,8 +3,6 @@
|
||||||
|
|
||||||
#define MEDAPP LT(MEDIA, KC_APP)
|
#define MEDAPP LT(MEDIA, KC_APP)
|
||||||
|
|
||||||
uint8_t current_layer_global = 255;
|
|
||||||
|
|
||||||
enum layers {
|
enum layers {
|
||||||
DEFAULT,
|
DEFAULT,
|
||||||
PROG1,
|
PROG1,
|
||||||
|
@ -87,25 +85,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
_______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
_______,_______,_______, LT(MISC, KC_SPC), _______,_______,_______,_______, _______,_______,_______, _______,_______),
|
||||||
};
|
};
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
|
||||||
uint8_t layer;
|
|
||||||
layer = get_highest_layer(layer_state);
|
|
||||||
|
|
||||||
if (current_layer_global != layer) {
|
|
||||||
current_layer_global = layer;
|
|
||||||
|
|
||||||
// unset CAPSLOCK and SCROLL LOCK LEDs
|
|
||||||
led_set(host_keyboard_leds() & ~(1<<USB_LED_CAPS_LOCK));
|
|
||||||
led_set(host_keyboard_leds() & ~(1<<USB_LED_SCROLL_LOCK));
|
|
||||||
// set SCROLL LOCK LED when the mouse layer is active, CAPS LOCK when PROG layer is active
|
|
||||||
if (layer == MOUSE1 || layer == MOUSE2) {
|
|
||||||
led_set(host_keyboard_leds() | (1<<USB_LED_SCROLL_LOCK));
|
|
||||||
} else if (layer == PROG1 || layer == PROG2) {
|
|
||||||
led_set(host_keyboard_leds() | (1<<USB_LED_CAPS_LOCK));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) {
|
void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint16_t macro_kc ) {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if (record->tap.count > 0 && !record->tap.interrupted) {
|
if (record->tap.count > 0 && !record->tap.interrupted) {
|
||||||
|
|
|
@ -243,22 +243,22 @@ void via_custom_value_command(uint8_t *data, uint8_t length) {
|
||||||
|
|
||||||
|
|
||||||
void read_host_led_state(void) {
|
void read_host_led_state(void) {
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
if (leds & (1 << USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
if (led_numlock == false){
|
if (led_numlock == false){
|
||||||
led_numlock = true;}
|
led_numlock = true;}
|
||||||
} else {
|
} else {
|
||||||
if (led_numlock == true){
|
if (led_numlock == true){
|
||||||
led_numlock = false;}
|
led_numlock = false;}
|
||||||
}
|
}
|
||||||
if (leds & (1 << USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
if (led_capslock == false){
|
if (led_capslock == false){
|
||||||
led_capslock = true;}
|
led_capslock = true;}
|
||||||
} else {
|
} else {
|
||||||
if (led_capslock == true){
|
if (led_capslock == true){
|
||||||
led_capslock = false;}
|
led_capslock = false;}
|
||||||
}
|
}
|
||||||
if (leds & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
if (led_scrolllock == false){
|
if (led_scrolllock == false){
|
||||||
led_scrolllock = true;}
|
led_scrolllock = true;}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -75,10 +75,10 @@ bool oled_task_user(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t usb_led = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(IS_LED_ON(usb_led, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(usb_led, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,14 +20,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
|
|
||||||
void led_set(uint8_t usb_led)
|
bool led_update_kb(led_t led_state)
|
||||||
{
|
{
|
||||||
uint8_t ps2_led = 0;
|
uint8_t ps2_led = 0;
|
||||||
if (usb_led & (1<<USB_LED_SCROLL_LOCK))
|
if (led_state.scroll_lock)
|
||||||
ps2_led |= (1<<PS2_LED_SCROLL_LOCK);
|
ps2_led |= (1<<PS2_LED_SCROLL_LOCK);
|
||||||
if (usb_led & (1<<USB_LED_NUM_LOCK))
|
if (led_state.num_lock)
|
||||||
ps2_led |= (1<<PS2_LED_NUM_LOCK);
|
ps2_led |= (1<<PS2_LED_NUM_LOCK);
|
||||||
if (usb_led & (1<<USB_LED_CAPS_LOCK))
|
if (led_state.caps_lock)
|
||||||
ps2_led |= (1<<PS2_LED_CAPS_LOCK);
|
ps2_led |= (1<<PS2_LED_CAPS_LOCK);
|
||||||
ps2_host_set_led(ps2_led);
|
ps2_host_set_led(ps2_led);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,12 +147,12 @@ void render_layer_state(void) {
|
||||||
oled_write_P(PSTR("Raise"), layer_state_is(_RAISE));
|
oled_write_P(PSTR("Raise"), layer_state_is(_RAISE));
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_keylock_status(uint8_t led_usb_state) {
|
void render_keylock_status(led_t led_state) {
|
||||||
oled_write_P(PSTR("Lock:"), false);
|
oled_write_P(PSTR("Lock:"), false);
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK));
|
oled_write_P(PSTR("N"), led_state.num_lock);
|
||||||
oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK));
|
oled_write_P(PSTR("C"), led_state.caps_lock);
|
||||||
oled_write_ln_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK));
|
oled_write_ln_P(PSTR("S"), led_state.scroll_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_mod_status(uint8_t modifiers) {
|
void render_mod_status(uint8_t modifiers) {
|
||||||
|
@ -183,7 +183,7 @@ void render_bootmagic_status(void) {
|
||||||
void render_status_main(void) {
|
void render_status_main(void) {
|
||||||
/* Show Keyboard Layout */
|
/* Show Keyboard Layout */
|
||||||
render_default_layer_state();
|
render_default_layer_state();
|
||||||
render_keylock_status(host_keyboard_leds());
|
render_keylock_status(host_keyboard_led_state());
|
||||||
render_mod_status(get_mods());
|
render_mod_status(get_mods());
|
||||||
render_bootmagic_status();
|
render_bootmagic_status();
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,11 @@ char host_led_state_str[24];
|
||||||
|
|
||||||
const char *read_host_led_state(void)
|
const char *read_host_led_state(void)
|
||||||
{
|
{
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s",
|
snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s",
|
||||||
(leds & (1 << USB_LED_NUM_LOCK)) ? "on" : "- ",
|
(led_state.num_lock) ? "on" : "- ",
|
||||||
(leds & (1 << USB_LED_CAPS_LOCK)) ? "on" : "- ",
|
(led_state.caps_lock) ? "on" : "- ",
|
||||||
(leds & (1 << USB_LED_SCROLL_LOCK)) ? "on" : "- ");
|
(led_state.scroll_lock) ? "on" : "- ");
|
||||||
|
|
||||||
return host_led_state_str;
|
return host_led_state_str;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,8 @@ void backlight_set(uint8_t level) {
|
||||||
bool led_update_kb(led_t led_state) {
|
bool led_update_kb(led_t led_state) {
|
||||||
bool res = led_update_user(led_state);
|
bool res = led_update_user(led_state);
|
||||||
if(res) {
|
if(res) {
|
||||||
backlight_os_state & (1<<USB_LED_CAPS_LOCK) ? (PORTB &= ~0b00000001) : (PORTB |= 0b00000001);
|
backlight_os_state & 2 ? (PORTB &= ~0b00000001) : (PORTB |= 0b00000001);
|
||||||
backlight_os_state & (1<<USB_LED_SCROLL_LOCK) ? (PORTB &= ~0b00010000) : (PORTB |= 0b00010000);
|
backlight_os_state & 4 ? (PORTB &= ~0b00010000) : (PORTB |= 0b00010000);
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,17 +101,17 @@ bool led_update_kb(led_t led_state) {
|
||||||
bool res = led_update_user(led_state);
|
bool res = led_update_user(led_state);
|
||||||
if(res) {
|
if(res) {
|
||||||
bool status[7] = {
|
bool status[7] = {
|
||||||
backlight_os_state & (1<<USB_LED_CAPS_LOCK),
|
backlight_os_state & 2,
|
||||||
backlight_os_state & (1<<USB_LED_SCROLL_LOCK),
|
backlight_os_state & 4,
|
||||||
backlight_os_state & (1<<USB_LED_NUM_LOCK),
|
backlight_os_state & 1,
|
||||||
backlight_layer_state & (1<<1),
|
backlight_layer_state & (1<<1),
|
||||||
backlight_layer_state & (1<<2),
|
backlight_layer_state & (1<<2),
|
||||||
backlight_layer_state & (1<<3),
|
backlight_layer_state & (1<<3),
|
||||||
backlight_layer_state & (1<<4)
|
backlight_layer_state & (1<<4)
|
||||||
};
|
};
|
||||||
indicator_leds_set(status);
|
indicator_leds_set(status);
|
||||||
backlight_os_state & (1<<USB_LED_CAPS_LOCK) ? (PORTB &= ~0b00000001) : (PORTB |= 0b00000001);
|
backlight_os_state & 2 ? (PORTB &= ~0b00000001) : (PORTB |= 0b00000001);
|
||||||
backlight_os_state & (1<<USB_LED_SCROLL_LOCK) ? (PORTB &= ~0b00010000) : (PORTB |= 0b00010000);
|
backlight_os_state & 4 ? (PORTB &= ~0b00010000) : (PORTB |= 0b00010000);
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,69 +24,6 @@ enum BACKLIGHT_AREAS {
|
||||||
BACKLIGHT_SWITCH = 0b0001111
|
BACKLIGHT_SWITCH = 0b0001111
|
||||||
};
|
};
|
||||||
|
|
||||||
// uint8_t backlight_rgb_r = 255;
|
|
||||||
// uint8_t backlight_rgb_g = 0;
|
|
||||||
// uint8_t backlight_rgb_b = 0;
|
|
||||||
// uint8_t backlight_os_state = 0;
|
|
||||||
// uint32_t backlight_layer_state = 0;
|
|
||||||
|
|
||||||
// void backlight_toggle_rgb(bool enabled)
|
|
||||||
// {
|
|
||||||
// if(enabled) {
|
|
||||||
// uint8_t rgb[17][3] = {
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b},
|
|
||||||
// {backlight_rgb_r, backlight_rgb_g, backlight_rgb_b}
|
|
||||||
// };
|
|
||||||
// backlight_set_rgb(rgb);
|
|
||||||
// } else {
|
|
||||||
// uint8_t rgb[17][3] = {
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0},
|
|
||||||
// {0, 0, 0}
|
|
||||||
// };
|
|
||||||
// backlight_set_rgb(rgb);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void backlight_set_rgb(uint8_t cfg[17][3])
|
|
||||||
// {
|
|
||||||
// cli();
|
|
||||||
// for(uint8_t i = 0; i < 17; ++i) {
|
|
||||||
// send_color(cfg[i][0], cfg[i][1], cfg[i][2], Device_PCBRGB);
|
|
||||||
// }
|
|
||||||
// sei();
|
|
||||||
// show();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Q5, Q6, Q7 is connected to B1 - alphas
|
// Q5, Q6, Q7 is connected to B1 - alphas
|
||||||
// Q8, Q9 is connected to B2 - frow
|
// Q8, Q9 is connected to B2 - frow
|
||||||
// Q1, Q2, Q3 is connected to B3 - mods
|
// Q1, Q2, Q3 is connected to B3 - mods
|
||||||
|
@ -99,26 +36,6 @@ void backlight_set(uint8_t level) {
|
||||||
level & BACKLIGHT_MACRO ? (PORTE |= 0b01000000) : (PORTE &= ~0b01000000);
|
level & BACKLIGHT_MACRO ? (PORTE |= 0b01000000) : (PORTE &= ~0b01000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
// // Port from backlight_update_state
|
|
||||||
// bool led_update_kb(led_t led_state) {
|
|
||||||
// bool res = led_update_user(led_state);
|
|
||||||
// if(res) {
|
|
||||||
// bool status[7] = {
|
|
||||||
// backlight_os_state & (1<<USB_LED_CAPS_LOCK),
|
|
||||||
// backlight_os_state & (1<<USB_LED_SCROLL_LOCK),
|
|
||||||
// backlight_os_state & (1<<USB_LED_NUM_LOCK),
|
|
||||||
// backlight_layer_state & (1<<1),
|
|
||||||
// backlight_layer_state & (1<<2),
|
|
||||||
// backlight_layer_state & (1<<3),
|
|
||||||
// backlight_layer_state & (1<<4)
|
|
||||||
// };
|
|
||||||
// indicator_leds_set(status);
|
|
||||||
// backlight_os_state & (1<<USB_LED_CAPS_LOCK) ? (PORTB &= ~0b00000001) : (PORTB |= 0b00000001);
|
|
||||||
// backlight_os_state & (1<<USB_LED_SCROLL_LOCK) ? (PORTB &= ~0b00010000) : (PORTB |= 0b00010000);
|
|
||||||
// }
|
|
||||||
// return res;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// U5 Pin 1, 2, 3 connected to top left LEDs
|
// U5 Pin 1, 2, 3 connected to top left LEDs
|
||||||
|
|
||||||
// U6 Pin 1, 2, 3 connected to bottom right leds col of 3
|
// U6 Pin 1, 2, 3 connected to bottom right leds col of 3
|
||||||
|
|
|
@ -253,12 +253,7 @@ void matrix_scan_user(void) {
|
||||||
};
|
};
|
||||||
|
|
||||||
// The state of the LEDs requested by the system, as a bitmask.
|
// The state of the LEDs requested by the system, as a bitmask.
|
||||||
static uint8_t sys_led_state = 0;
|
static led_t sys_led_state = {0};
|
||||||
|
|
||||||
// Use these masks to read the system LEDs state.
|
|
||||||
static const uint8_t sys_led_mask_num_lock = 1 << USB_LED_NUM_LOCK;
|
|
||||||
static const uint8_t sys_led_mask_caps_lock = 1 << USB_LED_CAPS_LOCK;
|
|
||||||
static const uint8_t sys_led_mask_scroll_lock = 1 << USB_LED_SCROLL_LOCK;
|
|
||||||
|
|
||||||
// Value to use to switch LEDs on. The default value of 255 is far too bright.
|
// Value to use to switch LEDs on. The default value of 255 is far too bright.
|
||||||
static const uint8_t max_led_value = 20;
|
static const uint8_t max_led_value = 20;
|
||||||
|
@ -294,25 +289,26 @@ void led_3_off(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called when the computer wants to change the state of the keyboard LEDs.
|
// Called when the computer wants to change the state of the keyboard LEDs.
|
||||||
void led_set_user(uint8_t usb_led) {
|
bool led_update_user(led_t led_state) {
|
||||||
sys_led_state = usb_led;
|
sys_led_state = led_state;
|
||||||
if (LAYER_ON(SYSLEDS)) {
|
if (LAYER_ON(SYSLEDS)) {
|
||||||
if (sys_led_state & sys_led_mask_caps_lock) {
|
if (sys_led_state.caps_lock) {
|
||||||
led_1_on();
|
led_1_on();
|
||||||
} else {
|
} else {
|
||||||
led_1_off();
|
led_1_off();
|
||||||
}
|
}
|
||||||
if (sys_led_state & sys_led_mask_num_lock) {
|
if (sys_led_state.num_lock) {
|
||||||
led_2_on();
|
led_2_on();
|
||||||
} else {
|
} else {
|
||||||
led_2_off();
|
led_2_off();
|
||||||
}
|
}
|
||||||
if (sys_led_state & sys_led_mask_scroll_lock) {
|
if (sys_led_state.scroll_lock) {
|
||||||
led_3_on();
|
led_3_on();
|
||||||
} else {
|
} else {
|
||||||
led_3_off();
|
led_3_off();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
|
@ -327,7 +323,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LAYER_ON(SYSLEDS)) {
|
if (LAYER_ON(SYSLEDS)) {
|
||||||
led_set_user(sys_led_state);
|
led_update_user(sys_led_state);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,23 +12,29 @@ 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 (led_state.num_lock) {
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
DDRB |= (1 << 5);
|
||||||
DDRB |= (1 << 5); PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 5); PORTB &= ~(1 << 5);
|
DDRB &= ~(1 << 5);
|
||||||
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
DDRB |= (1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
DDRB &= ~(1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,29 @@ 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 (led_state.num_lock) {
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
DDRB |= (1 << 5);
|
||||||
DDRB |= (1 << 5); PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 5); PORTB &= ~(1 << 5);
|
DDRB &= ~(1 << 5);
|
||||||
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
DDRB |= (1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
DDRB &= ~(1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,29 @@ 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 (led_state.num_lock) {
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
DDRB |= (1 << 5);
|
||||||
DDRB |= (1 << 5); PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 5); PORTB &= ~(1 << 5);
|
DDRB &= ~(1 << 5);
|
||||||
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
DDRB |= (1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
DDRB &= ~(1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,29 @@ 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 (led_state.num_lock) {
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
DDRB |= (1 << 5);
|
||||||
DDRB |= (1 << 5); PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 5); PORTB &= ~(1 << 5);
|
DDRB &= ~(1 << 5);
|
||||||
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
DDRB |= (1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
DDRB &= ~(1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,29 @@ 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 (led_state.num_lock) {
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
DDRB |= (1 << 5);
|
||||||
DDRB |= (1 << 5); PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 5); PORTB &= ~(1 << 5);
|
DDRB &= ~(1 << 5);
|
||||||
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
DDRB |= (1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
DDRB &= ~(1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,29 @@ 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 (led_state.num_lock) {
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
DDRB |= (1 << 5);
|
||||||
DDRB |= (1 << 5); PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 5); PORTB &= ~(1 << 5);
|
DDRB &= ~(1 << 5);
|
||||||
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRB |= (1 << 7); PORTB &= ~(1 << 7);
|
DDRB |= (1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
} else {
|
} else {
|
||||||
DDRB &= ~(1 << 7); PORTB &= ~(1 << 7);
|
DDRB &= ~(1 << 7);
|
||||||
|
PORTB &= ~(1 << 7);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -302,8 +302,9 @@ void matrix_init_user(void) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
bool led_update_user(led_t led_state) {
|
||||||
lock_led_set(usb_led & (1<<USB_LED_NUM_LOCK), LED_NUM_LOCK);
|
lock_led_set(led_state.num_lock, LED_NUM_LOCK);
|
||||||
lock_led_set(usb_led & (1<<USB_LED_CAPS_LOCK), LED_CAPS_LOCK);
|
lock_led_set(led_state.caps_lock, LED_CAPS_LOCK);
|
||||||
lock_led_set(usb_led & (1<<USB_LED_SCROLL_LOCK), LED_SCROLL_LOCK);
|
lock_led_set(led_state.scroll_lock, LED_SCROLL_LOCK);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,23 +22,24 @@ 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) {
|
||||||
writePinHigh(F1);
|
writePinHigh(F1);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(F1);
|
writePinLow(F1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
writePinHigh(F0);
|
writePinHigh(F0);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(F0);
|
writePinLow(F0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) {
|
if (!led_state.num_lock) {
|
||||||
tap_code(KC_NUM_LOCK);
|
tap_code(KC_NUM_LOCK);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
static bool sysreq_led = false;
|
static bool sysreq_led = false;
|
||||||
|
|
|
@ -22,23 +22,24 @@ 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) {
|
||||||
writePinHigh(F1);
|
writePinHigh(F1);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(F1);
|
writePinLow(F1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
writePinHigh(F0);
|
writePinHigh(F0);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(F0);
|
writePinLow(F0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(IS_LED_ON(usb_led, USB_LED_NUM_LOCK))) {
|
if (!led_state.num_lock) {
|
||||||
tap_code(KC_NUM_LOCK);
|
tap_code(KC_NUM_LOCK);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
static bool sysreq_led = false;
|
static bool sysreq_led = false;
|
||||||
|
|
|
@ -127,13 +127,13 @@ void render_layer_state(void){
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keylock State
|
// Keylock State
|
||||||
void render_keylock_status(uint8_t led_usb_state) {
|
void render_keylock_status(led_t led_state) {
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("-NUML") : PSTR("-----"), false);
|
oled_write_P(led_state.num_lock ? PSTR("-NUML") : PSTR("-----"), false);
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("-CAPS") : PSTR("-----"), false);
|
oled_write_P(led_state.caps_lock ? PSTR("-CAPS") : PSTR("-----"), false);
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("-SCRL") : PSTR("-----"), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("-SCRL") : PSTR("-----"), false);
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ if (is_keyboard_master()) {
|
||||||
oled_write_P(oled_layer_line_end, false);
|
oled_write_P(oled_layer_line_end, false);
|
||||||
oled_write_P(oled_layer_keylog_bottom, false);
|
oled_write_P(oled_layer_keylog_bottom, false);
|
||||||
oled_write_P(oled_line_start, false);
|
oled_write_P(oled_line_start, false);
|
||||||
render_keylock_status(host_keyboard_leds());
|
render_keylock_status(host_keyboard_led_state());
|
||||||
oled_write_P(oled_layer_line_end, false);
|
oled_write_P(oled_layer_line_end, false);
|
||||||
oled_write_P(oled_mods_bottom, false);
|
oled_write_P(oled_mods_bottom, false);
|
||||||
oled_write_P(oled_line_start, false);
|
oled_write_P(oled_line_start, false);
|
||||||
|
|
|
@ -5,13 +5,9 @@
|
||||||
#ifdef OLED_ENABLE
|
#ifdef OLED_ENABLE
|
||||||
void render_host_led_state(void) {
|
void render_host_led_state(void) {
|
||||||
char led_state_str[24];
|
char led_state_str[24];
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
|
||||||
bool is_num_lock_enabled = leds & (1 << USB_LED_NUM_LOCK);
|
snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", led_state.num_lock ? "on" : "- ", led_state.caps_lock ? "on" : "- ", led_state.scroll_lock ? "on" : "- ");
|
||||||
bool is_caps_lock_enabled = leds & (1 << USB_LED_CAPS_LOCK);
|
|
||||||
bool is_scroll_lock_enabled = leds & (1 << USB_LED_SCROLL_LOCK);
|
|
||||||
|
|
||||||
snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", is_num_lock_enabled ? "on" : "- ", is_caps_lock_enabled ? "on" : "- ", is_scroll_lock_enabled ? "on" : "- ");
|
|
||||||
oled_write(led_state_str, false);
|
oled_write(led_state_str, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -205,7 +205,7 @@ const char code_to_name[60] = {
|
||||||
static inline void set_keylog(uint16_t keycode, keyrecord_t *record)
|
static inline void set_keylog(uint16_t keycode, keyrecord_t *record)
|
||||||
{
|
{
|
||||||
char name = ' ';
|
char name = ' ';
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
|
||||||
if (keycode < 60)
|
if (keycode < 60)
|
||||||
{
|
{
|
||||||
|
@ -218,9 +218,9 @@ static inline void set_keylog(uint16_t keycode, keyrecord_t *record)
|
||||||
record->event.key.col,
|
record->event.key.col,
|
||||||
keycode,
|
keycode,
|
||||||
name,
|
name,
|
||||||
(leds & (1<<USB_LED_NUM_LOCK)) ? 'N' : ' ',
|
led_state.num_lock ? 'N' : ' ',
|
||||||
(leds & (1<<USB_LED_CAPS_LOCK)) ? 'C' : ' ',
|
led_state.caps_lock ? 'C' : ' ',
|
||||||
(leds & (1<<USB_LED_SCROLL_LOCK)) ? 'S' : ' '
|
led_state.scroll_lock ? 'S' : ' '
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -704,9 +704,10 @@ void render_status(struct CharacterMatrix *matrix) {
|
||||||
int rows = 0;
|
int rows = 0;
|
||||||
|
|
||||||
//Set Indicator icon
|
//Set Indicator icon
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) { rown = 4; } else { rown = 0; }
|
led_t led_state = host_keyboard_led_state();
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { rowa = 4; } else { rowa = 0; }
|
if (led_state.num_lock) { rown = 4; } else { rown = 0; }
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) { rows = 4; } else { rows = 0; }
|
if (led_state.caps_lock) { rowa = 4; } else { rowa = 0; }
|
||||||
|
if (led_state.scroll_lock) { rows = 4; } else { rows = 0; }
|
||||||
if (layer_state == L_FUNC) { rowf = 4; }
|
if (layer_state == L_FUNC) { rowf = 4; }
|
||||||
|
|
||||||
matrix_write(matrix, indctr[rown] [0]);
|
matrix_write(matrix, indctr[rown] [0]);
|
||||||
|
@ -813,9 +814,10 @@ void render_status(void) {
|
||||||
int rows = 0;
|
int rows = 0;
|
||||||
|
|
||||||
//Set Indicator icon
|
//Set Indicator icon
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) { rown = 4; } else { rown = 0; }
|
led_t led_state = host_keyboard_led_state();
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { rowa = 4; } else { rowa = 0; }
|
if (led_state.num_lock) { rown = 4; } else { rown = 0; }
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) { rows = 4; } else { rows = 0; }
|
if (led_state.caps_lock) { rowa = 4; } else { rowa = 0; }
|
||||||
|
if (led_state.scroll_lock) { rows = 4; } else { rows = 0; }
|
||||||
if (layer_state == L_FUNC) { rowf = 4; }
|
if (layer_state == L_FUNC) { rowf = 4; }
|
||||||
|
|
||||||
oled_write(indctr[rown] [0], false);
|
oled_write(indctr[rown] [0], false);
|
||||||
|
|
|
@ -782,9 +782,10 @@ void render_status(struct CharacterMatrix *matrix) {
|
||||||
int rowj = 1;
|
int rowj = 1;
|
||||||
|
|
||||||
//Set Indicator icon
|
//Set Indicator icon
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) { rown = 4; }
|
led_t led_state = host_keyboard_led_state();
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { rowa = 4; }
|
if (led_state.num_lock) { rown = 4; }
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) { rows = 4; }
|
if (led_state.caps_lock) { rowa = 4; }
|
||||||
|
if (led_state.scroll_lock) { rows = 4; }
|
||||||
if (IS_LAYER_ON(_FUNC)) { rowf = 4; }
|
if (IS_LAYER_ON(_FUNC)) { rowf = 4; }
|
||||||
|
|
||||||
//Set Mode icon
|
//Set Mode icon
|
||||||
|
@ -909,9 +910,10 @@ void render_status(void) {
|
||||||
int rowj = 1;
|
int rowj = 1;
|
||||||
|
|
||||||
//Set Indicator icon
|
//Set Indicator icon
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) { rown = 4; }
|
led_t led_state = host_keyboard_led_state();
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { rowa = 4; }
|
if (led_state.num_lock) { rown = 4; }
|
||||||
if (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) { rows = 4; }
|
if (led_state.caps_lock) { rowa = 4; }
|
||||||
|
if (led_state.scroll_lock) { rows = 4; }
|
||||||
if (IS_LAYER_ON(_FUNC)) { rowf = 4; }
|
if (IS_LAYER_ON(_FUNC)) { rowf = 4; }
|
||||||
|
|
||||||
//Set Mode icon
|
//Set Mode icon
|
||||||
|
|
|
@ -459,12 +459,10 @@ void render_status(struct CharacterMatrix *matrix) {
|
||||||
matrix_write_P(matrix, PSTR("\n"));
|
matrix_write_P(matrix, PSTR("\n"));
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
matrix_write_P(matrix, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ?
|
led_t led_state = host_keyboard_led_state();
|
||||||
PSTR("NUMLOCK") : PSTR(" "));
|
matrix_write_P(matrix, led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "));
|
||||||
matrix_write_P(matrix, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ?
|
matrix_write_P(matrix, led_state.caps_lock ? PSTR("CAPS") : PSTR(" "));
|
||||||
PSTR("CAPS") : PSTR(" "));
|
matrix_write_P(matrix, led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "));
|
||||||
matrix_write_P(matrix, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ?
|
|
||||||
PSTR("SCLK") : PSTR(" "));
|
|
||||||
matrix_write_P(matrix, PSTR("\n"));
|
matrix_write_P(matrix, PSTR("\n"));
|
||||||
render_rgbled_status(true, matrix);
|
render_rgbled_status(true, matrix);
|
||||||
}
|
}
|
||||||
|
@ -580,12 +578,10 @@ void render_status(void) {
|
||||||
render_layer_status();
|
render_layer_status();
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
oled_write_P((host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ?
|
led_t led_state = host_keyboard_led_state();
|
||||||
PSTR("NUMLOCK") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLOCK") : PSTR(" "), false);
|
||||||
oled_write_P((host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ?
|
oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
|
||||||
PSTR("CAPS") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCLK") : PSTR(" "), false);
|
||||||
oled_write_P((host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ?
|
|
||||||
PSTR("SCLK") : PSTR(" "), false);
|
|
||||||
oled_write_P(PSTR("\n"), false);
|
oled_write_P(PSTR("\n"), false);
|
||||||
render_rgbled_status(true);
|
render_rgbled_status(true);
|
||||||
oled_write_P(PSTR("\n"), false);
|
oled_write_P(PSTR("\n"), false);
|
||||||
|
|
|
@ -278,15 +278,16 @@ void led_init_ports(void) {
|
||||||
DDRE |= (1<<6); // OUT
|
DDRE |= (1<<6); // OUT
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
||||||
DDRD |= (1 << 5); PORTD &= ~(1 << 5);
|
DDRD |= (1 << 5); PORTD &= ~(1 << 5);
|
||||||
} else {
|
} else {
|
||||||
DDRD &= ~(1 << 5); PORTD &= ~(1 << 5);
|
DDRD &= ~(1 << 5); PORTD &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
DDRE |= (1 << 6); PORTE &= ~(1 << 6);
|
DDRE |= (1 << 6); PORTE &= ~(1 << 6);
|
||||||
} else {
|
} else {
|
||||||
DDRE &= ~(1 << 6); PORTE &= ~(1 << 6);
|
DDRE &= ~(1 << 6); PORTE &= ~(1 << 6);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,32 +45,40 @@ void eeconfig_init_kb(void) { // EEPROM is getting reset!
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
|
||||||
__attribute__ ((weak))
|
bool led_update_kb(led_t led_state) {
|
||||||
void led_set_user(uint8_t usb_led) {
|
bool res = led_update_user(led_state);
|
||||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
if (res) {
|
||||||
|
if (led_state.caps_lock) {
|
||||||
sethsv_raw(HSV_CAPS, (LED_TYPE *)&led[0]);
|
sethsv_raw(HSV_CAPS, (LED_TYPE *)&led[0]);
|
||||||
} else {
|
} else {
|
||||||
sethsv(HSV_BLACK, (LED_TYPE *)&led[0]);
|
sethsv(HSV_BLACK, (LED_TYPE *)&led[0]);
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
sethsv_raw(HSV_NLCK, (LED_TYPE *)&led[1]);
|
sethsv_raw(HSV_NLCK, (LED_TYPE *)&led[1]);
|
||||||
} else {
|
} else {
|
||||||
sethsv(HSV_BLACK, (LED_TYPE *)&led[1]);
|
sethsv(HSV_BLACK, (LED_TYPE *)&led[1]);
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
sethsv_raw(HSV_SCRL, (LED_TYPE *)&led[2]);
|
sethsv_raw(HSV_SCRL, (LED_TYPE *)&led[2]);
|
||||||
} else {
|
} else {
|
||||||
sethsv(HSV_BLACK, (LED_TYPE *)&led[2]);
|
sethsv(HSV_BLACK, (LED_TYPE *)&led[2]);
|
||||||
}
|
}
|
||||||
rgblight_set();
|
rgblight_set();
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
__attribute__ ((weak))
|
__attribute__ ((weak))
|
||||||
void keyboard_post_init_user(void) {
|
void keyboard_post_init_user(void) {
|
||||||
rgblight_set_effect_range(3, RGBLED_NUM-3);
|
rgblight_set_effect_range(3, RGBLED_NUM-3);
|
||||||
led_set_user(_BV(USB_LED_CAPS_LOCK)|_BV(USB_LED_NUM_LOCK)|_BV(USB_LED_SCROLL_LOCK));
|
led_t led_state = {
|
||||||
|
.caps_lock = true,
|
||||||
|
.num_lock = true,
|
||||||
|
.scroll_lock = true
|
||||||
|
};
|
||||||
|
led_update_kb(led_state);
|
||||||
wait_ms(300);
|
wait_ms(300);
|
||||||
led_set_user(0);
|
led_update_kb((led_t){0});
|
||||||
}
|
}
|
||||||
|
|
||||||
__attribute__ ((weak))
|
__attribute__ ((weak))
|
||||||
|
|
|
@ -77,23 +77,24 @@ void matrix_scan_user(void) {
|
||||||
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
#ifdef RGBLIGHT_ENABLE
|
||||||
// The first three LEDs are used as indicators for CAPS_LOCK, NUM_LOCK and SCROLL_LOCK.
|
// The first three LEDs are used as indicators for CAPS_LOCK, NUM_LOCK and SCROLL_LOCK.
|
||||||
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) {
|
||||||
sethsv_raw(HSV_SOFT_RED, (LED_TYPE *)&led[0]);
|
sethsv_raw(HSV_SOFT_RED, (LED_TYPE *)&led[0]);
|
||||||
} else {
|
} else {
|
||||||
sethsv(HSV_BLACK, (LED_TYPE *)&led[0]);
|
sethsv(HSV_BLACK, (LED_TYPE *)&led[0]);
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
sethsv_raw(HSV_WARM_WHITE, (LED_TYPE *)&led[1]);
|
sethsv_raw(HSV_WARM_WHITE, (LED_TYPE *)&led[1]);
|
||||||
} else {
|
} else {
|
||||||
sethsv(HSV_BLACK, (LED_TYPE *)&led[1]);
|
sethsv(HSV_BLACK, (LED_TYPE *)&led[1]);
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
sethsv_raw(HSV_SOFT_BLUE, (LED_TYPE *)&led[2]);
|
sethsv_raw(HSV_SOFT_BLUE, (LED_TYPE *)&led[2]);
|
||||||
} else {
|
} else {
|
||||||
sethsv(HSV_BLACK, (LED_TYPE *)&led[2]);
|
sethsv(HSV_BLACK, (LED_TYPE *)&led[2]);
|
||||||
}
|
}
|
||||||
rgblight_set();
|
rgblight_set();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -57,10 +57,10 @@ bool oled_task_user(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,10 +43,10 @@ void render_key_status(void) {
|
||||||
static char lock_buf[24] = "Lock state ready.\n";
|
static char lock_buf[24] = "Lock state ready.\n";
|
||||||
void update_lock_status(void) {
|
void update_lock_status(void) {
|
||||||
|
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
char *num_lock = (leds & (1<<USB_LED_NUM_LOCK)) ? "Num" : "";
|
char *num_lock = led_state.num_lock ? "Num" : "";
|
||||||
char *caps_lock = (leds & (1<<USB_LED_CAPS_LOCK)) ? "Caps" : "";
|
char *caps_lock = led_state.caps_lock ? "Caps" : "";
|
||||||
char *scrl_lock = (leds & (1<<USB_LED_SCROLL_LOCK)) ? "Scrn" : "";
|
char *scrl_lock = led_state.scroll_lock ? "Scrn" : "";
|
||||||
snprintf(lock_buf, sizeof(lock_buf) - 1, "Lock:%s %s %s\n",
|
snprintf(lock_buf, sizeof(lock_buf) - 1, "Lock:%s %s %s\n",
|
||||||
num_lock, caps_lock, scrl_lock);
|
num_lock, caps_lock, scrl_lock);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,14 +32,14 @@ void rgblight_set(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (noah_led_mode) {
|
if (noah_led_mode) {
|
||||||
uint8_t ind_led = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
if (IS_LED_ON(ind_led, USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
noah_leds[0] = led[0];
|
noah_leds[0] = led[0];
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(ind_led, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
noah_leds[1] = led[1];
|
noah_leds[1] = led[1];
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(ind_led, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
noah_leds[2] = led[2];
|
noah_leds[2] = led[2];
|
||||||
}
|
}
|
||||||
for (int32_t i = 0; i < 4; i++) {
|
for (int32_t i = 0; i < 4; i++) {
|
||||||
|
|
|
@ -87,27 +87,27 @@ static void render_status(void) {
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
oled_set_cursor(0, 1);
|
oled_set_cursor(0, 1);
|
||||||
static uint8_t persistent_led_state = 0;
|
static led_t persistent_led_state = {0};
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
|
||||||
// Only update if the LED state has changed
|
// Only update if the LED state has changed
|
||||||
// Otherwise, the OLED will not turn off if an LED is on.
|
// Otherwise, the OLED will not turn off if an LED is on.
|
||||||
if (persistent_led_state != led_usb_state) {
|
if (persistent_led_state != led_state) {
|
||||||
persistent_led_state = led_usb_state;
|
persistent_led_state = led_state;
|
||||||
|
|
||||||
oled_write_ln_P(PSTR(""), false);
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
oled_set_cursor(0, 1);
|
oled_set_cursor(0, 1);
|
||||||
oled_write_P(PSTR("CAPS"), false);
|
oled_write_P(PSTR("CAPS"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
oled_set_cursor(5, 1);
|
oled_set_cursor(5, 1);
|
||||||
oled_write_P(PSTR("NUM"), true);
|
oled_write_P(PSTR("NUM"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
oled_set_cursor(9, 1);
|
oled_set_cursor(9, 1);
|
||||||
oled_write_P(PSTR("SCR"), false);
|
oled_write_P(PSTR("SCR"), false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,27 +114,27 @@ static void render_status(void) {
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
oled_set_cursor(0, 1);
|
oled_set_cursor(0, 1);
|
||||||
static uint8_t persistent_led_state = 0;
|
static led_t persistent_led_state = {0};
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
|
||||||
// Only update if the LED state has changed
|
// Only update if the LED state has changed
|
||||||
// Otherwise, the OLED will not turn off if an LED is on.
|
// Otherwise, the OLED will not turn off if an LED is on.
|
||||||
if (persistent_led_state != led_usb_state) {
|
if (persistent_led_state != led_state) {
|
||||||
persistent_led_state = led_usb_state;
|
persistent_led_state = led_state;
|
||||||
|
|
||||||
oled_write_ln_P(PSTR(""), false);
|
oled_write_ln_P(PSTR(""), false);
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
oled_set_cursor(0, 1);
|
oled_set_cursor(0, 1);
|
||||||
oled_write_P(PSTR("CAPS"), false);
|
oled_write_P(PSTR("CAPS"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
oled_set_cursor(5, 1);
|
oled_set_cursor(5, 1);
|
||||||
oled_write_P(PSTR("NUM"), true);
|
oled_write_P(PSTR("NUM"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
oled_set_cursor(9, 1);
|
oled_set_cursor(9, 1);
|
||||||
oled_write_P(PSTR("SCR"), false);
|
oled_write_P(PSTR("SCR"), false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,27 +94,27 @@ static void render_status(void) {
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
oled_set_cursor(0, 1);
|
oled_set_cursor(0, 1);
|
||||||
static uint8_t persistent_led_state = 0;
|
static led_t persistent_led_state = {0};
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
|
||||||
// Only update if the LED state has changed
|
// Only update if the LED state has changed
|
||||||
// Otherwise, the OLED will not turn off if an LED is on.
|
// Otherwise, the OLED will not turn off if an LED is on.
|
||||||
if (persistent_led_state != led_usb_state) {
|
if (persistent_led_state != led_state) {
|
||||||
persistent_led_state = led_usb_state;
|
persistent_led_state = led_state;
|
||||||
|
|
||||||
oled_write_ln_P(PSTR(" "), false);
|
oled_write_ln_P(PSTR(" "), false);
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
oled_set_cursor(0, 1);
|
oled_set_cursor(0, 1);
|
||||||
oled_write_P(PSTR("CAPS"), false);
|
oled_write_P(PSTR("CAPS"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
oled_set_cursor(5, 1);
|
oled_set_cursor(5, 1);
|
||||||
oled_write_P(PSTR("NUM"), true);
|
oled_write_P(PSTR("NUM"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
oled_set_cursor(9, 1);
|
oled_set_cursor(9, 1);
|
||||||
oled_write_P(PSTR("SCR"), false);
|
oled_write_P(PSTR("SCR"), false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,13 +179,13 @@ static void render_wpm_counters(uint8_t current_wpm) {
|
||||||
|
|
||||||
static void render_led_status(void) {
|
static void render_led_status(void) {
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_set_cursor(0, 8);
|
oled_set_cursor(0, 8);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR(CAPLCK_STR) : PSTR(EMPTY_STR), false);
|
oled_write_P(led_state.caps_lock ? PSTR(CAPLCK_STR) : PSTR(EMPTY_STR), false);
|
||||||
oled_set_cursor(0, 9);
|
oled_set_cursor(0, 9);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR(NUMLCK_STR) : PSTR(EMPTY_STR), false);
|
oled_write_P(led_state.num_lock ? PSTR(NUMLCK_STR) : PSTR(EMPTY_STR), false);
|
||||||
oled_set_cursor(0, 10);
|
oled_set_cursor(0, 10);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR(SCRLK_STR) : PSTR(EMPTY_STR), false);
|
oled_write_P(led_state.scroll_lock ? PSTR(SCRLK_STR) : PSTR(EMPTY_STR), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update WPM snail icon
|
// Update WPM snail icon
|
||||||
|
|
|
@ -52,9 +52,9 @@ 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_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
setPinOutput(B0);
|
setPinOutput(B0);
|
||||||
writePinLow(B0);
|
writePinLow(B0);
|
||||||
} else {
|
} else {
|
||||||
|
@ -62,7 +62,7 @@ void led_set_user(uint8_t usb_led) {
|
||||||
writePinLow(B0);
|
writePinLow(B0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
setPinOutput(B1);
|
setPinOutput(B1);
|
||||||
writePinLow(B1);
|
writePinLow(B1);
|
||||||
} else {
|
} else {
|
||||||
|
@ -70,11 +70,12 @@ void led_set_user(uint8_t usb_led) {
|
||||||
writePinLow(B1);
|
writePinLow(B1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
setPinOutput(B2);
|
setPinOutput(B2);
|
||||||
writePinLow(B2);
|
writePinLow(B2);
|
||||||
} else {
|
} else {
|
||||||
setPinInput(B2);
|
setPinInput(B2);
|
||||||
writePinLow(B2);
|
writePinLow(B2);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,47 +80,48 @@ void matrix_init_user(void)
|
||||||
println("Matrix Init");
|
println("Matrix Init");
|
||||||
}
|
}
|
||||||
|
|
||||||
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 CAPS LK LED is turning on...
|
// If CAPS LK LED is turning on...
|
||||||
PLAY_SONG(tone_caps_on);
|
PLAY_SONG(tone_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 CAPS LK LED is turning off...
|
// If CAPS LK LED is turning off...
|
||||||
PLAY_SONG(tone_caps_off);
|
PLAY_SONG(tone_caps_off);
|
||||||
}
|
}
|
||||||
else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
|
else if (led_state.num_lock && !old_led_state.num_lock)
|
||||||
{
|
{
|
||||||
// If NUM LK LED is turning on...
|
// If NUM LK LED is turning on...
|
||||||
PLAY_SONG(tone_numlk_on);
|
PLAY_SONG(tone_numlk_on);
|
||||||
}
|
}
|
||||||
else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
|
else if (!led_state.num_lock && old_led_state.num_lock)
|
||||||
{
|
{
|
||||||
// If NUM LED is turning off...
|
// If NUM LED is turning off...
|
||||||
PLAY_SONG(tone_numlk_off);
|
PLAY_SONG(tone_numlk_off);
|
||||||
}
|
}
|
||||||
else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
|
else if (led_state.scroll_lock && !old_led_state.scroll_lock)
|
||||||
{
|
{
|
||||||
// If SCROLL LK LED is turning on...
|
// If SCROLL LK LED is turning on...
|
||||||
PLAY_SONG(tone_scroll_on);
|
PLAY_SONG(tone_scroll_on);
|
||||||
}
|
}
|
||||||
else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
|
else if (!led_state.scroll_lock && old_led_state.scroll_lock)
|
||||||
{
|
{
|
||||||
// If SCROLL LED is turning off...
|
// If SCROLL LED is turning off...
|
||||||
PLAY_SONG(tone_scroll_off);
|
PLAY_SONG(tone_scroll_off);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
old_usb_led = usb_led;
|
old_led_state = led_state;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -136,14 +136,6 @@ bool oled_task_user(void) {
|
||||||
oled_write_ln_P(PSTR("Undf"), false);
|
oled_write_ln_P(PSTR("Undf"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
|
||||||
// uint8_t led_usb_state = host_keyboard_leds();
|
|
||||||
// oled_write_P(PSTR("-----"), false);
|
|
||||||
// oled_write_P(PSTR("Stats"), false);
|
|
||||||
// oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("num:*") : PSTR("num:."), false);
|
|
||||||
// oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("cap:*") : PSTR("cap:."), false);
|
|
||||||
// oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("scr:*") : PSTR("scr:."), false);
|
|
||||||
|
|
||||||
oled_write_P(PSTR("-----"), false);
|
oled_write_P(PSTR("-----"), false);
|
||||||
render_backlight_status();
|
render_backlight_status();
|
||||||
|
|
||||||
|
|
|
@ -57,24 +57,18 @@ void matrix_init_user(void) {
|
||||||
writePinLow(B3);
|
writePinLow(B3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
bool led_update_user(led_t led_state) {
|
||||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
writePinHigh(B2);
|
writePinHigh(B2);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(B2);
|
writePinLow(B2);
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
writePinHigh(B1);
|
writePinHigh(B1);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(B1);
|
writePinLow(B1);
|
||||||
}
|
}
|
||||||
/*
|
return false;
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
|
||||||
writePinHigh(B3);
|
|
||||||
} else {
|
|
||||||
writePinLow(B3);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//function for layer indicator LED
|
//function for layer indicator LED
|
||||||
|
|
|
@ -85,24 +85,18 @@ void matrix_init_user(void) {
|
||||||
writePinLow(B3);
|
writePinLow(B3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
bool led_update_user(led_t led_state) {
|
||||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
writePinHigh(B2);
|
writePinHigh(B2);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(B2);
|
writePinLow(B2);
|
||||||
}
|
}
|
||||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
writePinHigh(B1);
|
writePinHigh(B1);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(B1);
|
writePinLow(B1);
|
||||||
}
|
}
|
||||||
/*
|
return false;
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
|
||||||
writePinHigh(B3);
|
|
||||||
} else {
|
|
||||||
writePinLow(B3);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//function for layer indicator LED
|
//function for layer indicator LED
|
||||||
|
|
|
@ -254,10 +254,10 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLOCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLOCK ") : PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCLK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCLK ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
bool oled_task_user(void) {
|
||||||
|
|
|
@ -318,10 +318,10 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLOCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLOCK ") : PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCLK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCLK ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
bool oled_task_user(void) {
|
||||||
|
|
|
@ -344,11 +344,11 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(PSTR("-----"), false);
|
oled_write_P(PSTR("-----"), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
|
||||||
|
|
||||||
#ifdef RGB_OLED_MENU
|
#ifdef RGB_OLED_MENU
|
||||||
static char buffer[31] = { 0 };
|
static char buffer[31] = { 0 };
|
||||||
|
|
|
@ -334,11 +334,11 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(PSTR("-----"), false);
|
oled_write_P(PSTR("-----"), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
|
||||||
|
|
||||||
#ifdef RGB_OLED_MENU
|
#ifdef RGB_OLED_MENU
|
||||||
static char buffer[31] = { 0 };
|
static char buffer[31] = { 0 };
|
||||||
|
|
|
@ -40,11 +40,11 @@ void render_status(void) {
|
||||||
oled_write_P(layer_name_user(get_highest_layer(layer_state)), false);
|
oled_write_P(layer_name_user(get_highest_layer(layer_state)), false);
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_set_cursor(0, oled_max_lines() - 4); // Line 13
|
oled_set_cursor(0, oled_max_lines() - 4); // Line 13
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false); // Line 14
|
oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false); // Line 14
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false); // Line 15
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false); // Line 15
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false); // Line 16
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false); // Line 16
|
||||||
}
|
}
|
||||||
|
|
||||||
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
|
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
|
||||||
|
|
|
@ -253,10 +253,11 @@ void render_status(struct CharacterMatrix *matrix) {
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
char led[40];
|
char led[40];
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
snprintf(led, sizeof(led), "\n%s %s %s",
|
snprintf(led, sizeof(led), "\n%s %s %s",
|
||||||
(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ",
|
led_state.num_lock ? "NUMLOCK" : " ",
|
||||||
(host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ",
|
led_state.caps_lock ? "CAPS" : " ",
|
||||||
(host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " ");
|
led_state.scroll_lock ? "SCLK" : " ");
|
||||||
matrix_write(matrix, led);
|
matrix_write(matrix, led);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -216,10 +216,10 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||||
oled_write_ln_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
bool oled_task_user(void) {
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
char host_led_state_str[22];
|
char host_led_state_str[22];
|
||||||
|
|
||||||
const char *read_host_led_state(void) {
|
const char *read_host_led_state(void) {
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
|
||||||
snprintf(host_led_state_str, sizeof(host_led_state_str), "Lock: %s%s%s",
|
snprintf(host_led_state_str, sizeof(host_led_state_str), "Lock: %s%s%s",
|
||||||
(leds & (1 << USB_LED_CAPS_LOCK)) ? "CAPL " : "",
|
led_state.caps_lock ? "CAPL " : "",
|
||||||
(leds & (1 << USB_LED_SCROLL_LOCK)) ? "SCRL " : "",
|
led_state.scroll_lock ? "SCRL " : "",
|
||||||
(leds & (1 << USB_LED_NUM_LOCK)) ? "NUML" : "");
|
led_state.num_lock ? "NUML" : "");
|
||||||
|
|
||||||
return host_led_state_str;
|
return host_led_state_str;
|
||||||
}
|
}
|
||||||
|
|
|
@ -384,10 +384,10 @@ static void render_status(void) {
|
||||||
oled_write_P(PSTR("\n"), false);
|
oled_write_P(PSTR("\n"), false);
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -210,10 +210,10 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
bool oled_task_user(void) {
|
||||||
|
|
|
@ -225,10 +225,10 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
bool oled_task_user(void) {
|
||||||
|
|
|
@ -286,10 +286,10 @@ static void render_status(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_usb_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oled_task_user(void) {
|
bool oled_task_user(void) {
|
||||||
|
|
|
@ -19,26 +19,27 @@ 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
};
|
};
|
||||||
|
|
||||||
void led_set_user(uint8_t usb_led) {
|
bool led_update_user(led_t led_state) {
|
||||||
setPinOutput(B4);
|
setPinOutput(B4);
|
||||||
setPinOutput(D6);
|
setPinOutput(D6);
|
||||||
setPinOutput(D7);
|
setPinOutput(D7);
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
writePinHigh(D7);
|
writePinHigh(D7);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(D7);
|
writePinLow(D7);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
writePinHigh(B4);
|
writePinHigh(B4);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(B4);
|
writePinLow(B4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
writePinHigh(D6);
|
writePinHigh(D6);
|
||||||
} else {
|
} else {
|
||||||
writePinLow(D6);
|
writePinLow(D6);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,24 +22,25 @@ 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) {
|
||||||
DDRB |= (1 << 4) | (1 << 5) | (1 << 6);
|
DDRB |= (1 << 4) | (1 << 5) | (1 << 6);
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
|
if (led_state.num_lock) {
|
||||||
PORTB |= (1 << 4);
|
PORTB |= (1 << 4);
|
||||||
} else {
|
} else {
|
||||||
PORTB &= ~(1 << 4);
|
PORTB &= ~(1 << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
if (led_state.caps_lock) {
|
||||||
PORTB |= (1 << 5);
|
PORTB |= (1 << 5);
|
||||||
} else {
|
} else {
|
||||||
PORTB &= ~(1 << 5);
|
PORTB &= ~(1 << 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
PORTB |= (1 << 6);
|
PORTB |= (1 << 6);
|
||||||
} else {
|
} else {
|
||||||
PORTB &= ~(1 << 6);
|
PORTB &= ~(1 << 6);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,11 +4,11 @@ char host_led_state_str[24];
|
||||||
|
|
||||||
const char *read_host_led_state(void)
|
const char *read_host_led_state(void)
|
||||||
{
|
{
|
||||||
uint8_t leds = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s",
|
snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s",
|
||||||
(leds & (1 << USB_LED_NUM_LOCK)) ? "on" : "- ",
|
led_state.num_lock ? "on" : "- ",
|
||||||
(leds & (1 << USB_LED_CAPS_LOCK)) ? "on" : "- ",
|
led_state.caps_lock ? "on" : "- ",
|
||||||
(leds & (1 << USB_LED_SCROLL_LOCK)) ? "on" : "- ");
|
led_state.scroll_lock ? "on" : "- ");
|
||||||
|
|
||||||
return host_led_state_str;
|
return host_led_state_str;
|
||||||
}
|
}
|
||||||
|
|
|
@ -882,7 +882,7 @@ __attribute__((weak)) void register_code(uint8_t code) {
|
||||||
} else if (KC_LOCKING_CAPS_LOCK == code) {
|
} else if (KC_LOCKING_CAPS_LOCK == code) {
|
||||||
# ifdef LOCKING_RESYNC_ENABLE
|
# ifdef LOCKING_RESYNC_ENABLE
|
||||||
// Resync: ignore if caps lock already is on
|
// Resync: ignore if caps lock already is on
|
||||||
if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) return;
|
if (host_keyboard_led_state().caps_lock) return;
|
||||||
# endif
|
# endif
|
||||||
add_key(KC_CAPS_LOCK);
|
add_key(KC_CAPS_LOCK);
|
||||||
send_keyboard_report();
|
send_keyboard_report();
|
||||||
|
@ -892,7 +892,7 @@ __attribute__((weak)) void register_code(uint8_t code) {
|
||||||
|
|
||||||
} else if (KC_LOCKING_NUM_LOCK == code) {
|
} else if (KC_LOCKING_NUM_LOCK == code) {
|
||||||
# ifdef LOCKING_RESYNC_ENABLE
|
# ifdef LOCKING_RESYNC_ENABLE
|
||||||
if (host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) return;
|
if (host_keyboard_led_state().num_lock) return;
|
||||||
# endif
|
# endif
|
||||||
add_key(KC_NUM_LOCK);
|
add_key(KC_NUM_LOCK);
|
||||||
send_keyboard_report();
|
send_keyboard_report();
|
||||||
|
@ -902,7 +902,7 @@ __attribute__((weak)) void register_code(uint8_t code) {
|
||||||
|
|
||||||
} else if (KC_LOCKING_SCROLL_LOCK == code) {
|
} else if (KC_LOCKING_SCROLL_LOCK == code) {
|
||||||
# ifdef LOCKING_RESYNC_ENABLE
|
# ifdef LOCKING_RESYNC_ENABLE
|
||||||
if (host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK)) return;
|
if (host_keyboard_led_state().scroll_lock) return;
|
||||||
# endif
|
# endif
|
||||||
add_key(KC_SCROLL_LOCK);
|
add_key(KC_SCROLL_LOCK);
|
||||||
send_keyboard_report();
|
send_keyboard_report();
|
||||||
|
@ -952,7 +952,7 @@ __attribute__((weak)) void unregister_code(uint8_t code) {
|
||||||
} else if (KC_LOCKING_CAPS_LOCK == code) {
|
} else if (KC_LOCKING_CAPS_LOCK == code) {
|
||||||
# ifdef LOCKING_RESYNC_ENABLE
|
# ifdef LOCKING_RESYNC_ENABLE
|
||||||
// Resync: ignore if caps lock already is off
|
// Resync: ignore if caps lock already is off
|
||||||
if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) return;
|
if (!host_keyboard_led_state().caps_lock) return;
|
||||||
# endif
|
# endif
|
||||||
add_key(KC_CAPS_LOCK);
|
add_key(KC_CAPS_LOCK);
|
||||||
send_keyboard_report();
|
send_keyboard_report();
|
||||||
|
@ -961,7 +961,7 @@ __attribute__((weak)) void unregister_code(uint8_t code) {
|
||||||
|
|
||||||
} else if (KC_LOCKING_NUM_LOCK == code) {
|
} else if (KC_LOCKING_NUM_LOCK == code) {
|
||||||
# ifdef LOCKING_RESYNC_ENABLE
|
# ifdef LOCKING_RESYNC_ENABLE
|
||||||
if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) return;
|
if (!host_keyboard_led_state().num_lock) return;
|
||||||
# endif
|
# endif
|
||||||
add_key(KC_NUM_LOCK);
|
add_key(KC_NUM_LOCK);
|
||||||
send_keyboard_report();
|
send_keyboard_report();
|
||||||
|
@ -970,7 +970,7 @@ __attribute__((weak)) void unregister_code(uint8_t code) {
|
||||||
|
|
||||||
} else if (KC_LOCKING_SCROLL_LOCK == code) {
|
} else if (KC_LOCKING_SCROLL_LOCK == code) {
|
||||||
# ifdef LOCKING_RESYNC_ENABLE
|
# ifdef LOCKING_RESYNC_ENABLE
|
||||||
if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) return;
|
if (!host_keyboard_led_state().scroll_lock) return;
|
||||||
# endif
|
# endif
|
||||||
add_key(KC_SCROLL_LOCK);
|
add_key(KC_SCROLL_LOCK);
|
||||||
send_keyboard_report();
|
send_keyboard_report();
|
||||||
|
|
|
@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
/* keyboard LEDs */
|
/* keyboard LEDs */
|
||||||
#define USB_LED_NUM_LOCK 0
|
#define USB_LED_NUM_LOCK 0
|
||||||
#define USB_LED_CAPS_LOCK 1
|
#define USB_LED_CAPS_LOCK 1
|
||||||
#define USB_LED_SCROLL_LOCK 2
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
@ -86,12 +86,12 @@ void render_layer_state(void) {
|
||||||
oled_write_P(PSTR(" Mods"), layer_state_is(_MODS));
|
oled_write_P(PSTR(" Mods"), layer_state_is(_MODS));
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_keylock_status(uint8_t led_usb_state) {
|
void render_keylock_status(led_t led_state) {
|
||||||
oled_write_P(PSTR("Lock:"), false);
|
oled_write_P(PSTR("Lock:"), false);
|
||||||
oled_write_P(PSTR(" "), false);
|
oled_write_P(PSTR(" "), false);
|
||||||
oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK));
|
oled_write_P(PSTR("N"), led_state.num_lock);
|
||||||
oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK));
|
oled_write_P(PSTR("C"), led_state.caps_lock);
|
||||||
oled_write_ln_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK));
|
oled_write_ln_P(PSTR("S"), led_state.scroll_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_mod_status(uint8_t modifiers) {
|
void render_mod_status(uint8_t modifiers) {
|
||||||
|
@ -129,7 +129,7 @@ void render_user_status(void) {
|
||||||
void render_status_main(void) {
|
void render_status_main(void) {
|
||||||
/* Show Keyboard Layout */
|
/* Show Keyboard Layout */
|
||||||
render_default_layer_state();
|
render_default_layer_state();
|
||||||
render_keylock_status(host_keyboard_leds());
|
render_keylock_status(host_keyboard_led_state());
|
||||||
render_bootmagic_status();
|
render_bootmagic_status();
|
||||||
render_user_status();
|
render_user_status();
|
||||||
|
|
||||||
|
|
|
@ -32,11 +32,11 @@ void oled_render_locale(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void oled_render_keylock_status(uint8_t led_usb_state) {
|
void oled_render_keylock_status(led_t led_state) {
|
||||||
oled_write_P(PSTR(" Lock:"), false);
|
oled_write_P(PSTR(" Lock:"), false);
|
||||||
oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK));
|
oled_write_P(PSTR("N"), led_state.num_lock);
|
||||||
oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK));
|
oled_write_P(PSTR("C"), led_state.caps_lock);
|
||||||
oled_write_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK));
|
oled_write_P(PSTR("S"), led_state.scroll_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void oled_render_mod_status(uint8_t modifiers) {
|
void oled_render_mod_status(uint8_t modifiers) {
|
||||||
|
@ -49,7 +49,7 @@ void oled_render_mod_status(uint8_t modifiers) {
|
||||||
|
|
||||||
void oled_render_mod_lock_status(void){
|
void oled_render_mod_lock_status(void){
|
||||||
oled_render_mod_status(get_mods() | get_oneshot_mods());
|
oled_render_mod_status(get_mods() | get_oneshot_mods());
|
||||||
oled_render_keylock_status(host_keyboard_leds());
|
oled_render_keylock_status(host_keyboard_led_state());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -187,6 +187,3 @@ bool oled_task_user(void) {
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* oled_render_keylock_status(host_keyboard_leds()); */
|
|
||||||
/* oled_render_mod_status(get_mods() | get_oneshot_mods()); */
|
|
||||||
|
|
|
@ -73,9 +73,9 @@ const rgblight_segment_t *const PROGMEM _rgb_layers[] = {
|
||||||
[LAYER_OFFSET + _NUMPAD] = _layer1_layer,
|
[LAYER_OFFSET + _NUMPAD] = _layer1_layer,
|
||||||
[LAYER_OFFSET + _FN] = _layer2_layer,
|
[LAYER_OFFSET + _FN] = _layer2_layer,
|
||||||
|
|
||||||
[LOCK_OFFSET + USB_LED_NUM_LOCK] = _numlock_layer,
|
[LOCK_OFFSET + 0] = _numlock_layer,
|
||||||
[LOCK_OFFSET + USB_LED_CAPS_LOCK] = _capslock_layer,
|
[LOCK_OFFSET + 1] = _capslock_layer,
|
||||||
[LOCK_OFFSET + USB_LED_SCROLL_LOCK] = _scrolllock_layer,
|
[LOCK_OFFSET + 2] = _scrolllock_layer,
|
||||||
|
|
||||||
[MISC_OFFSET + 0] = _gflock_layer,
|
[MISC_OFFSET + 0] = _gflock_layer,
|
||||||
[MISC_OFFSET + 1] = _glyphreplace_layer,
|
[MISC_OFFSET + 1] = _glyphreplace_layer,
|
||||||
|
@ -374,9 +374,9 @@ layer_state_t layer_state_set_user_rgb(layer_state_t state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool led_update_user_rgb(led_t led_state) {
|
bool led_update_user_rgb(led_t led_state) {
|
||||||
rgblight_set_layer_state(LOCK_OFFSET + USB_LED_NUM_LOCK, led_state.num_lock);
|
rgblight_set_layer_state(LOCK_OFFSET + 0, led_state.num_lock);
|
||||||
rgblight_set_layer_state(LOCK_OFFSET + USB_LED_CAPS_LOCK, led_state.caps_lock);
|
rgblight_set_layer_state(LOCK_OFFSET + 1, led_state.caps_lock);
|
||||||
rgblight_set_layer_state(LOCK_OFFSET + USB_LED_SCROLL_LOCK, led_state.scroll_lock);
|
rgblight_set_layer_state(LOCK_OFFSET + 2, led_state.scroll_lock);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,15 +71,15 @@ static void render_layer(void)
|
||||||
static void render_keyboard_leds(void)
|
static void render_keyboard_leds(void)
|
||||||
{
|
{
|
||||||
// Host Keyboard LED Status
|
// Host Keyboard LED Status
|
||||||
uint8_t led_state = host_keyboard_leds();
|
led_t led_state = host_keyboard_led_state();
|
||||||
#ifdef OLED_90ROTATION
|
#ifdef OLED_90ROTATION
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUMLK") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPLK") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRLK") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
|
||||||
#else
|
#else
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_NUM_LOCK) ? PSTR("NUM ") : PSTR(" "), false);
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_CAPS_LOCK) ? PSTR("CAPS ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
|
||||||
oled_write_P(IS_LED_ON(led_state, USB_LED_SCROLL_LOCK) ? PSTR("SCRL") : PSTR(" "), false);
|
oled_write_P(led_state.scroll_lock ? PSTR("SCRL") : PSTR(" "), false);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,8 +69,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
return process_record_keymap(keycode, record);
|
return process_record_keymap(keycode, record);
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
||||||
rbw_led_keys[RBW_LCAP].status = ENABLED;
|
rbw_led_keys[RBW_LCAP].status = ENABLED;
|
||||||
rbw_led_keys[RBW_RCAP].status = ENABLED;
|
rbw_led_keys[RBW_RCAP].status = ENABLED;
|
||||||
} else {
|
} else {
|
||||||
|
@ -78,11 +78,12 @@ void led_set_user(uint8_t usb_led) {
|
||||||
rbw_led_keys[RBW_RCAP].status = DISABLED;
|
rbw_led_keys[RBW_RCAP].status = DISABLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
|
if (led_state.scroll_lock) {
|
||||||
rbw_led_keys[RBW_SCRL].status = ENABLED;
|
rbw_led_keys[RBW_SCRL].status = ENABLED;
|
||||||
} else {
|
} else {
|
||||||
rbw_led_keys[RBW_SCRL].status = DISABLED;
|
rbw_led_keys[RBW_SCRL].status = DISABLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
led_set_keymap(usb_led);
|
led_set_keymap(led_state.raw);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue