49 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| Copyright 2020 Constantine Chen @csc027
 | |
| 
 | |
| This program is free software: you can redistribute it and/or modify
 | |
| it under the terms of the GNU General Public License as published by
 | |
| the Free Software Foundation, either version 2 of the License, or
 | |
| (at your option) any later version.
 | |
| 
 | |
| This program is distributed in the hope that it will be useful,
 | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| GNU General Public License for more details.
 | |
| 
 | |
| You should have received a copy of the GNU General Public License
 | |
| along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| */
 | |
| 
 | |
| #include "csc027.h"
 | |
| #include "usb_led.h"
 | |
| #include "led.h"
 | |
| 
 | |
| #if defined(RGBLIGHT_ENABLE)
 | |
| #    include "custom_rgb.h"
 | |
| #elif defined(AUDIO_ENABLE)
 | |
| #    include "custom_audio.h"
 | |
| #endif
 | |
| 
 | |
| #if defined(AUDIO_ENABLE) || defined(RGBLIGHT_ENABLE)
 | |
| 
 | |
| bool led_update_user(led_t new_led) {
 | |
|     static led_t old_led = {
 | |
|         .num_lock = false,
 | |
|         .caps_lock = false,
 | |
|         .scroll_lock = false
 | |
|     };
 | |
| 
 | |
|     if(old_led.caps_lock != new_led.caps_lock) {
 | |
|         new_led.caps_lock ? on_usb_led_on() : on_usb_led_off();
 | |
|     } else if(old_led.num_lock != new_led.num_lock) {
 | |
|         new_led.num_lock ? on_usb_led_on() : on_usb_led_off();
 | |
|     } else if(old_led.scroll_lock != new_led.scroll_lock) {
 | |
|         new_led.scroll_lock ? on_usb_led_on() : on_usb_led_off();
 | |
|     }
 | |
|     old_led = new_led;
 | |
| 
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| #endif
 | 
