default_keyboard.h generation tweaks (#24715)

This commit is contained in:
Ryan 2024-12-16 06:06:05 +11:00 committed by GitHub
parent 8e6bfbfdc2
commit 0f3993b9a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,6 +22,11 @@ def _generate_layouts(keyboard, kb_info_json):
row_num = kb_info_json['matrix_size']['rows'] row_num = kb_info_json['matrix_size']['rows']
lines = [] lines = []
lines.append('')
lines.append('// Layout content')
lines.append('')
lines.append('#define XXX KC_NO')
for layout_name, layout_data in kb_info_json['layouts'].items(): for layout_name, layout_data in kb_info_json['layouts'].items():
if layout_data['c_macro']: if layout_data['c_macro']:
continue continue
@ -31,7 +36,7 @@ def _generate_layouts(keyboard, kb_info_json):
continue continue
layout_keys = [] layout_keys = []
layout_matrix = [['KC_NO'] * col_num for _ in range(row_num)] layout_matrix = [['XXX'] * col_num for _ in range(row_num)]
for key_data in layout_data['layout']: for key_data in layout_data['layout']:
row, col = key_data['matrix'] row, col = key_data['matrix']
@ -46,7 +51,7 @@ def _generate_layouts(keyboard, kb_info_json):
lines.append('') lines.append('')
lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\') lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\')
rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) rows = ', \\\n'.join([' { ' + ', '.join(row) + ' }' for row in layout_matrix])
rows += ' \\' rows += ' \\'
lines.append(rows) lines.append(rows)
lines.append('}') lines.append('}')
@ -67,6 +72,9 @@ def _generate_keycodes(kb_info_json):
return [] return []
lines = [] lines = []
lines.append('')
lines.append('// Keycode content')
lines.append('')
lines.append('enum keyboard_keycodes {') lines.append('enum keyboard_keycodes {')
for index, item in enumerate(kb_info_json.get('keycodes')): for index, item in enumerate(kb_info_json.get('keycodes')):
@ -103,17 +111,14 @@ def generate_keyboard_h(cli):
valid_config = dd_layouts or keyboard_h valid_config = dd_layouts or keyboard_h
# Build the layouts.h file. # Build the layouts.h file.
keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "quantum.h"'] keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '', '#include "quantum.h"']
keyboard_h_lines.append('')
keyboard_h_lines.append('// Layout content')
if dd_layouts: if dd_layouts:
keyboard_h_lines.extend(dd_layouts) keyboard_h_lines.extend(dd_layouts)
if keyboard_h: if keyboard_h:
keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"') keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"')
keyboard_h_lines.append('')
keyboard_h_lines.append('// Keycode content')
if dd_keycodes: if dd_keycodes:
keyboard_h_lines.extend(dd_keycodes) keyboard_h_lines.extend(dd_keycodes)