diff --git a/quantum/led.c b/quantum/led.c
index 2c05746607..a53e940436 100644
--- a/quantum/led.c
+++ b/quantum/led.c
@@ -16,9 +16,13 @@ along with this program. If not, see .
*/
#include
-#include "stdint.h"
+#include
#include "led.h"
+__attribute__ ((weak))
+void * led_set_kb(uint8_t usb_led) {
+ return NULL;
+};
void led_set(uint8_t usb_led)
{
@@ -35,4 +39,10 @@ void led_set(uint8_t usb_led)
// DDRE &= ~(1<<6);
// PORTE &= ~(1<<6);
// }
+
+ if (led_set_kb) {
+ (*led_set_kb)(usb_led);
+ }
+
+ return;
}
diff --git a/quantum/template/template.c b/quantum/template/template.c
index 7be7dfc3d1..016e113007 100644
--- a/quantum/template/template.c
+++ b/quantum/template/template.c
@@ -2,28 +2,47 @@
__attribute__ ((weak))
void * matrix_init_user(void) {
- // leave these blank
+ // leave this function blank - it can be defined in a keymap file
+ return NULL;
};
__attribute__ ((weak))
void * matrix_scan_user(void) {
- // leave these blank
+ // leave this function blank - it can be defined in a keymap file
+ return NULL;
+};
+
+__attribute__ ((weak))
+void * led_set_user(uint8_t usb_led) {
+ // leave this function blank - it can be defined in a keymap file
+ return NULL;
};
void * matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
-
+
if (matrix_init_user) {
(*matrix_init_user)();
}
+ return NULL;
};
void * matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
if (matrix_scan_user) {
(*matrix_scan_user)();
}
+ return NULL;
+};
+
+void * led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (led_set_user) {
+ (*led_set_user)(usb_led);
+ }
+ return NULL;
};
\ No newline at end of file
diff --git a/quantum/template/template.h b/quantum/template/template.h
index a15061b267..ed17ca0016 100644
--- a/quantum/template/template.h
+++ b/quantum/template/template.h
@@ -21,5 +21,6 @@
void * matrix_init_user(void);
void * matrix_scan_user(void);
+void * led_set_user(uint8_t usb_led);
#endif
\ No newline at end of file
diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h
index d5fc051bf5..4b9632d3a4 100644
--- a/tmk_core/common/led.h
+++ b/tmk_core/common/led.h
@@ -33,6 +33,8 @@ extern "C" {
#endif
void led_set(uint8_t usb_led);
+void * led_set_kb(uint8_t usb_led);
+
#ifdef __cplusplus
}