summaryrefslogtreecommitdiffstats
path: root/quantum/quantum.c
Commit message (Collapse)AuthorAgeFilesLines
* Move feature suspend logic out of platform specific code (#14210)Drashna Jaelre2021-08-301-0/+96
|
* Revert 14083 && 14144 (#14150)Joel Challis2021-08-251-0/+90
| | | | | | | | | * Revert "Short term bodge for firmware size bloat (#14144)" This reverts commit a8d65473461c337fb1e168d907bfb8c3ac8fdbd0. * Revert "Tidy up quantum.c now some of tmk_core has been merged (#14083)" This reverts commit c4dbf4bf0118dd785802861beb247433b5b7411d.
* Tidy up quantum.c now some of tmk_core has been merged (#14083)Joel Challis2021-08-241-90/+0
|
* Fixup Audio startup and add to documents (#13606)Drashna Jaelre2021-08-151-1/+1
| | | | | * Fixup Audio startup and add to documents * fix doc descriptions
* Process combos earlier & overlapping combos (#8591)Pete Sevander2021-08-061-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Combo processing improvements. Now it is possible to use ModTap and LayerTap keys as part of combos. Overlapping combos also don't trigger all the combos, just exactly the one that you press. New settings: - COMBO_MUST_HOLD_MODS - COMBO_MOD_TERM - COMBO_TERM_PER_COMBO - COMBO_MUST_HOLD_PER_COMBO - COMBO_STRICT_TIMER - COMBO_NO_TIMER * Remove the size flags from combo_t struct boolean members. This in the end actually saves space as the members are accessed so many times. The amount of operations needed to access the bits uses more memory than setting the size saves. * Fix `process_combo_key_release` not called correctly with tap-only combos * Fix not passing a pointer when NO_ACTION_TAPPING is defined. * Docs for `COMBO_ONLY_FROM_LAYER` * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update quantum/process_keycode/process_combo.c Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Add `EXTRA_SHORT_COMBOS` option. Stuff combo's `disabled` and `active` flags into `state`. Possibly can save some space. * Add more examples and clarify things with dict management system. - Simple examples now has a combo that has modifiers included. - The slightly more advanced examples now are actually more advanced instead of just `tap_code16(<modded-keycode>)`. - Added a note that `COMBO_ACTION`s are not needed anymore as you can just use custom keycodes. - Added a note that the `g/keymap_combo.h` macros use the `process_combo_event` function and that it is not usable in one's keymap afterwards. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Change "the" combo action example to "email" example. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Fix sneaky infinite loop with `combo_disable()` No need to call `dump_key_buffer` when disabling combos because the buffer is either being dumped if a combo-key was pressed, or the buffer is empty if a non-combo-key is pressed. * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> * Update docs/feature_combo.md Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: precondition <57645186+precondition@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
* Unconditionally call led_init_ports (#12116)Joel Challis2021-08-031-3/+0
| | | | | * Unconditionally call led_init_ports * Another call to led_init_ports
* Minor tidy up of key overrides (#13747)Joel Challis2021-07-281-5/+1
| | | | | | | * Minor tidy up of key overrides * Update quantum/quantum.c * Update quantum/quantum.c
* matrix_scan_x -> x_task (#13748)Joel Challis2021-07-281-4/+4
|
* Haptic: driver-> feature (#13713)Joel Challis2021-07-251-2/+2
|
* Move `SENDSTRING_BELL` code to `send_string.h` (#13566)Ryan2021-07-161-3/+0
|
* [Feature] Key Overrides (#11422)Jonas Gessner2021-07-131-3/+16
|
* Improve layer mask handling (#13065)Drashna Jaelre2021-07-031-4/+4
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-03-121-62/+0
|\
| * Remove hex_to_keycode and move tap_random_base64 to send_string.c (#12079)Ryan2021-03-121-62/+0
| |
* | LED Matrix: decouple from Backlight (#12054)Ryan2021-03-081-5/+4
| |
* | Add ability to toggle One Shot functionality (#4198)Drashna Jaelre2021-03-011-0/+11
| | | | | | | | Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Ryan <fauxpark@gmail.com>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-02-281-232/+0
|\|
| * Extract sendstring into its own compilation unit (#12060)Ryan2021-03-011-232/+0
| | | | | | | | | | | | | | * Extract sendstring into its own compilation unit * License headers? * Put this include in the header
* | Overhaul bootmagic logic to have single entrypoint (#8532)Joel Challis2021-02-281-6/+2
|/ | | | | * Relocate bootmagic logic to have single entrypoint * Align init of layer state
* [BUG] Massdrop develop rgb fix (#12022)Nick Brassel2021-02-261-0/+3
| | | | | | | * Allow for disabling RGB_MATRIX on Massdrop boards. * Fixup init sequence. * Make some functions static as they've got very generic names.
* Split transport mirror (#11046)XScorpion22021-02-161-10/+0
| | | | | | | * Split transport mirror support * Updated RGB Matrix to respond to electrical events instead of key events * split matrix slave fix
* Remove FAUXCLICKY feature (deprecated) (#11829)Drashna Jaelre2021-02-091-15/+0
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-02-051-3/+1
|\
| * Manually run formatting job (#11797)Joel Challis2021-02-051-3/+1
| |
* | Stop sounds when suspended (#11553)Joshua Diamond2021-02-011-0/+20
| | | | | | | | | | | | | | * fix stopping audio on suspend vs. startup sound * trim firmware size * fix stuck audio on startup (ARM)
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-01-311-30/+7
|\|
| * quantum.c send char cleanups (#11743)Ryan2021-02-011-30/+7
| |
* | `qmk cformat`Nick Brassel2021-01-171-4/+4
| |
* | Improved Language Specific Keycodes for US International and Extended ↵Joshua Diamond2021-01-021-3/+30
|/ | | | | Layouts (#11307) Co-authored-by: Ryan <fauxpark@gmail.com>
* 2020 November 28 Breaking Changes Update (#11053)James Young2020-11-281-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
* Indicator LEDs as config (#10816)Joel Challis2020-11-081-52/+4
| | | | | | | | | | | | | | | * First pass * Add config options to docs * Update some wording * Slight tidy up of backlight caps logic * Init pin to correct state * Move init location * Reverse default state
* Hid joystick interface (#4226)a-chol2020-08-291-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add support for hid gamepad interface add documentation for HID joystick Add joystick_task to read analog axes values even when no key is pressed or release. update doc Update docs/feature_joystick.md Manage pin setup and read to maintain matrix scan after analog read * Incorporates patches and changes to HID reporting There are some patches provided by @a-chol incorporated on this commit, and also some changes I made to the HID Report structure. The most interesting is the one dealing with number of buttons: Linux doesn't seem to care, but Windows requires the HID structure to be byte aligned (that's in the spec). So if one declares 8/16/32... buttons they should not have any issues, but this is what happens when you have 9 buttons: ``` bits |0|1|2|3|4|5|6|7| |*|*|*|*|*|*|*|*| axis 0 (report size 8) |*|*|*|*|*|*|*|*| ... |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| |*|*|*|*|*|*|*|*| axis 6 |*|*|*|*|*|*|*|*| first 8 buttons (report size 1) |*| | | | | | | | last of 9 buttons, not aligned ``` So for that I added a conditonal that will add a number of reports with size 1 to make sure it aligns to the next multiple of 8. Those reports send dummy inputs that don't do anything aside from aligning the data. Tested on Linux, Windows 10 and Street Fighter (where the joystick is recognized as direct-input) * Add save and restore of each pin used in reading joystick (AVR). Allow output pin to be JS_VIRTUAL_AXIS if the axis is connected to Vcc instead of an output pin from the MCU. Fix joystick report id Fix broken v-usb hid joystick interface. Make it more resilient to unusual settings (none multiple of eight button count, 0 buttons or 0 axes) Correct adc reading for multiple axes. Piecewise range conversion for uncentered raw value range. Input, output and ground pin configuration per axis. Documentation fixes * Fix port addressing for joystick analog read * The other required set of changes As per the PR, the changes still holding it up. Add onekey for testing. Fix ARM builds. Fix device descriptor when either axes or buttons is zero. Add compile-time check for at least one axis or button. Move definition to try to fix conflict. PR review comments. qmk cformat * avoid float functions to compute range mapping for axis adc reading * Remove V-USB support for now. Updated docs accordingly. * Update tmk_core/protocol/lufa/lufa.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/usb_descriptor.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Add support for joystick adc reading for stm32 MCUs. Fix joystick hid report sending for chibios * Fix HID joystick report sending for ChibiOS. Add one analog axis to the onekey:joystick keymap. Fix pin state save and restore during joystick analog read for STM32 MCUs. * Update tmk_core/protocol/chibios/usb_main.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update tmk_core/protocol/lufa/lufa.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Add missing mcuconf.h and halconf.h to onekey:joystick keymap. Add suggested fixes from PR. * Switch saveState and restoreState signature to use pin_t type. onekey:joystick : add a second axis, virtual and programmatically animated. * Update docs/feature_joystick.md Co-Authored-By: Ryan <fauxpark@gmail.com> * Update docs/feature_joystick.md Co-Authored-By: Ryan <fauxpark@gmail.com> * Add PR corrections * Remove halconf.h and mcuconf.h from onekey keymaps * Change ADC_PIN to A0 Co-authored-by: achol <allecooll@hotmail.com> Co-authored-by: José Júnior <jose.junior@gmail.com> Co-authored-by: a-chol <achol@notamail.com> Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Ryan <fauxpark@gmail.com>
* Don't compile outputselect.c if Bluetooth is disabled (#9356)Ryan2020-08-291-2/+2
|
* Make sendstring respect `TAP_CODE_DELAY` (#9623)Ryan2020-07-021-4/+2
|
* Move encoder_read to common location (#9003)Joel Challis2020-06-031-11/+0
|\
| * Move encoder_read to common locationzvecr2020-05-021-11/+0
| |
* | Move dip switch init to back of the init process (#9233)Drashna Jaelre2020-06-031-3/+0
|/
* Fix bug with layer caching in get_event_keycode (#8693)Drashna Jaelre2020-04-121-5/+8
| | | | | * Fix bug with layer caching in get_event_keycode * Improve naming
* Strip out features to allow minimum firmware sizes (#8645)Joel Challis2020-04-011-0/+2
|
* Miscellaneous cleanups (#8639)Ryan2020-04-011-4/+0
| | | | | * Miscellaneous cleanups * Cast NO_PIN
* format code according to conventions [skip ci]QMK Bot2020-03-221-10/+6
|
* Add Post Processing to process_record (#4892)Drashna Jaelre2020-03-231-3/+17
| | | | | | | | | | | | | | | | | | | * Improve process_record system Code based on @colinta's * Rename and better handle functions * Fix incorrect function call to process_record_user * Add documentation for post_process_record * Add both get_event_keycode and get_record_keycode functions And add some comments about these functions * Update code format * Cleanup merge artifacts
* Add Word Per Minute calculation feature (#8054)brickbots2020-03-231-0/+10
| | | | | | | | | | | | | | | | | | | | | * Add Word Per Minute calculation feature * Fix copyright info * Remove header from quantum.c, setup overloadable keycode inclusion for WPM, update docs * Simplify logic for keycode filtering * Adding link from summary to wpm_feature info * Update docs/feature_wpm.md Typo in function prototype example in docs Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Add WPM transport via i2c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Add support for Bootmagic lite when using SPLIT_HAND_PIN (#8347)Joel Challis2020-03-211-26/+0
| | | | | | | | | * Add support for Bootmagic lite when using SPLIT_HAND_PIN * Deduplicate bootmagic_lite logic from within via * Revert location of defaults so that user overrides still work for now * Tidy up code slightly
* Reduce PROGMEM usage for sendstring LUT (#8109)Ted M Lin2020-03-031-42/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Reduce PROGMEM usage for keycode map Bit-pack the keycode bool array to gain back a small amount of flash space. The trade-off is an increase in runtime instructions when running macros. It does make the code a bit harder to read, as well as maintain. For configs that use send_string() et al, it saves ~100 bytes. * Switch to macro and common definition Rewrite the array declarations so both the unpacked (original) and packed LUT arrays can use the same value definitions. This is done by defining a macro that "knows what to do". This makes the code much easier to read and maintain. * Fix macro typos and improve perf Pack the bits in a more efficient order for extraction. And also fix the copy/paste error in the macro... * Switch fully to packed LUT Some minor reformatting. Compile tested all sendstring_xyz.h to make sure they were converted properly. Also checked that an unconverted version would generate a compile error. * Apply whitespace suggestions from code review Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix recent clang-format breaking quantum.c (#8282)Joel Challis2020-03-011-2/+2
|
* format code according to conventions [skip ci]QMK Bot2020-03-011-1/+1
|
* Remove duplicate BRTG case (#8277)Ryan2020-03-011-5/+0
|
* 2020 February 29 Breaking Changes Update (#8064)James Young2020-02-291-0/+3
|
* Add support for delays in send_string. (#8244)Nick Brassel2020-02-271-26/+53
|