The documentation for these APIs say that they write to the buffer
from the current current position, but they would always write
from the start of the buffer irrespective of the current cursor.
* add support for otg
* update endpoint numbering for stm32f4
* removed testing file
* add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824)
Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line.
eg.
```
make DEBUG_MATRIX_SCAN_RATE_ENABLE=yes KEYBOARD:KEYMAP
```
* [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549)
* Added `add_oneshot_mods` & `del_oneshot_mods`
Deleted undefined and unused prototypes:
- void oneshot_enable(void)
- void oneshot_disable(void)
- void oneshot_toggle(void)
Reordered the oneshot functions to follow the same order as other mod
functions, that is to say : get, add, del, set, clear
* Stricter conditions on add_oneshot_mods & del_oneshot_mods
Prevent extending the one shot timer if the called add_oneshot_mods or del_oneshot_mods do not change anything to the current one shot mod state.
Co-authored-by: David Kosorin <david@kosorin.net>
Co-authored-by: David Kosorin <david@kosorin.net>
* add support for otg
* update endpoint numbering for stm32f4
* removed testing file
* added missing #endif
Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: David Kosorin <david@kosorin.net>
* Added `add_oneshot_mods` & `del_oneshot_mods`
Deleted undefined and unused prototypes:
- void oneshot_enable(void)
- void oneshot_disable(void)
- void oneshot_toggle(void)
Reordered the oneshot functions to follow the same order as other mod
functions, that is to say : get, add, del, set, clear
* Stricter conditions on add_oneshot_mods & del_oneshot_mods
Prevent extending the one shot timer if the called add_oneshot_mods or del_oneshot_mods do not change anything to the current one shot mod state.
Co-authored-by: David Kosorin <david@kosorin.net>
Co-authored-by: David Kosorin <david@kosorin.net>
* 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
* Add definition based on currently-selected serial driver.
* Apply suggestions from code review
Suggestions from zvecr.
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Joel Challis <git@zvecr.com>
* 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
* Migrate at_at/660m to use new ChibiOS early initialisation code, use generic F072 board.
* Migrate cannonkeys/satisfaction75 to use new ChibiOS early initialisation code, use generic F072 board.
* Migrate nebula12 to use new ChibiOS early initialisation code, use generic F072 board.
* Defer GENERIC_STM32_F072XB board files to ChibiOS.
* Create generic mcuconf.h file for GENERIC_STM32_F072XB.
* Create generic mcuconf.h file for STM32_F103_STM32DUINO.
* Create generic mcuconf.h file for GENERIC_STM32_F042X6.
* Allow boards to override EARLY_INIT_PERFORM_BOOTLOADER_JUMP.
* Add GPIOF/GPIOH.
* Also add GPIOI,GPIOJ,GPIOK, to match ChibiOS 20.x.
* Make GPIOK opt-in, describe what a keyboard designer needs to do in order to gain access.
* 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>
* Initial changes to expose "real" MIDI velocity
* Change MI_VELU and MI_VELD to fit new logic
* Apply cleanups from fauxpark's review
my bad on the errant whitespace and else {} placements
* Slight changes to MI_VELD to match values when velocity is falling to when it is rising
* Add keycode MI_VEL_0
* Update compute_velocity() to handle MI_VEL_0
* Store velocity as 7 bits to hard cap value at 127
The matrix_col_t type was added in commit 0284431ad9 (part of #3449),
but then the code which used that type was removed in #6140, and no
other users were added since that time. The presence of that type,
however, limits MATRIX_ROWS to 32, which probably does not matter for a
real keyboard, but prevents doing things like making a firmware to test
all existing pins on a board like Teensy++ 2.0 (which has 46 GPIOs).
KiCad is a cross platform, free and open source electronics design
automation (EDA) suite. It was used to create ANAVI Macro Pad 8.
This keymap contains 2 layers for KiCad hotkeys and a 3rd layer
for controlling the backlighting and the underlighting.
- Layer for KiCad Schematic hotkeys:
m - to move selected component
r - to rotate selected component
w - to wire components
v - to edit component value
F1 - zoom in
F2 - zoom out
F4 - zoom center
- Layer for KiCad PCB layout hotkets:
m - to move selected component
r - to rotate selected component
x - to route a new track
v - to add a via
F1 - zoom in
F2 - zoom out
F4 - zoom center
Signed-off-by: Leon Anavi <leon@anavi.org>
OBS keymap for ANAVI Macro Pad 8 with the following shortcuts:
- Shortcuts useful for switching scenes on the 1st row:
Hold Left Control, Shift, Alt and GUI and press F9
Hold Left Control, Shift, Alt and GUI and press F10
Hold Left Control, Shift, Alt and GUI and press F11
Hold Left Control, Shift, Alt and GUI and press F12
- Center to screen: Ctrl+D
- Fit to screen: Ctrl+F
- Move source to top of sources list: Ctrl+Home
Signed-off-by: Leon Anavi <leon@anavi.org>