From aa74bcf04f14d761d22dad881804d5a7210c20f7 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Sun, 19 Sep 2021 13:06:16 +0200 Subject: [PATCH] Add name to layout struct --- examples/us+de/sq2lv_layouts.c | 2 ++ examples/us+de/sq2lv_layouts.h | 2 ++ examples/us-terminal-with-scancodes/sq2lv_layouts.c | 1 + examples/us-terminal-with-scancodes/sq2lv_layouts.h | 2 ++ examples/us/sq2lv_layouts.c | 1 + examples/us/sq2lv_layouts.h | 2 ++ squeek2lvgl.py | 8 ++++++-- 7 files changed, 16 insertions(+), 2 deletions(-) diff --git a/examples/us+de/sq2lv_layouts.c b/examples/us+de/sq2lv_layouts.c index d0753df..4360a71 100644 --- a/examples/us+de/sq2lv_layouts.c +++ b/examples/us+de/sq2lv_layouts.c @@ -347,11 +347,13 @@ const int sq2lv_num_layouts = 2; const sq2lv_layout_t sq2lv_layouts[] = { /* US English */ { + .name = name_us, .num_layers = num_layers_us, .layers = layers_us }, /* German */ { + .name = name_de, .num_layers = num_layers_de, .layers = layers_de } diff --git a/examples/us+de/sq2lv_layouts.h b/examples/us+de/sq2lv_layouts.h index 918bc67..fcc1556 100644 --- a/examples/us+de/sq2lv_layouts.h +++ b/examples/us+de/sq2lv_layouts.h @@ -37,6 +37,8 @@ typedef struct { /* Layout type */ typedef struct { + /* Layout name */ + const char * const name; /* Total number of layers */ const int num_layers; /* Layers array */ diff --git a/examples/us-terminal-with-scancodes/sq2lv_layouts.c b/examples/us-terminal-with-scancodes/sq2lv_layouts.c index 73c8e42..144912d 100644 --- a/examples/us-terminal-with-scancodes/sq2lv_layouts.c +++ b/examples/us-terminal-with-scancodes/sq2lv_layouts.c @@ -255,6 +255,7 @@ const int sq2lv_num_layouts = 1; const sq2lv_layout_t sq2lv_layouts[] = { /* US English (Terminal) */ { + .name = name_terminal_us, .num_layers = num_layers_terminal_us, .layers = layers_terminal_us } diff --git a/examples/us-terminal-with-scancodes/sq2lv_layouts.h b/examples/us-terminal-with-scancodes/sq2lv_layouts.h index fc7697b..cc3afdb 100644 --- a/examples/us-terminal-with-scancodes/sq2lv_layouts.h +++ b/examples/us-terminal-with-scancodes/sq2lv_layouts.h @@ -44,6 +44,8 @@ typedef struct { /* Layout type */ typedef struct { + /* Layout name */ + const char * const name; /* Total number of layers */ const int num_layers; /* Layers array */ diff --git a/examples/us/sq2lv_layouts.c b/examples/us/sq2lv_layouts.c index 05ed3b8..6fc637d 100644 --- a/examples/us/sq2lv_layouts.c +++ b/examples/us/sq2lv_layouts.c @@ -158,6 +158,7 @@ const int sq2lv_num_layouts = 1; const sq2lv_layout_t sq2lv_layouts[] = { /* US English */ { + .name = name_us, .num_layers = num_layers_us, .layers = layers_us } diff --git a/examples/us/sq2lv_layouts.h b/examples/us/sq2lv_layouts.h index 40fae3a..d0111cb 100644 --- a/examples/us/sq2lv_layouts.h +++ b/examples/us/sq2lv_layouts.h @@ -36,6 +36,8 @@ typedef struct { /* Layout type */ typedef struct { + /* Layout name */ + const char * const name; /* Total number of layers */ const int num_layers; /* Layers array */ diff --git a/squeek2lvgl.py b/squeek2lvgl.py index 7266df0..b998692 100644 --- a/squeek2lvgl.py +++ b/squeek2lvgl.py @@ -766,6 +766,8 @@ if __name__ == '__main__': h_builder.add_line('/* Layout type */') h_builder.add_line('typedef struct {') + h_builder.add_line(' /* Layout name */') + h_builder.add_line(' const char * const name;') h_builder.add_line(' /* Total number of layers */') h_builder.add_line(' const int num_layers;') h_builder.add_line(' /* Layers array */') @@ -798,8 +800,10 @@ if __name__ == '__main__': for i, layout in enumerate(layouts): c_builder.add_line(' /* ' + layout['name'] + ' */') c_builder.add_line(' {') - c_builder.add_line(' .num_layers = num_layers_' + layout['identifier'] + ',') - c_builder.add_line(' .layers = layers_' + layout['identifier']) + fields = ['name', 'num_layers', 'layers'] + identifier = layout['identifier'] + for j, field in enumerate(fields): + c_builder.add_line(f' .{field} = {field}_{identifier}{comma_if_needed(fields, j)}') c_builder.add_line(' }' + comma_if_needed(layouts, i)) c_builder.add_line('};') c_builder.add_line()