From eba9a7d74db0be548cddc107f0370dabf43b017f Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 15 Mar 2016 23:52:51 -0500 Subject: Adding LED function pointers --- quantum/led.c | 12 +++++++++++- quantum/template/template.c | 29 ++++++++++++++++++++++++----- quantum/template/template.h | 1 + 3 files changed, 36 insertions(+), 6 deletions(-) (limited to 'quantum') 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 -- cgit v1.2.3 From 10491ba21f91526c2011f43523dcde8710706dff Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 22 Mar 2016 20:58:44 -0500 Subject: Fixed LED Function Calls Fixed LED indicator function calls to match how the matrix init function calls are formatted. --- quantum/led.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'quantum') diff --git a/quantum/led.c b/quantum/led.c index a53e940436..42525090bd 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -16,16 +16,19 @@ along with this program. If not, see . */ #include -#include +#include "stdint.h" #include "led.h" __attribute__ ((weak)) -void * led_set_kb(uint8_t usb_led) { - return NULL; +void led_set_kb(uint8_t usb_led) { + }; void led_set(uint8_t usb_led) { + + // Example LED Code + // // // Using PE6 Caps Lock LED // if (usb_led & (1< Date: Tue, 22 Mar 2016 21:06:22 -0500 Subject: Fixed extra semicolons. Fixed extra semicolons. --- quantum/led.c | 2 +- quantum/template/template.c | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'quantum') diff --git a/quantum/led.c b/quantum/led.c index 42525090bd..9cdb8a5c20 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -22,7 +22,7 @@ along with this program. If not, see . __attribute__ ((weak)) void led_set_kb(uint8_t usb_led) { -}; +} void led_set(uint8_t usb_led) { diff --git a/quantum/template/template.c b/quantum/template/template.c index 828afb18c1..58e73cb09f 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -3,37 +3,34 @@ __attribute__ ((weak)) void matrix_init_user(void) { // leave this function blank - it can be defined in a keymap file - return NULL; }; __attribute__ ((weak)) void matrix_scan_user(void) { // 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 matrix_init_user(); -}; +} void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) matrix_scan_user(); -}; +} void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here led_set_user(usb_led); -}; \ No newline at end of file +} \ No newline at end of file -- cgit v1.2.3