mirror of
https://github.com/firewalkwithm3/qmk_firmware.git
synced 2024-11-22 11:30:30 +08:00
Add *_MATRIX_LED_COUNT generation/validation (#19515)
* Add *_MATRIX_LED_COUNT parsing/validation * Disable parsing for now * Disable complexity check
This commit is contained in:
parent
0a3ec7f59c
commit
25c16b3ade
|
@ -71,6 +71,7 @@
|
||||||
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
|
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
|
||||||
"LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
|
"LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
|
||||||
"LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
|
"LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
|
||||||
|
"LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false},
|
||||||
|
|
||||||
// LUFA Bootloader
|
// LUFA Bootloader
|
||||||
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
|
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
|
||||||
|
@ -109,6 +110,7 @@
|
||||||
"RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"},
|
"RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"},
|
||||||
"RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
|
"RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
|
||||||
"RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"},
|
"RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"},
|
||||||
|
"RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false},
|
||||||
|
|
||||||
// RGBLight
|
// RGBLight
|
||||||
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
|
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
|
||||||
|
|
|
@ -372,6 +372,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"driver": {"type": "string"},
|
"driver": {"type": "string"},
|
||||||
|
"led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||||
"center_point": {
|
"center_point": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"minItems": 2,
|
"minItems": 2,
|
||||||
|
@ -423,6 +424,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"driver": {"type": "string"},
|
"driver": {"type": "string"},
|
||||||
|
"led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||||
"center_point": {
|
"center_point": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"minItems": 2,
|
"minItems": 2,
|
||||||
|
|
|
@ -55,7 +55,7 @@ def _get_key_left_position(key):
|
||||||
return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x']
|
return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x']
|
||||||
|
|
||||||
|
|
||||||
def _additional_validation(keyboard, info_data):
|
def _additional_validation(keyboard, info_data): # noqa: C901
|
||||||
"""Non schema checks
|
"""Non schema checks
|
||||||
"""
|
"""
|
||||||
layouts = info_data.get('layouts', {})
|
layouts = info_data.get('layouts', {})
|
||||||
|
@ -105,6 +105,14 @@ def _additional_validation(keyboard, info_data):
|
||||||
if not decl.get("aliases", []):
|
if not decl.get("aliases", []):
|
||||||
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
|
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
|
||||||
|
|
||||||
|
# Ensure LED config is somewhat valid
|
||||||
|
for feature in ['rgb_matrix', 'led_matrix']:
|
||||||
|
if feature in info_data and all(key in info_data[feature] for key in ["layout", "led_count"]):
|
||||||
|
layout_count = len(info_data[feature]["layout"])
|
||||||
|
led_count = info_data[feature]["led_count"]
|
||||||
|
if led_count != layout_count:
|
||||||
|
_log_warning(info_data, '%s: mismatch between LED count (%d) and layout items (%d)' % (feature, led_count, layout_count))
|
||||||
|
|
||||||
|
|
||||||
def _validate(keyboard, info_data):
|
def _validate(keyboard, info_data):
|
||||||
"""Perform various validation on the provided info.json data
|
"""Perform various validation on the provided info.json data
|
||||||
|
|
Loading…
Reference in a new issue