summaryrefslogtreecommitdiff
path: root/keyboards/input_club/infinity60/led.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/input_club/infinity60/led.c')
-rw-r--r--keyboards/input_club/infinity60/led.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/keyboards/input_club/infinity60/led.c b/keyboards/input_club/infinity60/led.c
index 8effcea81a..33871bcc49 100644
--- a/keyboards/input_club/infinity60/led.c
+++ b/keyboards/input_club/infinity60/led.c
@@ -26,29 +26,33 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* both regular threads and ISRs, unlocked (during resume-from-sleep).
* In particular, I2C functions (interrupt-driven) should NOT be called from here.
*/
-void led_set(uint8_t usb_led) {
- msg_t msg;
-
- if (usb_led & (1<<USB_LED_NUM_LOCK)) {
- chSysUnconditionalLock();
- msg=(1 << 8) | TOGGLE_NUM_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- } else {
- chSysUnconditionalLock();
- msg=(0 << 8) | TOGGLE_NUM_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- }
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- chSysUnconditionalLock();
- msg=(1 << 8) | TOGGLE_CAPS_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- } else {
- chSysUnconditionalLock();
- msg=(0 << 8) | TOGGLE_CAPS_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (res) {
+ msg_t msg;
+
+ if (led_state.num_lock) {
+ chSysUnconditionalLock();
+ msg=(1 << 8) | TOGGLE_NUM_LOCK;
+ chMBPostI(&led_mailbox, msg);
+ chSysUnconditionalUnlock();
+ } else {
+ chSysUnconditionalLock();
+ msg=(0 << 8) | TOGGLE_NUM_LOCK;
+ chMBPostI(&led_mailbox, msg);
+ chSysUnconditionalUnlock();
+ }
+ if (led_state.caps_lock) {
+ chSysUnconditionalLock();
+ msg=(1 << 8) | TOGGLE_CAPS_LOCK;
+ chMBPostI(&led_mailbox, msg);
+ chSysUnconditionalUnlock();
+ } else {
+ chSysUnconditionalLock();
+ msg=(0 << 8) | TOGGLE_CAPS_LOCK;
+ chMBPostI(&led_mailbox, msg);
+ chSysUnconditionalUnlock();
+ }
}
+ return false;
}