- asdf_modifiers.[ch]: Replace asdf_modifier_shiftlock_activate() with
asdf_modifier_shiftlock_on_activate() and
asdf_modifier_shiftlock_toggle_activate(). Instead of a configurateion
setting for shiftlock state to switch between SHIFTLOCK locks on, SHIFT turns
off, vs SHIFTLOCK toggles, and SHIFT turns off, create two different
SHIFTLOCK functions, one for each behavior, and allow the keymap to bind the
desired function.
- asdf.h: replace ACTION_SHIFTLOCK with ACTION_SHIFTLOCK_ON and
ACTION_SHIFTLOCK_TOGGLE.
- asdf.h: move start of ACTION codes from 0x80 to 0x90, since SOL-20 uses codes
from 0x80-0x8f.
- asdf.c: test for ACTION code using (code > ASDF_ACTION) instead of (code &
ASDF_ACTION), since ASDF_ACTION need not be a power of 2.
- asdf_modifiers.[ch] and other files: remove
asdf_modifiers_shiftlock_deactivate() and
asdf_modifiers_capslock_deactivate(), and any references to these functions
since they are null functions anyway.
- 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.
Disallow assignment of invalid virtual or real devices
Disallow assignment of a real devices that have already been assigned.
add unit test cases for virtual devices
* 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.
This allows the keymap to determine which LED is used, rather than requiring the
decision to be hardwired in at the time of assembly. For the OSI keyboard, the
LED could be placed on the SHIFTLOCK key, at the far right LED, or in the
CAPSLOCK position, which is just to the left of the RETURN and not otherwise
populated in the OSI layout.
- swap numbering of row select protection diodes for cleaner PCB labeling
- clarify labeling on GPIO pins on the MCU
- bump rev to 2.4 to indicate work in progress. Release will be 2.5.
- asdf_modifier.c: refactor CAPS LOCK setting and add LED setting
- asdf_arch_atmega328p.[ch]: add in LED definitions and functions
- add dummy asdf_arch_caps_led() function to arch files so test can compile.
- 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.