~ruther/qmk_firmware

eba9a7d74db0be548cddc107f0370dabf43b017f — IBNobody 9 years ago 35393fa
Adding LED function pointers
4 files changed, 38 insertions(+), 6 deletions(-)

M quantum/led.c
M quantum/template/template.c
M quantum/template/template.h
M tmk_core/common/led.h
M quantum/led.c => quantum/led.c +11 -1
@@ 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;
}

M quantum/template/template.c => quantum/template/template.c +24 -5
@@ 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

M quantum/template/template.h => quantum/template/template.h +1 -0
@@ 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

M tmk_core/common/led.h => tmk_core/common/led.h +2 -0
@@ 33,6 33,8 @@ extern "C" {
#endif

void led_set(uint8_t usb_led);
void * led_set_kb(uint8_t usb_led);


#ifdef __cplusplus
}