Store layers in separate array
This commit is contained in:
parent
fc54baa34e
commit
17e9b82604
5 changed files with 97 additions and 79 deletions
|
|
@ -173,6 +173,46 @@ static const int scancode_nums_numbers_terminal_us[] = { \
|
|||
0, 1, 1, 1 \
|
||||
};
|
||||
|
||||
/* Layer array */
|
||||
|
||||
static const int num_layers_terminal_us = 3;
|
||||
|
||||
static const sq2lv_layer_t layers_terminal_us[] = {
|
||||
{
|
||||
.keycaps = keycaps_lower_terminal_us,
|
||||
.attributes = attributes_lower_terminal_us,
|
||||
.num_switchers = num_switchers_lower_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_lower_terminal_us,
|
||||
.switcher_dests = switcher_dests_lower_terminal_us,
|
||||
.num_scancodes = num_scancodes_lower_terminal_us,
|
||||
.scancodes = scancodes_lower_terminal_us,
|
||||
.scancode_idxs = scancode_idxs_lower_terminal_us,
|
||||
.scancode_nums = scancode_nums_lower_terminal_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_upper_terminal_us,
|
||||
.attributes = attributes_upper_terminal_us,
|
||||
.num_switchers = num_switchers_upper_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_upper_terminal_us,
|
||||
.switcher_dests = switcher_dests_upper_terminal_us,
|
||||
.num_scancodes = num_scancodes_upper_terminal_us,
|
||||
.scancodes = scancodes_upper_terminal_us,
|
||||
.scancode_idxs = scancode_idxs_upper_terminal_us,
|
||||
.scancode_nums = scancode_nums_upper_terminal_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_numbers_terminal_us,
|
||||
.attributes = attributes_numbers_terminal_us,
|
||||
.num_switchers = num_switchers_numbers_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_numbers_terminal_us,
|
||||
.switcher_dests = switcher_dests_numbers_terminal_us,
|
||||
.num_scancodes = num_scancodes_numbers_terminal_us,
|
||||
.scancodes = scancodes_numbers_terminal_us,
|
||||
.scancode_idxs = scancode_idxs_numbers_terminal_us,
|
||||
.scancode_nums = scancode_nums_numbers_terminal_us
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Public interface
|
||||
**/
|
||||
|
|
@ -180,42 +220,8 @@ static const int scancode_nums_numbers_terminal_us[] = { \
|
|||
const sq2lv_layout_t sq2lv_layouts[] = {
|
||||
/* US English (Terminal) */
|
||||
{
|
||||
.layers = (sq2lv_layer_t[]){
|
||||
{
|
||||
.keycaps = keycaps_lower_terminal_us,
|
||||
.attributes = attributes_lower_terminal_us,
|
||||
.num_switchers = num_switchers_lower_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_lower_terminal_us,
|
||||
.switcher_dests = switcher_dests_lower_terminal_us,
|
||||
.num_scancodes = num_scancodes_lower_terminal_us,
|
||||
.scancodes = scancodes_lower_terminal_us,
|
||||
.scancode_idxs = scancode_idxs_lower_terminal_us,
|
||||
.scancode_nums = scancode_nums_lower_terminal_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_upper_terminal_us,
|
||||
.attributes = attributes_upper_terminal_us,
|
||||
.num_switchers = num_switchers_upper_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_upper_terminal_us,
|
||||
.switcher_dests = switcher_dests_upper_terminal_us,
|
||||
.num_scancodes = num_scancodes_upper_terminal_us,
|
||||
.scancodes = scancodes_upper_terminal_us,
|
||||
.scancode_idxs = scancode_idxs_upper_terminal_us,
|
||||
.scancode_nums = scancode_nums_upper_terminal_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_numbers_terminal_us,
|
||||
.attributes = attributes_numbers_terminal_us,
|
||||
.num_switchers = num_switchers_numbers_terminal_us,
|
||||
.switcher_idxs = switcher_idxs_numbers_terminal_us,
|
||||
.switcher_dests = switcher_dests_numbers_terminal_us,
|
||||
.num_scancodes = num_scancodes_numbers_terminal_us,
|
||||
.scancodes = scancodes_numbers_terminal_us,
|
||||
.scancode_idxs = scancode_idxs_numbers_terminal_us,
|
||||
.scancode_nums = scancode_nums_numbers_terminal_us
|
||||
}
|
||||
},
|
||||
.num_layers = 3
|
||||
.num_layers = num_layers_terminal_us,
|
||||
.layers = layers_terminal_us
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@ typedef struct {
|
|||
|
||||
/* Layout type */
|
||||
typedef struct {
|
||||
/* Layers array */
|
||||
const sq2lv_layer_t * const layers;
|
||||
/* Total number of layers */
|
||||
const int num_layers;
|
||||
/* Layers array */
|
||||
const sq2lv_layer_t * const layers;
|
||||
} sq2lv_layout_t;
|
||||
|
||||
/* Layouts */
|
||||
|
|
|
|||
|
|
@ -88,6 +88,34 @@ static const int switcher_dests_numbers_us[] = { \
|
|||
0 \
|
||||
};
|
||||
|
||||
/* Layer array */
|
||||
|
||||
static const int num_layers_us = 3;
|
||||
|
||||
static const sq2lv_layer_t layers_us[] = {
|
||||
{
|
||||
.keycaps = keycaps_lower_us,
|
||||
.attributes = attributes_lower_us,
|
||||
.num_switchers = num_switchers_lower_us,
|
||||
.switcher_idxs = switcher_idxs_lower_us,
|
||||
.switcher_dests = switcher_dests_lower_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_upper_us,
|
||||
.attributes = attributes_upper_us,
|
||||
.num_switchers = num_switchers_upper_us,
|
||||
.switcher_idxs = switcher_idxs_upper_us,
|
||||
.switcher_dests = switcher_dests_upper_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_numbers_us,
|
||||
.attributes = attributes_numbers_us,
|
||||
.num_switchers = num_switchers_numbers_us,
|
||||
.switcher_idxs = switcher_idxs_numbers_us,
|
||||
.switcher_dests = switcher_dests_numbers_us
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Public interface
|
||||
**/
|
||||
|
|
@ -95,30 +123,8 @@ static const int switcher_dests_numbers_us[] = { \
|
|||
const sq2lv_layout_t sq2lv_layouts[] = {
|
||||
/* US English */
|
||||
{
|
||||
.layers = (sq2lv_layer_t[]){
|
||||
{
|
||||
.keycaps = keycaps_lower_us,
|
||||
.attributes = attributes_lower_us,
|
||||
.num_switchers = num_switchers_lower_us,
|
||||
.switcher_idxs = switcher_idxs_lower_us,
|
||||
.switcher_dests = switcher_dests_lower_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_upper_us,
|
||||
.attributes = attributes_upper_us,
|
||||
.num_switchers = num_switchers_upper_us,
|
||||
.switcher_idxs = switcher_idxs_upper_us,
|
||||
.switcher_dests = switcher_dests_upper_us
|
||||
},
|
||||
{
|
||||
.keycaps = keycaps_numbers_us,
|
||||
.attributes = attributes_numbers_us,
|
||||
.num_switchers = num_switchers_numbers_us,
|
||||
.switcher_idxs = switcher_idxs_numbers_us,
|
||||
.switcher_dests = switcher_dests_numbers_us
|
||||
}
|
||||
},
|
||||
.num_layers = 3
|
||||
.num_layers = num_layers_us,
|
||||
.layers = layers_us
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ typedef struct {
|
|||
|
||||
/* Layout type */
|
||||
typedef struct {
|
||||
/* Layers array */
|
||||
const sq2lv_layer_t * const layers;
|
||||
/* Total number of layers */
|
||||
const int num_layers;
|
||||
/* Layers array */
|
||||
const sq2lv_layer_t * const layers;
|
||||
} sq2lv_layout_t;
|
||||
|
||||
/* Layouts */
|
||||
|
|
|
|||
|
|
@ -665,10 +665,25 @@ if __name__ == '__main__':
|
|||
c_builder.add_array(True, 'const int', f'scancode_nums_{layer_identifier}', scancode_nums, '', '')
|
||||
c_builder.add_line()
|
||||
|
||||
c_builder.add_subsection_comment(f'Layer array')
|
||||
c_builder.add_line()
|
||||
c_builder.add_line(f'static const int num_layers_{layout_identifier} = {len(layer_identifiers)};')
|
||||
c_builder.add_line()
|
||||
c_builder.add_line(f'static const sq2lv_layer_t layers_{layout_identifier}[] = ' + '{')
|
||||
for i, identifier in enumerate(layer_identifiers):
|
||||
c_builder.add_line(' {')
|
||||
fields = ['keycaps', 'attributes', 'num_switchers', 'switcher_idxs', 'switcher_dests']
|
||||
if args.generate_scancodes:
|
||||
fields += ['num_scancodes', 'scancodes', 'scancode_idxs', 'scancode_nums']
|
||||
for k, field in enumerate(fields):
|
||||
c_builder.add_line(f' .{field} = {field}_{identifier}{comma_if_needed(fields, k)}')
|
||||
c_builder.add_line(' }' + comma_if_needed(layer_identifiers, i))
|
||||
c_builder.add_line('};')
|
||||
c_builder.add_line()
|
||||
|
||||
layouts.append({
|
||||
'name': layout_id_to_layout_name(layout_id),
|
||||
'identifier': layout_identifier,
|
||||
'layer_identifiers': layer_identifiers
|
||||
'identifier': layout_identifier
|
||||
})
|
||||
|
||||
h_builder.add_line('/* Layout IDs, values can be used as indexes into the sq2lv_layouts array */')
|
||||
|
|
@ -705,10 +720,10 @@ if __name__ == '__main__':
|
|||
|
||||
h_builder.add_line('/* Layout type */')
|
||||
h_builder.add_line('typedef struct {')
|
||||
h_builder.add_line(' /* Layers array */')
|
||||
h_builder.add_line(' const sq2lv_layer_t * const layers;')
|
||||
h_builder.add_line(' /* Total number of layers */')
|
||||
h_builder.add_line(' const int num_layers;')
|
||||
h_builder.add_line(' /* Layers array */')
|
||||
h_builder.add_line(' const sq2lv_layer_t * const layers;')
|
||||
h_builder.add_line('} sq2lv_layout_t;')
|
||||
h_builder.add_line()
|
||||
|
||||
|
|
@ -727,17 +742,8 @@ if __name__ == '__main__':
|
|||
for i, layout in enumerate(layouts):
|
||||
c_builder.add_line(' /* ' + layout['name'] + ' */')
|
||||
c_builder.add_line(' {')
|
||||
c_builder.add_line(' .layers = (sq2lv_layer_t[]){')
|
||||
for j, identifier in enumerate(layout['layer_identifiers']):
|
||||
c_builder.add_line(' {')
|
||||
fields = ['keycaps', 'attributes', 'num_switchers', 'switcher_idxs', 'switcher_dests']
|
||||
if args.generate_scancodes:
|
||||
fields += ['num_scancodes', 'scancodes', 'scancode_idxs', 'scancode_nums']
|
||||
for k, field in enumerate(fields):
|
||||
c_builder.add_line(f' .{field} = {field}_{identifier}{comma_if_needed(fields, k)}')
|
||||
c_builder.add_line(' }' + comma_if_needed(layout['layer_identifiers'], j))
|
||||
c_builder.add_line(' },')
|
||||
c_builder.add_line(' .num_layers = ' + str(len(layout['layer_identifiers'])))
|
||||
c_builder.add_line(' .num_layers = num_layers_' + layout['identifier'] + ',')
|
||||
c_builder.add_line(' .layers = layers_' + layout['identifier'])
|
||||
c_builder.add_line(' }' + comma_if_needed(layouts, i))
|
||||
c_builder.add_line('};')
|
||||
c_builder.add_line()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue