Gergely Nagy
3dc51b233a
Cache the keymap when changing layers
...
Instead of going through all the active layers each time we are looking for a
key, whenever we switch layers, compute the effective keymap, and store the
indexes. This makes the lookup a considerably faster operation, and lookups
happen far more often than layer switching.
This comes at a cost of ROWS*COLS amount of memory, and a bit of code, but on
the flip side, the lookup operation is now O(1), which is a very nice property
to have, if you want responsiveness. Changing layers is marginally slower,
however, but even with 32 active layers, doing the computation once, instead of
potentially many dozens of time, is still worth it.
We could further reduce the memory requirements if we stored more columns per
byte, but that's for a future optimization.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Jesse Vincent
2eb638db8b
Remove the hook for the now-removed layout transformation script
8 years ago
Jesse Vincent
c0d66cee1a
Move the sample layouts into the firmware sketch
8 years ago
Jesse Vincent
c1d25174bc
Add a missing paren.
...
Unsure how this ever compiled.
8 years ago
Jesse Vincent
23aba78402
Add some missing prototypes to the class definition
8 years ago
Jesse Vincent
6b0623d3f2
Step two of the rename
8 years ago
Jesse Vincent
d31530d579
start to refactor the code to be a Kaleidoscope plugin
8 years ago
Jesse Vincent
830ab623e3
Merge pull request #105 from algernon/f/rename
...
The Big Rename
8 years ago
Gergely Nagy
e305e51455
The Big Rename
...
Rename the firmware from KeyboardioFirmware to Kaleidoscope.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
d5d3b46e31
The Big Rename
...
Renamed the library to Kaleidoscope-LED-ActiveModColor, and followed up with
other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
fec26a9413
The Big Rename
...
Rename the library to Kaleidoscope-SpaceCadet, and follow up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
fc026f59af
The Big Rename
...
Rename the library to Kaleidoscope-Unicode, and follow up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
204d450239
The Big Rename
...
Rename the library to Kaleidoscope-TopsyTurvy, and follow up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
b867f80ca2
The Big Rename
...
Rename the library to Kaleidoscope-TapDance, and follow up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
29d45e8850
The Big Rename
...
Renamed the plugin to Kaleidoscope-Syster, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
eabc4a9872
The Big Rename
...
Rename the library to Kaleidoscope-ShapeShifter, and follow up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
856968815a
The Big Rename
...
Renamed the library to Kaleidoscope-Ranges, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
28228d07c7
The Big Rename
...
Renamed the library to Kaleidoscope-OneShot, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
5fe8ff28cb
The Big Rename
...
Renamed the library to Kaleidoscope-Numlock, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
4ec2c5888a
The Big Rename
...
Renamed the library to Kaleidoscope-MouseKeys, and followed up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
92205513de
The Big Rename
...
Renamed the library to Kaleidoscope-MagicCombos, and followed up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
e38836a7bb
The Big Rename
...
Renamed the library to Kaleidoscope-Macros, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
68b3e2c5f2
The Big Rename
...
Renamed the library to Kaleidoscope-LED-Stalker, and followed up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
02cb499154
The Big Rename
...
Renamed the library to Kaleidoscope-LEDEffects, and followed up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
c53b67fbea
The Big Rename
...
Renamed the library to Kaleidoscope-LEDEffect-SolidColor, and followed up with
other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
dd734adb1c
The Big Rename
...
Renamed the library to Kaleidoscope-LEDEffect-Rainbow, and followed up with
other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
4611026d35
The Big Rename
...
Renamed the library to Kaleidoscope-LEDEffect-Chase, and followed up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
805327533a
The Big Rename
...
Renamed the library to Kaleidoscope-LEDEffect-Breathe, and followed up with
other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
1a8ce8cab1
The Big Rename
...
Renamed the library to Kaleidoscope-LEDControl, and followed up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
b737fe947e
The Big Rename
...
Renamed the library to Kaleidoscope-Leader, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
d2d0193129
The Big Rename
...
Renamed the library to Kaleidoscope-HostOS, and followed up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
ce45b212d7
The Big Rename
...
Rename the library to Kaleidoscope-Heatmap, and follow up with other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
5bdd12e533
The Big Rename
...
Rename the library to Kaleidoscope-Hardware-Model01, and follow up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
1696b4eeb6
The Big Rename
...
Renamed the library to Kaleidoscope-GhostInTheFirmware, and followed up with
other renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
916f69889e
The Big Rename
...
Rename the library to Kaleidoscope-Escape-OneShot, and follow up with other
renames.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
c03725e736
The Big Rename
...
Rename the library to Kaleidoscope-Cycle, and follow up with other renames, too.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Jesse Vincent
eaeae8157b
Merge pull request #98 from algernon/h/tools/keyboardio-builder/purge-unused
...
keyboardio-builder: Drop submodule_update
8 years ago
Jesse Vincent
bf016d2227
Merge pull request #104 from algernon/h/tools/build-all-fix
...
tools/keyboardio-builder: Fix the build-all command
8 years ago
Gergely Nagy
dddc014619
BootAnimation: Make this part Model01-specific
...
Not all keyboard hardware has per-key LEDs, and not all of them define the LED_*
helpers. To make the LEDControl at least compile for these, guard the
BootAnimation with a Model01-specific ifdef.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
56652c6d84
tools/keyboardio-builder: Fix the build-all command
...
The build-all command needs a clean(-ish) slate, and must re-set the build-dir,
otherwise a successful build of a previous plugin will remove it. As a
workaround, re-launch the builder in this case.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
7a2804250c
Add support for the Shortcut, too
...
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
a33621e867
Introducing the tuning knobs
...
Instead of counting loops for the purpose of calculating acceleration, use
timers and steps instead. This means that we can now tune how often the mouse
moves (`speedDelay`), how much it moves when it does (`speed`), how fast
acceleration is (`accelSpeed`), and how often we accelerate (`accelDelay`).
By default, the movement speed is one, and there is no delay, while acceleration
has an 50ms delay, and a speed of one.
But all of these can be tuned at run-time: we can turn off acceleration
completely, or slow down the mouse considerably - the possibilities are almost
endless!
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
74070edcf1
Use timers instead of loop counters
...
Loop counters are not reliable timer substitutes, use proper timers instead.
Fixes #5 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
bae049583d
Correct the tapDanceAction prototype in the example
...
With the wrong prototype, we do not override the default, and the callback never
triggers.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
128d0f4bda
Fix up to work better with timers
...
Also introduces an explicit `pressTime` and `delay`.
Fixes #1 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
f2787a5692
Use a timer instead of a loop counter
...
Loop counters are an unreliable way to track time, use a timer instead.
Fixes #2 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
e7e4ba0690
Move the static globals into the Heatmap object
...
Fixes #3 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
35918a91a0
Use a timer instead of a loop counter
...
Loop counters are unreliable, use proper timers instead.
Fixes #2 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
db87474e16
Use a timer instead of a loop counter
...
As loop counters are not a reliable substitute for timers, because they are
unreliable, use proper timers instead.
Fixes #3 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago
Gergely Nagy
8a4a4e79c5
Use a timer instead of a loop counter
...
Loop counters are not a reliable way to track time, use a proper timer instead.
Fixes #2 .
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
8 years ago