factor out common code and add back wrappers, so keyboard initializes to
default keyboard on power up, and afterwards, won't reinitialize the
keyboard unless the map changes.
- Added the apple 2 CAPS map
- auto-generate a function to check validity of a keymap index
- Added buffered message printing. This is different from keycode
buffering, since an extra delay is added for each message character to
allow polling hosts to keep up. Keycodes are generated at human speeds
and need no further slowdown.
- Added a message character delay to the arch-* modules
- enlarged the buffer pool, and created a buffer for messages
- bumped version number
Accessing library functions via function pointer seems to cause a reset.
Still investigating the cause.
- compile keymaps subdir as part of main src cmakefile, rather than as a
separate library.
- rather than setup table of function pointers and using an indirection
in the main code, set up a jump table (switch). This is cleaner.
- keymap files (c,h) are in src/Keymaps
- keymap files are added to the keymap library in src/Keymaps/CMakeLists.txt
- keymaps for the build are listed, along with positions, in /keymap_lists.cmake
- cmake generates a keymap jump table from the keymap lib and list
- tests mostly passing. Keymap structure for testing will be used as the model
for the app keymaps.
Clean compile of asdf_keymaps.c/h and tests
Clean up keymap pointer notation
Reduce number of keymaps to 16, matching number of DIP switches allocated for
keymap selection.
(WARNING: WIP) Gathered Work-in-progress on alternate keymap defs
Exploratory branch. Code is messy and untested.
Examining creating a module for each keymap rather than header file.
- Split asdf_virtual.c into asdf_physical.c and asdf_virtual.c, moving the
functions that handle the physical resources to asdf_physical.c
- cleaned up nomenclature to be more consistent and less confusing.
- fixed keymap files and tests to use asdf_physical.c/h and new nomenclature.
- added asdf_physical.c to Makefiles.
* Created test fixture for virtual outputs
* Added virtual output configuration to keymap definitions removed special
actions_send_reset() and actions_send_screenclear() functions, and replaced with
virtual output definitions.
* asdf_actions.c is removed from build.
* asdf_arch_atmega328p.c: added functions to set/clear each real output
* asdf_arch_atmega328p.c: added pulse_delay() function
* asdf_arch_test.c: added mock machinery to emulate outputs, test output
settings, and detect properly and improperly-formed pulses on the outputs.
* asdf_keymaps.c: allocate initialzer array. asdf_keymaps_select_keymap() calls
asdf_virtual_init() with initializer list for the keymap to set up the LEDS and
outputs every time a new keymap is selected.
- asdf_keymaps_select_keymap() function to select a keymap
- asdf_keymaps_select_n_{set|clear} functions to set a bit in keymap number,
to support dip switches.
- Added C preprocessor macros to determine largest key matrix, so enough space
may be allocated
- Cleaned up keymap definition macros for readability
- Created master keymap file to aggregate individual keymaps
- Modified make files to copy the specified master keymap
to asdf_keymap_defs.h during build.
- Added template keymap file.
- Separate the "asdf_keymaps.h" files into
-- "asdf_keymaps.h" which is not keymap dependent and contains keymap function
prototypes
-- "asdf_keymap_defs.h" which contains the keymap definitions
-- Move definitions of number of rows and columns from asdf.h to keymaps_defs.h.
-- keymap_defs.h is copied from the keymaps directory depending on which keymap
is specified in the Makefile.
-- Makefile fixes for the above changes
-- Fix includes in several files to reflect the above changes.