diff options
author | IBNobody <protospherex@gmail.com> | 2016-03-15 23:52:51 -0500 |
---|---|---|
committer | IBNobody <protospherex@gmail.com> | 2016-03-15 23:52:51 -0500 |
commit | eba9a7d74db0be548cddc107f0370dabf43b017f (patch) | |
tree | 30320f53b83f944c5c038e19ae5cb2aa34423cfd | |
parent | 35393fa9dc3d14ea80ce72f27c13b1759600b245 (diff) | |
download | qmk_firmware-eba9a7d74db0be548cddc107f0370dabf43b017f.tar.gz qmk_firmware-eba9a7d74db0be548cddc107f0370dabf43b017f.zip |
Adding LED function pointers
-rw-r--r-- | quantum/led.c | 12 | ||||
-rw-r--r-- | quantum/template/template.c | 29 | ||||
-rw-r--r-- | quantum/template/template.h | 1 | ||||
-rw-r--r-- | tmk_core/common/led.h | 2 |
4 files changed, 38 insertions, 6 deletions
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 <http://www.gnu.org/licenses/>. */ #include <avr/io.h> -#include "stdint.h" +#include <stddef.h> #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 } |