- Only keep state for the scan code that are available for the layer
- Also properly implemented scan code range checking (was not done before, only worked because the KLL compiler was well behaved)
- Automatically downloads the kll compiler if not found
- Added capability files to each of the module that currently have them
- Split modules.cmake so kll.cmake could influence build targets (also needs info from modules.cmake)
- Updated .gitignore for kll compiler directory
- Added documentation on how to manipulate layouts using CMakeLists.txt
- Cleanup of old layout files
- Layers were not disabling because function was only called on press/hold
- Disabled layer shift function on key hold
- Fixed the press/hold/release states for other layer capabilities and USB code send
- Split layer capability into different parts
- Convenience Shift, Latch, Lock
- Keeping the original capability because it also allows specifically turning layers off and is useful for debugging
Tested
------
Single : Single
Single : Combo
Single : Sequence
Combo : Single
Combo : Combo
Combo : Sequence
Sequence : Single
Sequence : Combo
Sequence : Sequence
- Changed static variables to const that should have been const
- Updated CMake files to prepare for MCHCK custom bootloader
- Changed the USB ID numbers and ID number for bootloader
- Only generate DFU or Teensy binary image, not both
- Fixed RAM and FLASH calculator
- Added missing license in delay.c/h (much of it was taken from Teensy source though I've changed a bunch of it)
- Prepared mk20dx.c for upcoming bootloader addition
- mk20dx.h cleanup
- Reduced the MCHCK based flash size for the application image (bootloader changes requires more flash space)
- Fixed bugs in macro.c
- Added keyHold cli command
- Added show pending events debug message for PartialMap macro module
- Basic features only (there are still some extra options that can be added)
- Not tested
- ResultMacro processor is complete
- Layer enabling capability not yet complete
- USB Key output capability not yet complete
- Made changes to the capabities/macro data structure to specify the capability arg count in the capability list
- Remove the arg count from the result macro struct (as it is redundant)
- Changed macro/capabilities data structure to index capabilities rather than specify function pointers
- Used an 8 bit array, this reduced the max number of capabities to 255
* Shouldn't be an issue, but this can be addressed if the limit is hit...unlikely though
- Moderate changes to the trigger and result macro data structures
- The debug macro viewers are nearly equivalent to what the main macro processors will do
- Code should be working, but much is untested
- All of the old modules will need to update and use the new DefaultMap keymap
- There might still be some naming conflicts with some Scan Modules
- All modules have a default avr compatibilty right now (since that is what they were developed on)
- As modules get tested and added, arm support has to be turned on in the respective setup.cmake file
- Abstracted USB Module
- Abstracted compiler specific includes for Scan, Macro, Debug, and USB modules
- Updated CMake build files to support changes
- Added abstractions necessary to main.c as well as a compiler specific include file
- Required some small API changes, shouldn't affect any other Scan modules (addition of a parameter)
- Still have the latching annoyances for some of the modifiers
- Swapped Esc and Tilde for convenience
- Removed the old Esc key from the latch list (no one needs 13 latches anyways...)
- Added the control cluster mappings (Insert, Delete, Home, End, PgUp, PgDn)
- All other misc keys are currently un-assigned if a keycap legend doesn't map to anything known
(e.g. blank keys, 000 and 00 are mapped, but your OS probably doesn't know what they mean :P)
- Better macros are still needed for the clicker
- Current macros should be separated as a sub-module
- No LEDs implement yet
- Caps Lock LED seems to be burnt out...
- LEDs are working
- Reset command is working
- Basic typing is working (USB side drops some characters)
- Changing repeat rate is working
- Querying modifiers and LEDs is working
- Initial layouts are complete
- Modifiers are not fully working yet
- Full support (NKRO, provided the USB module can handle it)
- Full LED support (available to the macro modules per input signals)
- Reset/Hold line support
- Handles repeat rate issues (keyboard does not send key updates as most
keyboards do...)
- Includes new "table pinning" setup (much easier to understand)
- Matrix layouts will be split into their own dependent modules later
- Changed the HID Raw view id (too many teensy devices on this
computer...)
- Moved the macro processing outside of the usb timer signal
(this will be slower overall, but will result in more consistant
behaviour)
- Commenting cleaned up
- usb_keyboard_debug is not finished yet in terms of cleanup (needs DEBUB_PRINT #ifdef's)
- Added LoadFile script generation
- Formalized KeyIndex and USBKeys data containers
- Split parts of scan_loop into Macro, USB, and main.c
- Added interface to USB modules
- Added interface to Macro modules
- Added proper Debug module enable/disable