diff --git a/firmware/asdf/src/ARCHITECTURE-keymaps.org b/firmware/asdf/src/ARCHITECTURE-keymaps.org index 485e59c..32b49a2 100644 --- a/firmware/asdf/src/ARCHITECTURE-keymaps.org +++ b/firmware/asdf/src/ARCHITECTURE-keymaps.org @@ -1,15 +1,14 @@ * Keymap architecture -** Keymap definition module - The keymap definition module defines: -*** The key mappings used by a keymap -*** The virtual devices required by the keymap - This includes definitions for LED's and I/O lines, including their initial - states, and default I/O operations such as toggle, pulse, etc. -*** Function hooks used by the keymap. - Specifies which functions are used for operations such as key scanning, I/O, - special keybindings, etc. - - Any special functions or logic required by the keymap are also defined and used in the module. +** Keymap definition modules are in src/Keymaps +** Each keymap has its own keymap setup routine +*** void setup_mapname_keymap(void) - keymap setup function +**** register a keycode map for each modifier combination +***** The keycode maps are in flash (ROM) +**** set up virtual devices for the keymap +***** virtual device to physical device mapping +***** associated virtual device function on activate/deactivate +***** initial state +**** set up function hooks used by keymap ** Keymap definition API *** mapping keys @@ -24,12 +23,6 @@ ***** Accept a virtual device code, a physical device code, a default function, and a default initial value, and create a new entry in the virtual device table. ***** increment the virtual device table pointer and set next (last) entry to NULL -* Eliminate keymaps table and instead have table of keymap init routines with MAX_KEYMAPS entries -* keymap setup routine adds maps for each modifier to the keymap, now only rxcxMODIFIERS instead of rxcxmodifiersxkeymaps -* remove the keymap index from the add_map() call. -* select_keymap() will call setup routine for the g -iven keymap. -* Each keymap sets its own num_rows and num_columns, per matrix for each modifier * DIP SWITCHES Note that the DIP switches are keys in the key matrix, which is initialized to diff --git a/firmware/asdf/src/asdf_keymap_setup.c.in b/firmware/asdf/src/asdf_keymap_setup.c.in index 74565e8..a0d0be5 100644 --- a/firmware/asdf/src/asdf_keymap_setup.c.in +++ b/firmware/asdf/src/asdf_keymap_setup.c.in @@ -51,9 +51,7 @@ // void asdf_keymap_setup(uint8_t index) { switch(index) { -@keymap_table@ - default: - break; + default: @keymap_table@ } } @@ -76,12 +74,12 @@ void asdf_keymap_setup(uint8_t index) { uint8_t asdf_keymap_valid(uint8_t index) { uint8_t valid = 0; - switch(index) { -@keymap_valid@ - valid= 1; + switch(index) { @keymap_valid@ + valid = 1; break; default: + valid = 0; break; } diff --git a/firmware/asdf/src/asdf_keymap_table.c.in b/firmware/asdf/src/asdf_keymap_table.c.in deleted file mode 100644 index a935157..0000000 --- a/firmware/asdf/src/asdf_keymap_table.c.in +++ /dev/null @@ -1,63 +0,0 @@ -// -*- mode: C; tab-width: 2 ; indent-tabs-mode: nil -*- -// -// Unified Keyboard Project -// ASDF keyboard firmware -// -// asdf_keymap_table.c -// -// initialize keymap setup function table -// -// *** AUTO-generated file. DO NOT EDIT. *** -// *** To modify template, edit $ROOT/src/Keymaps/asdf_keymap_table.c.in *** -// *** To modify keymap list, edit $ROOT/keymap_list.cmake -// -// Copyright 2019 David Fenyes -// -// This program is free software: you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free Software -// Foundation, either version 3 of the License, or (at your option) any later -// version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License along with -// this program. If not, see . -// - -#include - -@keymap_declarations@ - -// PROCEDURE: asdf_keymap_setup -// -// INPUTS: (uint8_t) index - index of the keymap setup function to call -// OUTPUTS: none -//// -// DESCRIPTION: This function calls the keymap setup function specified -// by the index. -// -// SIDE EFFECTS: See Description -// -// NOTES: This function is necessary because functions defined in external -// modules are not considered compile-time constants by the C99 standard, so the -// array cannot be initialized with a compile-time declaration. -// -// SCOPE: public -// -// COMPLEXITY: 1 -// - -void asdf_keymap_setup(uint8_t index) { - switch(index) { -@keymap_table@ - default: - break; - } -}; - -//-------|---------|---------+---------+---------+---------+---------+---------+ -// Above line is 80 columns, and should display completely in the editor. - diff --git a/firmware/asdf/src/asdf_keymap_table.h.in b/firmware/asdf/src/asdf_keymap_table.h.in deleted file mode 100644 index 3b14739..0000000 --- a/firmware/asdf/src/asdf_keymap_table.h.in +++ /dev/null @@ -1,42 +0,0 @@ -// -*- mode: C; tab-width: 2 ; indent-tabs-mode: nil -*- -// -// Unified Keyboard Project -// ASDF keyboard firmware -// -// asdf_keymap_table.c -// -// initialize keymap setup function table -// -// *** AUTO-generated file. DO NOT EDIT. *** -// *** To modify template, edit $ROOT/src/Keymaps/asdf_keymap_table.c.in *** -// *** To modify keymap list, edit $ROOT/keymap_list.cmake -// -// Copyright 2019 David Fenyes -// -// This program is free software: you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free Software -// Foundation, either version 3 of the License, or (at your option) any later -// version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License along with -// this program. If not, see . -// - -#define ASDF_NUM_KEYMAPS @num_keymaps@ - -// PROCEDURE: asdf_keymap_setup -// INPUTS: (uint8_t) index - index of the keymap setup function to call -// OUTPUTS: none -// DESCRIPTION: This function calls the keymap setup function specified -// by the index. -// SIDE EFFECTS: See Description -void asdf_keymap_setup(uint8_t index); - -//-------|---------|---------+---------+---------+---------+---------+---------+ -// Above line is 80 columns, and should display completely in the editor. -