Use White channel on RGBW LEDs (#7678)
* Use White channel on RGBW LEDs Co-authored-by: kwerdenker <sebastian.spindler@gmail.com> * Manually apply white channel to array * Move where convert_rgb_to_rgbw is called * Fix type for rgbw led struct * Add changes to Ergodox EZ can revert if deemed necessary * Revert "Add changes to Ergodox EZ" This reverts commit aa44db198d40d758ca10470eb94615513592d1dd. * Revert "Fix type for rgbw led struct" This reverts commit c5c744cba040201cc0d124400773cf13f8a2cf22. * Revert "Move where convert_rgb_to_rgbw is called" This reverts commit cd7f17caf6dd30731c54b3be54490fe4519444f9. * Revert changes and fix up functions * Enable white channel for Ergodox EZ as well * Only run conversion of rgblight is enabled Co-authored-by: kwerdenker <sebastian.spindler@gmail.com>
This commit is contained in:
		
							parent
							
								
									a52e55ec09
								
							
						
					
					
						commit
						7ba6456c0b
					
				
					 5 changed files with 33 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -85,3 +85,17 @@ RGB hsv_to_rgb(HSV hsv) {
 | 
			
		|||
 | 
			
		||||
    return rgb;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef RGBW
 | 
			
		||||
#ifndef MIN
 | 
			
		||||
#    define MIN(a, b) ((a) < (b) ? (a) : (b))
 | 
			
		||||
#endif
 | 
			
		||||
void convert_rgb_to_rgbw(LED_TYPE *led) {
 | 
			
		||||
    // Determine lowest value in all three colors, put that into
 | 
			
		||||
    // the white channel and then shift all colors by that amount
 | 
			
		||||
    led->w = MIN(led->r, MIN(led->g, led->b));
 | 
			
		||||
    led->r -= led->w;
 | 
			
		||||
    led->g -= led->w;
 | 
			
		||||
    led->b -= led->w;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue