|
@@ -315,11 +315,10 @@ def _extract_rgblight(info_data, config_c):
|
|
|
cli.log.error('%s: config.h: Could not convert "%s" to %s: %s', info_data['keyboard_folder'], config_c[config_key], config_type.__name__, e)
|
|
|
|
|
|
for json_key, config_key in rgblight_toggles.items():
|
|
|
- if config_key in config_c:
|
|
|
- if json_key in rgblight:
|
|
|
- _log_warning(info_data, 'RGB Light: %s is specified in both info.json and config.h, the config.h value wins.', json_key)
|
|
|
+ if config_key in config_c and json_key in rgblight:
|
|
|
+ _log_warning(info_data, 'RGB Light: %s is specified in both info.json and config.h, the config.h value wins.', json_key)
|
|
|
|
|
|
- rgblight[json_key] = config_c[config_key]
|
|
|
+ rgblight[json_key] = config_key in config_c
|
|
|
|
|
|
for json_key, config_key in rgblight_animations.items():
|
|
|
if config_key in config_c:
|
|
@@ -337,16 +336,30 @@ def _extract_rgblight(info_data, config_c):
|
|
|
return info_data
|
|
|
|
|
|
|
|
|
-def _extract_pins(pins):
|
|
|
- """Returns a list of pins from a comma separated string of pins.
|
|
|
+def _pin_name(pin):
|
|
|
+ """Returns the proper representation for a pin.
|
|
|
"""
|
|
|
- pins = [pin.strip() for pin in pins.split(',') if pin]
|
|
|
+ pin = pin.strip()
|
|
|
+
|
|
|
+ if not pin:
|
|
|
+ return None
|
|
|
+
|
|
|
+ elif pin.isdigit():
|
|
|
+ return int(pin)
|
|
|
|
|
|
- for pin in pins:
|
|
|
- if pin[0] not in 'ABCDEFGHIJK' or not pin[1].isdigit():
|
|
|
- raise ValueError(f'Invalid pin: {pin}')
|
|
|
+ elif pin == 'NO_PIN':
|
|
|
+ return None
|
|
|
|
|
|
- return pins
|
|
|
+ elif pin[0] in 'ABCDEFGHIJK' and pin[1].isdigit():
|
|
|
+ return pin
|
|
|
+
|
|
|
+ raise ValueError(f'Invalid pin: {pin}')
|
|
|
+
|
|
|
+
|
|
|
+def _extract_pins(pins):
|
|
|
+ """Returns a list of pins from a comma separated string of pins.
|
|
|
+ """
|
|
|
+ return [_pin_name(pin) for pin in pins.split(',')]
|
|
|
|
|
|
|
|
|
def _extract_direct_matrix(info_data, direct_pins):
|