General Status Update...- EEPROM handling in Converter - done.
- Utilities to read/write EEPROM - done (for Windows).
- Settings binary format - done.
- Settings handling in Converter - done (but not fully tested).
- Simple compiler to turn Settings text file into Settings binary file - todo.
What are the Settings then?!- Remaps
- Macros
- Layers
- Selects
RemapsAre not whole translation tables! As a silly example, if you wanted to swap the '1' key with the '2' key, you might write:
1=2
2=1
(with some additional bumph around that to define a block).
MacrosCan trigger for any single key with any of the standard modifiers.
Separate macros can be defined on make and break (although, on make only is the most useful and reliable).
Macros are sequences of comands which can currently be: key events, modifier manipulation, and delays.
LayersUp to 8 keys can be defined to act as a 'Fn' key to access further layers.
Any key can be used in this way - the keys are defined using the remap mechanism, so remapping a key to, say, 'FN1' defines it.
A layer is defined as any combination of those keys - so theoretically up to 256 layers! However, since each layer takes up a fair bit of memory, roughly 3 is the max on a Teensy 2.0, and maybe 25 on a Teensy++.
Each remap block is tagged with the layer it applies to (if not the base layer).
SelectsUp to 7 keys can be defined to toggle configurations of settings.
As with layers, these can be defined as remaps (to SELECT1 etc). But they can also be put in a macro, so that you can define a combination of keys to select a configuration.
All of the blocks for remaps, macros and layers
can be tagged with a Select ID (1 to 7). But it is not required. In fact, base settings would usually
not be marked as a Select.
Triggering a Select toggles that group of settings, but leaves the others alone.
So, basically... enough Settings to shoot yourselves in the foot with! :-)
Back to the todo - does anyone have experience with Boost::Spirit?
It looks interesting for the compiler part...