diff options
author | vectorstorm <github@gridbug.org> | 2021-11-16 05:40:52 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 05:40:52 +1100 |
commit | c9fd69871165eb889be5421df518d8e35b2be027 (patch) | |
tree | dffb4a815809e9860a1111304c9ab6872551df58 /keyboards/eggman/eggman.h | |
parent | 36d123e9c5a9ce0e29b9bc22ef87661bf479e299 (diff) |
Reimplements WPM feature to be smaller & precise (#13902)
* Reimplements WPM feature.
- Now calculates exact WPM over the last up to three seconds of typing.
- WPM_SMOOTHING removed, as it's no longer needed.
- WPM_SAMPLE_SECONDS added, to specify how long a period to average WPM
over, set to 5 seconds by default.
- WPM_SAMPLE_PERIODS added, to specify how many sampling buffers we'll
use. Each one uses one extra byte of space. Having more will lead
to smoother decay of WPM values. Defaults to 50 (we're saving so
many bytes of firmware space I felt like being extravagent, and this
change is still a big size saving overall)
- WPM_UNFILTERED option added (defaults to unset), which disables all
filtering within the WPM feature. This saves some space in the
firmware and also reduces latency between typing and the WPM
calculation measuring it. (saves 70 bytes in my tests)
- WPM_LAUNCH_CONTROL added (defaults to unset). When typing begins
while the current displayed WPM value is zero, the WPM calculation
only considers the time elapsed since typing began, not the whole
WPM_SAMPLE_SECONDS buffer. The result of this is that the displayed
WPM value much more rapidly reaches an accurate WPM value, even when
results are being filtered. (costs 22 bytes in my tests)
- Updates documentation to reflect changed options.
Saves about 900 bytes, in my tests, compared against the previous implementation,
with default settings.
* Apply suggestions from code review
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Trevor Powell <trevor@vectorstorm.org>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Diffstat (limited to 'keyboards/eggman/eggman.h')
0 files changed, 0 insertions, 0 deletions