Adding LED function pointers
This commit is contained in:
		
							parent
							
								
									35393fa9dc
								
							
						
					
					
						commit
						eba9a7d74d
					
				
					 4 changed files with 38 additions and 6 deletions
				
			
		|  | @ -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; | ||||
| } | ||||
|  |  | |||
|  | @ -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; | ||||
| }; | ||||
|  | @ -21,5 +21,6 @@ | |||
| 
 | ||||
| void * matrix_init_user(void); | ||||
| void * matrix_scan_user(void); | ||||
| void * led_set_user(uint8_t usb_led); | ||||
| 
 | ||||
| #endif | ||||
|  | @ -33,6 +33,8 @@ extern "C" { | |||
| #endif | ||||
| 
 | ||||
| void led_set(uint8_t usb_led); | ||||
| void * led_set_kb(uint8_t usb_led); | ||||
| 
 | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 IBNobody
						IBNobody