mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-17 13:12:08 +00:00
Merge d98978bc8d
into 507c948ed8
This commit is contained in:
commit
519e4467d0
@ -35,6 +35,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"dip_switches": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["on", "off"],
|
||||
"properties": {
|
||||
"on": {"type": "string"},
|
||||
"off": {"type": "string"}
|
||||
}
|
||||
}
|
||||
},
|
||||
"macros": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
|
@ -32,6 +32,7 @@ __INCLUDES__
|
||||
|
||||
__KEYMAP_GOES_HERE__
|
||||
__ENCODER_MAP_GOES_HERE__
|
||||
__DIP_SWITCH_MAP_GOES_HERE__
|
||||
__MACRO_OUTPUT_GOES_HERE__
|
||||
|
||||
#ifdef OTHER_KEYMAP_C
|
||||
@ -66,6 +67,19 @@ def _generate_encodermap_table(keymap_json):
|
||||
return lines
|
||||
|
||||
|
||||
def _generate_dipswitchmap_table(keymap_json):
|
||||
lines = [
|
||||
'#if defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)',
|
||||
'const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {',
|
||||
]
|
||||
for index, switch in enumerate(keymap_json['dip_switches']):
|
||||
if index != 0:
|
||||
lines[-1] = lines[-1] + ','
|
||||
lines.append(f' DIP_SWITCH_OFF_ON({_strip_any(switch["off"])}, {_strip_any(switch["on"])})')
|
||||
lines.extend(['};', '#endif // defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)'])
|
||||
return lines
|
||||
|
||||
|
||||
def _generate_macros_function(keymap_json):
|
||||
macro_txt = [
|
||||
'bool process_record_user(uint16_t keycode, keyrecord_t *record) {',
|
||||
@ -286,6 +300,12 @@ def generate_c(keymap_json):
|
||||
encodermap = '\n'.join(encoder_txt)
|
||||
new_keymap = new_keymap.replace('__ENCODER_MAP_GOES_HERE__', encodermap)
|
||||
|
||||
dipswitchmap = ''
|
||||
if 'dip_switches' in keymap_json and keymap_json['dip_switches'] is not None:
|
||||
dip_txt = _generate_dipswitchmap_table(keymap_json)
|
||||
dipswitchmap = '\n'.join(dip_txt)
|
||||
new_keymap = new_keymap.replace('__DIP_SWITCH_MAP_GOES_HERE__', dipswitchmap)
|
||||
|
||||
macros = ''
|
||||
if 'macros' in keymap_json and keymap_json['macros'] is not None:
|
||||
macro_txt = _generate_macros_function(keymap_json)
|
||||
|
@ -159,6 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef OTHER_KEYMAP_C
|
||||
# include OTHER_KEYMAP_C
|
||||
#endif // OTHER_KEYMAP_C
|
||||
@ -196,6 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef OTHER_KEYMAP_C
|
||||
# include OTHER_KEYMAP_C
|
||||
#endif // OTHER_KEYMAP_C
|
||||
|
@ -27,6 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef OTHER_KEYMAP_C
|
||||
# include OTHER_KEYMAP_C
|
||||
#endif // OTHER_KEYMAP_C
|
||||
|
Loading…
Reference in New Issue
Block a user