aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/split_common/split_util.c
diff options
context:
space:
mode:
authorGravatar Danny <nooges@users.noreply.github.com>2019-03-23 20:20:14 -0400
committerGravatar Drashna Jaelre <drashna@live.com>2019-03-23 17:20:14 -0700
commitf077204fae729e66f8dfa16db82263ff2ff84d59 (patch)
treedbd23687e838271e9f90b7dab25b0312745eb5e3 /quantum/split_common/split_util.c
parent23086808a78c9234232e2ddbf0c977d1fb2cb6ae (diff)
downloadqmk_firmware-f077204fae729e66f8dfa16db82263ff2ff84d59.tar.gz
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
Diffstat (limited to 'quantum/split_common/split_util.c')
-rw-r--r--quantum/split_common/split_util.c32
1 files changed, 21 insertions, 11 deletions
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();