From f077204fae729e66f8dfa16db82263ff2ff84d59 Mon Sep 17 00:00:00 2001 From: Danny Date: Sat, 23 Mar 2019 20:20:14 -0400 Subject: Add support for RGB LEDs wired directly to each half's controller (#5392) * Add support for wiring RGB LEDs for both halves directly to their respective controllers RGB LEDs for each half don't need to be chained together across the TRRS cable with this * Add split RGB LED support for serial * Update config/rules for bakingpy layout * Un-nest ifdefs for hand detection * Read RGB config state from memory instead of EEPROM for serial updates * Reuse existing LED pointer instead of creating new one --- quantum/split_common/split_util.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'quantum/split_common/split_util.c') diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index da870f877..09a307b8e 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -11,25 +11,25 @@ # include "eeconfig.h" #endif +#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) +#include "rgblight.h" +#endif + volatile bool isLeftHand = true; __attribute__((weak)) bool is_keyboard_left(void) { - #ifdef SPLIT_HAND_PIN + #if defined(SPLIT_HAND_PIN) // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand setPinInput(SPLIT_HAND_PIN); return readPin(SPLIT_HAND_PIN); - #else - #ifdef EE_HANDS - return eeprom_read_byte(EECONFIG_HANDEDNESS); - #else - #ifdef MASTER_RIGHT - return !is_keyboard_master(); - #else - return is_keyboard_master(); - #endif - #endif + #elif defined(EE_HANDS) + return eeprom_read_byte(EECONFIG_HANDEDNESS); + #elif defined(MASTER_RIGHT) + return !is_keyboard_master(); #endif + + return is_keyboard_master(); } bool is_keyboard_master(void) @@ -71,6 +71,16 @@ void matrix_setup(void) { isLeftHand = is_keyboard_left(); +#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) + uint8_t num_rgb_leds_split[2] = RGBLED_SPLIT; + if (isLeftHand) { + rgblight_set_clipping_range(0, num_rgb_leds_split[0]); + } + else { + rgblight_set_clipping_range(num_rgb_leds_split[0], num_rgb_leds_split[1]); + } +#endif + if (is_keyboard_master()) { keyboard_master_setup(); -- cgit v1.2.3-70-g09d2