* sequencer: create togglable feature
* sequencer: add support for steps
* sequencer: add support for tempo and resolutions
* sequencer: schedule a message print at the right frequency
* sequencer: send a hardcoded note
* sequencer: add support for 8 tracks
* sequencer: play several notes simultaneously
* sequencer: only play the active tracks for a given step
* sequencer: change the default behavior of the track toggler
* sequencer: make number of tracks and track notes customizable
* sequencer: move the keycodes down
Not adding them at the end of the list apparently risks breaking
compatibility with VIA.
Source: https://github.com/qmk/qmk_firmware/pull/9703#discussion_r459202733
* sequencer: add unit tests
* sequencer: add unit test for matrix_scan_sequencer
* sequencer: expose internal state for better unit-testability
* sequencer: add unit tests for matrix_scan_sequencer
* Changed the processing of select_xxx()/unselect_xxx() in quantum/matrix.c to be atomic.
* Changed the processing of select_xxx()/unselect_xxx() in quantum/split_common/matrix.c to be atomic.
* update matrix.c
* add ATOMIC_BLOCK_FORCEON macro to quantum/quantum_atomic_extend.h
* quantum_atomic_extend.h's contents move into quantum.h
* update ATOMIC_BLOCK_xxx for unknown platform
* ATOMIC_BLOCK macro support PROTOCOL_ARM_ATSAM
* Add Atomic Operation section in docs/internals_gpio_control.md
* solenoid: remove two functions that do nothing.
These functions modify the argument, and so they do nothing.
Note: versions of these functions exist in mtdjr's user folder,
however to core solenoid support and mtdjr user-specific solenoid
support are exclusive (only one can be used at a time).
So removing these confusing functions does no harm.
* solenoid: bugfix: don't allow dwell time to go 1ms below minimum time.
The previous code allowed dwell time to go 1ms below the configured minimum.
This change corrects it.
* solenoid: bugfix: when incrementing above maximum dwell time, jump back to minimum, not to 1
The previous code used to jump back to 1, which might be way under the configured minimum setting.
* solenoid: bugfix: on startup actually use the eeprom-stored dwell-time
This is because the dwell time is stored in two variables.
* solenoid: bugfix: on haptic_reset, actually use the newly set default dwell time.
This is needed because dwell time is configured in two variables.
* solenoid: on HPT_RST set buzz to a default value
* solenoid: buzz: reworked to make more configurable. Previous behaviour maintained.
* solenoid: documentation: clarify meaning of dwell time
* solenoid: add feature SOLENOID_DWELL_STEP_SIZE
* solenoid: documentation: added note about the precision of the solenoid time settings
* haptic: Correctly call haptic_reset when eeprom is corrupt.
* haptic: improve what happens if haptic is enabled without erasing eeprom
* haptic: improve what happens if solenoid is enabled without erasing eeprom
* drivers/haptic: fix compilation issue, when haptic is enabled, but solenoid isn't
* Add Advanced RGB Matrix effects
Add a new option, so that we can better handle custom indicators
* Switch to led min/max instead of params
Because params has already been incremented and is wrong now
* Add indicator color function for use with advanced indicator functions
* Add docs and helper macros
* Add comment for explanations
* Fix macro variables
* Fix typo
* Run clang-format on rgb_matrix.h
* Branch point for 2020 November 28 Breaking Change
Update readme.md
* Share button state from mousekey to pointing_device
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
* Joystick 16-bit support
* Add variable joystick axes resolution
* Moved #define statements to .h files
* Moved definitions to quantum/joystick.h
Removed duplicate definitions from usb_descriptor.h and
process_joysick.h
Adjust process_joystick.c and usb_descriptor.c to use the pre-computed
"JOYSTICK_RESOLUTION" value which contains the logical maximum value
of a joystick axis
* Cleaning up unnecessary code
* Update docs/feature_joystick.md
Co-authored-by: Ryan <fauxpark@gmail.com>
* Workaround to joystick.h not being included to report.h
* Removed unnecessary newlines, updated report.h
Changed JOYSTICK_AXES_RESOLUTION conditional in report.h
Co-authored-by: Ryan <fauxpark@gmail.com>
This makes it overall easier to package for downstream distributions
instead of keeping tabs with inline documentation.
Signed-off-by: Morten Linderud <morten@linderud.pw>
* Basic keymap parsing finally works
* Add 'keymap.json' creation to the qmk.keymap module
* Add tests and fix formatting
* Fix/exclude flake8 errors
* Convert keymap.c to valid keymap.json
* Fix some errors
* Add tests
* Finalize keymap.json creation, add json template
* Add docs
* Move pygments to the standard requirements
* Add support for nameless layers, fix tests
* Fix things after rebase
* Add missing 'keymap' value.
* Fix missing layer numbers from advanced keycodes
Buckwich noticed that if the advanced keycode / layer toggling key
contains a number, it goes missing.
Now we properly handle them.
Thx for noticing!
* Apply suggestions from code review
* fixup tests
Co-authored-by: Zach White <skullydazed@drpepper.org>
Co-authored-by: skullY <skullydazed@gmail.com>
* Update reference_info_json.md
key_count is now an optional field because it is better to get the keycount by counting the elements in the layout array.
* Updated Japanese documentation as well
* Consolidate udev rules into a single file
* Update rules in doctor.py
* Simplify doctor rule checking
* Fix errors
* Add TMK "FEED" VID to list of deprecated udev rules
* A comma would be nice
* Split rules back up into bootloaders
* Link to docs page in "missing" case
* Add Pololu VID
* Be more specific about Caterina devices, and add LilyPad PID
* Wording & formatting changes in Tapping Force Hold
The Permissive Hold and the Ignore Mod Tap Interrupt sections were also modified to remove the quotes
around "tapping".
* Removed all trailing whitespaces from tap hold doc
* "it's simply really:" → "it's simple really:"
* "This allows to keep the ability" → "This allows keeping the ability"
Used the gerund form of "to keep" in the Tapping Force Hold section of the Tap Hold docs.
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
* add understanding_qmk.md translation
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* update based on comment
* Add information to docs
- If layer z is not a higher layer than both x and y, the layer change code
does not function correctly.
* Update docs/ref_functions.md
* Update docs/ref_functions.md
* Update docs/ref_functions.md