Was only testing for handle less than next_handle, but not checking for
negative handle values. Fixed to use buffer_handle_valid() to test for a
valid handle.
- added keymap_setup() function to keymap tests
- The test string was not long enough to overflow the larger buffer.
Switched to use pseudo-random sequence intstead of a fixe test string.
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.
- update ARCHITECTURE-keymaps.org file for new keymap definition method
- remove unused keymap table template files
- in keymap_setup.c template, set default to keymap 0.
- 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.
This appears to have been a cut-paste typo in the asdf_arch_out2_set() function
in asdf_arch_atmega328p.c. The port was set to OUT2, but the bit was OUT1.
C Flags set in src and test directories were not getting set because
they were assigned to C_FLAGS, which is ignored. Changed to CFLAGS,
which is used by cmake to set default c compilation options.
Apparently some file pollution resulted in a successful compile that couldn't be
reprodued from a fresh git clone. Fixed file copying and include paths so
compile works. All tests pass.
- 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.
Remove initialization from data structure.
Replace the previous virtual_init() with a virtual_init() that initializes the
data structures to a default state
Create virtual_sync() function to push the state of virtual devices to the
physical outputs. Moved from the previous virtual_init() function.
The virtual device table is now built by direct calls to virtual_add() from the
setup function.
Toward issue [#23]
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.