diff --git a/generate_layout.rb b/generate_layout.rb index 8181d1a..8729234 100755 --- a/generate_layout.rb +++ b/generate_layout.rb @@ -231,6 +231,7 @@ HEADER File.open(LayoutFile, "w+") do |f| f.puts header + f.puts "#define KB_LAYERS #{Key::Layers.size}" f.puts "static const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { #{keys} };" f.puts "static const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { #{downs} };" f.puts "static const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { #{ups} };" diff --git a/src/keyboard/keyboard.h b/src/keyboard/keyboard.h index 8bb9777..bff1e5e 100644 --- a/src/keyboard/keyboard.h +++ b/src/keyboard/keyboard.h @@ -25,7 +25,6 @@ #define KB_ROWS 6 // must match real life #define KB_COLUMNS 14 // must match real life -#define KB_LAYERS 10 // Name ID // PC Mac Unix Boot Keyboard Req. // --------------------------- ---- -- --- ---- --------------------- diff --git a/src/keyboard/layout.c b/src/keyboard/layout.c index 64ac634..c16c3e9 100644 --- a/src/keyboard/layout.c +++ b/src/keyboard/layout.c @@ -2,6 +2,7 @@ // ergoDOX layout : saneo (generated) // ---------------------------------------------------------------------------- +#define KB_LAYERS 4 static const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { KB_MATRIX_LAYER( (uint8_t) KEY_NULL, (uint8_t) KEY_0_RightParenthesis, diff --git a/src/main.c b/src/main.c index ec77286..5f396d7 100644 --- a/src/main.c +++ b/src/main.c @@ -21,16 +21,25 @@ typedef enum StickyState { StickyNone, StickyOnceDown, StickyOnceUp, - StickyLock + StickyLock, } StickyState; -// layer data #include "./main.h" +// ---------------------------------------------------------------------------- +// layout data +// ---------------------------------------------------------------------------- + +#include "./keyboard/layout.c" +// defines: +// #define KB_Layers #{Layers.size} +// static const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS]; +// static const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS]; +// static const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS]; + // ---------------------------------------------------------------------------- // globals // ---------------------------------------------------------------------------- - static bool _kb_is_pressed[KB_ROWS][KB_COLUMNS]; static bool (*kb_is_pressed)[KB_ROWS][KB_COLUMNS] = &_kb_is_pressed; @@ -40,10 +49,6 @@ static bool (*kb_was_pressed)[KB_ROWS][KB_COLUMNS] = &_kb_was_pressed; static bool kb_was_transparent[KB_ROWS][KB_COLUMNS]; static uint8_t layers_pressed[KB_ROWS][KB_COLUMNS]; -static const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS]; -static const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS]; -static const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS]; - static uint8_t current_layer; static uint8_t layer_offset; static uint8_t current_row; @@ -573,5 +578,3 @@ void main_key_loop() { // --------------------------------------------------------------------------------- // generated keyboard layout // --------------------------------------------------------------------------------- - -#include "./keyboard/layout.c"