Commit Graph

1011 Commits (7ffed07310b4dcf53235bfd8a1700aefd0437f90)

Author SHA1 Message Date
Ryan Caltabiano 0a645225b9 OLED Driver Feature 2019-04-20 08:05:10 -07:00
Takeshi ISHII 7e67bd791b Change split_common to use RGBLIGHT_SPLIT (#5509)
* add I2C_slave_buffer_t to quantum/split_common/transport.c

Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results.

* add temporary pdhelix(Patched Helix) code

* temporary cherry-pick from #5020

add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h

* add post_config.h support to build_keyboard.mk

* add quantum/rgblight_post_config.h, quantum/split_common/post_config.h

Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk.

quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined.

quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C.

* Change split_common's transport.c I2C to use the synchronization feature of rgblight.c

* Change split_common's transport.c serial to use the synchronization feature of rgblight.c

* test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix

* Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix"

This reverts commit 80118a6bbd3d9fc4c7797fef0c34bc67aa73aa98.

[x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3)
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default

[x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default

[x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default
[x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default
[x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default

* Test End, Revert "temporary cherry-pick from #5020"

This reverts commit d35069f68bda0c50370442a5c7aae60c2f4ce5c0.

* Test End, Revert "add temporary pdhelix(Patched Helix) code"

This reverts commit aebddfc1a879796afae297ef0723a4fe73af3660.

* temporarily cherry-pick from #5020 to see if it passes the travis-ci test.

add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h

* Passed the travis-ci test. Revert "temporarily cherry-pick from #5020 to see if it passes the travis-ci test."

This reverts commit 647c0a9755eb6a05f76d09b2d59bce67b85a841f.

* update docs/config_options.md

* update split_common/transport.c, improves maintainability of serial transaction IDs.

No change in build result.

* temporary cherry-pick from #5020

* fix build fail keebio/iris/rev3:default

* fix build fail lets_split_eh/eh:default

* Revert "temporary cherry-pick from #5020"

This reverts commit be48ca1b4515366a097af8dd1cd7b28b7ee09947.

* temporary cherry-pick from #5020 (0.6.336)

* Revert "temporary cherry-pick from #5020 (0.6.336)"

This reverts commit 978d26a8b3cf0acc485838a7d76d6128b77c630c.

* temporary cherry-pick from #5020 (0.6.336)
2019-04-19 15:25:08 -07:00
Takeshi ISHII dfab177f88 Add function to support split-keyboard in rgblight.[ch]. (#5020)
* add temporary file that is rgblight.c call graph

* add rgblight_update_hook()

* update rgblight-call-graph.dot (temporary file)

* add more hook point

* add TODO comment

* temporary Revert "add TODO comment"

This reverts commit df6165aac9b3a31d1d3e31ce52aadc134b84eac2.

* temporary Revert "add more hook point"

This reverts commit 64592b06f3bcdaac47c59f922018a273bef76776.

* temporary Revert "add rgblight_update_hook()"

This reverts commit 432b74c912ed4333e6633e20a1bcda10c6a10eaf.

* add rgblight_update_hook()

* add more hook point

* add TODO comment

* implement rgblight_update_hook()

* remove rgblight_update_hook(), add RGBLIGHT_SPLIT_SET_CHANGE_XXXX

rgblight_update_hook() is too large.
change to simple flag setting.

* shrink rgblight_config_t

* implement rgblight_update_sync()

Note: The animation synchronization process has not been implemented yet.

* update quantum/rgblight-call-graph.dot (temporary file)

* rmove quantum/rgblight-call-graph.dot (temporary file)

* update rgblight.c

* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .

* fix build break rgblight_update_sync() when all animation off

* fix quantum/rgblight.c:rgblight_disable_XX() add RGBLIGHT_SPLIT_SET_CHANGE_MODE

* quantum/rgblight.c change code order: move rgblight_update_sync()

* add mode_base_table[] to quantum/rgblight.c

* quantum/rgblight.c use mode_base_table[] and rgblight_status.base_mode

* quantum/rgblkght.c animation timer integration

* quantum/rgblkght.c add animation sync for split keyboard

* fix mode_base_table[] and snake effect

* fix build break keyboards/mxss.

keyboards/mxss's local rgblight.c need old version rgblight.h

* rgblight.c: fix animation sync

* quantum/rgblight.c: fix snake effect sync

* quantum/rgblight.c: animation sync interverl 30 sec

* quantum/rgblight.c: fix rgblight_effect_rainbow_swirl() and rgblight_effect_knight()

* quantum/rgblight.c: add macro RGBLIGHT_SPLIT_ANIMATION

* cherry-pick from 'rgblight_modes.h sample implementation'

* fix RGBLIGHT_SPLIT_ANIMATION check position

* Update temporary code in Helix keyboard 'five_rows' keymap to test rgblight.c

* Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled.

* Changed to rgblight_sethsv_eeprom_helper() for easier reading.

* add fail-safe code to quantum/rgblight.c:rgblight_task(),rgblight_timer_enable()

* remove temporary code in Helix keyboard 'five_rows' keymap

* quantum/rgblight.c: add split-keyboard master side sync functions

add functions:
  uint8_t rgblight_get_change_flags(void);
  void rgblight_clear_change_flags(void);
  void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo);

change function:
  void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom);

* Change rgblight_update_sync() to use write_to_eeprom.

* remove TODO comment from quantum/rgblight.h

* Revert "fix build break keyboards/mxss."

This reverts commit 90b9a1aa7d8af226751500e49e3ea0214cc4e024.
(Separated this change into the newly opened PR #5461.)

* Revert "Reduce the firmware size by 1500 bytes when rgblight_effect_breathing() is enabled."

This reverts commit b61004e63e82cf5334cee4def4ba10cffa88885f.

* update quantum/rgblight.c: Code size reduction when not using RGBLIGHT_SPLIT.

* Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c .

* add temporary pdhelix(Patched Helix) code

* Add temporary code to split_common/transport.c to test rgblight.c.

* Finish testing rgblight.c with helix keyboard.

Revert "Add temporary code to Helix keyboard 'five_rows' keymap to test rgblight.c ."

This reverts commit 0bf81a4723a977adc0cb09b4272ee5c9b4f2bbbb.

* Finish testing rgblight.c with quantum/split_common code.

Revert "Add temporary code to split_common/transport.c to test rgblight.c."

This reverts commit 71db3e24eef40d4c455fb9fd1664e4487c9d927a.

* remove temporary pdhelix(Patched Helix) code

This reverts commit 5287e51a394741bcb6028c7cfc0dd0c984645f76.

* Added description of RGBLIGHT_SPLIT macro to docs/feature_rgblight.md.

* add RGBLIGHT_SPLIT_SET_CHANGE_HSVS to rgblight_init()

* Changed to restart animation only when changing mode.

When changing hue, sat and val, the animation is not restarted and continues.
2019-04-19 15:05:51 -07:00
Mike Roberts b60413af60 Use auto output for Adafruit BLE (#4131)
* use auto for adafruit ble

* spacing

* switch ifdef name
2019-04-19 13:07:35 -07:00
Alex Ong 7a1086e405 [core] Fix for eager_pr #5643
Added extra transfer_matrix_values() call whenever counters don't need updating
2019-04-18 15:45:36 -07:00
Alex Ong d0fb7005d5 Eager pk/pr optimization (#5621)
* Optimizations to eager_pk

* eager_pr also uses changed boolean now.
2019-04-15 12:58:03 -07:00
XScorpion2 5fcd744ddb Features/ws2812 matrix driver (#5418)
* WS2812 driver implementation for RGB Matrix

* Added driver configuration docs
2019-04-14 17:50:35 -07:00
Bob 02b74d521b fix combo enabling logic (#5610) 2019-04-14 11:02:41 -07:00
Drashna Jaelre a6857d18e1 Change table names 2019-04-12 14:07:05 -07:00
Drashna Jaelre 1d7a06a0a2 Cleanup code 2019-04-12 14:07:05 -07:00
Drashna Jaelre e88530af79 Make send_char multilined for readaability
So future us' will thaank us
2019-04-12 14:07:05 -07:00
Drashna Jaelre 7148c0b10c Clean up some of the code 2019-04-12 14:07:05 -07:00
Drashna Jaelre a2090d5e86 Add AltGr/RALT support to Send String 2019-04-12 14:07:05 -07:00
noroadsleft 2df82514ab Update ps2avrgb readme template (#5584)
- fix markdown formatting on macOS instructions (close code block)
- update package install commands
  - set python3
  - use pip3 to install pyusb
  - fix typo (extra backtick on bootloadhid package install line)
- update Keyboard Maintainer line (now unified with AVR template)
2019-04-11 15:39:40 -07:00
zvecr 0137b02319 Port DIRECT_PINS from split_common/matrix.c to matrix.c (#5091)
* Port DIRECT_PINS from split_common/matrix.c to matrix.c

* Reorder matrix.c to remove foward declaration and match split_common/matrix.c

* Refactor nano to use DIRECT_PINS

* Reorder matrix.c to remove foward declaration and match split_common/matrix.c

* Add DIRECT_PINS documentation

* Reorder matrix.c to remove foward declaration and match split_common/matrix.c - fix logic from inherited from split_common

* Add DIRECT_PINS documentation - review comments
2019-04-11 11:51:55 -07:00
Jack Humbert fa4052c26e Adds the Planck EZ, 3737 RGB, fixes out-of-tune notes (#5532)
* RGB Matrix overhaul
Breakout of animations to separate files
Integration of optimized int based math lib
Overhaul of rgb_matrix.c and animations for performance

* Updating effect function api for future extensions

* Combined the keypresses || keyreleases define checks into a single define so I stop forgetting it where necessary

* Moving define RGB_MATRIX_KEYREACTIVE_ENABLED earlier in the include chain

* Adds the Planck EZ, 3737 RGB, fixes out-of-tune notes

* fix bug in quantum/rgb_matrix_drivers.c

Co-Authored-By: jackhumbert <jack.humb@gmail.com>

* update command setting to the correct default

* correct rgb config

* remove commented-out lines

* update docs for the 3737

* Update docs/feature_rgb_matrix.md

Co-Authored-By: jackhumbert <jack.humb@gmail.com>
2019-04-08 16:57:43 -07:00
Bob bc536b9b6d Switch process_combo to using global register and timer (#2561)
Since combos keep local state about what keys have been previously pressed, when combos are layered, multiple keypresses will register for any key with multiple combos assigned to it. In order to fix this, I switched process_combo to use a global keycode / keyrecord register and timer. When a keypress is consumed by a combo, it gets stored in the register and the timer is updated; when the next keypress takes too long or a key is pressed that isn't part of any combo, the buffer is emitted and the timer reset. This has a few side effects. For instance, I couldn't _not_ fix combo keys printing out of order while also fixing this bug, so combo keys print in order correctly when a combo fails. since combos no longer have local timers, the logic around when combos time out has changed. now that there is a single timer pressing any combo key (including one in a different combo) will reset the timer for all combos, making combo entry a little more lenient. Since combos no longer have local keycode / keyrecord state, there is an edge case where incomplete combo keys can be consumed. if you have a combo for a+s = tab and a combo for b+n = space, if you press a+b+n, only a space will be emitted. This is because when b+n completes successfully, it drops the register.
2019-04-08 14:07:15 -07:00
zvecr 91b18e263f [Keyboard] Refactor jj40 to current standards (#5574)
* Refactor jj40 in line with current ps2avrgb template

* Disable bootmagic lite as it seems to not work on atmega32a/bootloadHID

* Add backlight pwm bodge till #4324 lands

* Increase planck keymap compatibility
2019-04-08 10:53:15 -07:00
Drashna Jaelre 908966bdf3
Fixed tap/down/up handling in dynamic keymap macros (#5363)
* Fixed tap/down/up handling in dynamic keymap macros

* Added SS_TAP_CODE, SS_DOWN_CODE, SS_UP_CODE
2019-04-07 19:19:00 -07:00
Lenbok 2ffa4798a4 Fix bugs that cause compile failures when enabling only some animations. 2019-04-06 10:59:25 -07:00
Drashna Jaelre 5701b75e3c Custom Tapping Term per key (#5009)
* Add customizable tapping terms

* Add Documentation

* Fix function

* Fixes

* It's not a pointer

* Add debugging output

* Update documentation to be at least vaguely accurate

* Use `get_tapping_term(tapping_key.event)` instead

`e` doesn't include column and row information, properly. It registers as 255, regardless of the actual keypress.

However `tapping_key.event` actually gives the correct column and row information.  It appears be the correct structure to use. 

In fact, it looks like the issue is that `e` is actually the "TICK" structure, as defined in keyboard.h

* Use variable tapping term value rather than define

* Silly drashna - tapping_key.event, not event

* add get_event_keycode() function

* Fix typo

Co-Authored-By: drashna <drashna@live.com>

* Remove post_process_record_quantum since it's the wrong PR

* Update quantum/quantum.c

Co-Authored-By: drashna <drashna@live.com>

* Better handle ifdef statement for permissive hold

Since we can't be sure that tapping term is actually 500

* Update quantum.c comments based on feedback

* Clean up get_tapping_term function

Clean up function so that users don't need to call the event function, and instead only check the keycode

* Add ability to run functionality on and off

* Make ifdef's more compact
2019-04-05 15:47:25 -04:00
James Churchill 4c1760883e Update ps2avrgb template to use standard matrix/i2c code (#4957)
* Update ps2avrgb template to use standard matrix/i2c code

* Default to an 8x11 matrix in the ps2avrgb template
2019-04-05 09:20:43 -07:00
Daniel Prilik 763b26cdb9 RGB Matrix support for Massdrop CTRL/ALT (#5328)
* port Massdrop CTRL/ALT to use RGB Matrix

Co-authored-by: Matt Schneeberger <helluvamatt@gmail.com>

* Massdrop lighting support working

This commit is to get the Massdrop lighting code working again through use of the compilation define USE_MASSDROP_CONFIGURATOR added to a keymap's rules.mk.
Added keymaps for both CTRL and ALT named default_md and mac_md. These should be used if the Massdrop style lighting is desired.

* Updating config based on testing results with patrickmt & compile errors

* Updates for PR5328

For CTRL and ALT:
Moved location of new RGB Matrix macros from config_led.h to config.h.
Added RGB_MATRIX_LED_FLUSH_LIMIT (time between flushes) to config.h for correct LED driver update timing.
Re-added missing breathing code for when Massdrop configurator mode is defined.

* remove prilik keymap form PR
2019-04-03 18:30:47 -07:00
XScorpion2 63177760de Added encoder support to split common code (#5477)
* Added slave encoder support to split common

* Fixing handwired/xealous/rev1 compile error

* Removed unnecessary ifdef
2019-04-03 16:01:17 -07:00
Alex Ong 17e7762de7 Eager Per Row Debouncing added (added to Ergodox) (#5498)
* Implemented Eager Per Row debouncing algorithm.

Good for when fingers can only press one row at a time (e.g. when keyboard is wired so that "rows" are vertical)

* Added documentation for eager_pr

* Ported ergodox_ez to eager_pr debouncing.

* Removed check for changes in matrix_scan.

* Added further clarification in docs.

* Accidental merge with ergodox_ez

* Small cleanup in eager_pr

* Forgot to debounce_init - this would probably cause seg-faults.
2019-04-03 14:45:55 -07:00
XScorpion2 c98247e3dd RGB Matrix Overhaul (#5372)
* RGB Matrix overhaul
Breakout of animations to separate files
Integration of optimized int based math lib
Overhaul of rgb_matrix.c and animations for performance

* Updating effect function api for future extensions

* Combined the keypresses || keyreleases define checks into a single define so I stop forgetting it where necessary

* Moving define RGB_MATRIX_KEYREACTIVE_ENABLED earlier in the include chain
2019-04-02 17:24:14 -07:00
DDRnJn 61b2f2b16e Added some new songs (#5525)
Added Fantasie Impromptu and Nocturne Op. 9 No. 1 in B flat minor by Chopin
Added Isabella's Lullaby from The Promised Neverland
Added Renai Circulation and Platinum Disco from Monogatari
Added Terra's theme from Final Fantasy 6
2019-04-02 11:51:28 -07:00
Wilba6582 d15bb05c93 Added SS_TAP_CODE, SS_DOWN_CODE, SS_UP_CODE 2019-03-30 14:24:13 +11:00
Brian Choromanski 3f4d706c98 Fixing dead links (#5503)
* Fixed typo of 'confid.h' to 'config.h'

* Fixed broken links in docs

* Fixed a lot of dead links

* Removed all dead links that I could not find a replacement for

* Placed knops links back in

* Fixed plank keymaps so that they will compile for planck light

* Https doesn't work on knops.io

* tv44:budi now compiles

* s60_x:amnesia0287 now compiles

* Fixed allocation of key_combos so that narze keymap for planck can compile correctly

* Disabled rgb on ergodone and infinity

* Enabled tap dance so it compiles

* Added return statement so it compiles

* If compiling on light disable extra functionality

* Properly redefined variable so it compiles

* Remove remaining dead links
2019-03-29 06:20:25 -07:00
DDRnJn b90df560f8 Added songs from Nier and Nier Automata
Added song of the ancients and kaine salvation fron Nier
Added Amusement park, Copied city, Vague Hope cold rain and weight of the world from Nier Automata
2019-03-24 17:13:07 -07:00
Danny f077204fae Add support for RGB LEDs wired directly to each half's controller (#5392)
* Add support for wiring RGB LEDs for both halves directly to their respective controllers

RGB LEDs for each half don't need to be chained together across the TRRS cable with this

* Add split RGB LED support for serial

* Update config/rules for bakingpy layout

* Un-nest ifdefs for hand detection

* Read RGB config state from memory instead of EEPROM for serial updates

* Reuse existing LED pointer instead of creating new one
2019-03-23 17:20:14 -07:00
Takeshi ISHII f7fd7f67bd rgblight.c: add remap feature (#5243)
* rgblight.c: add RGBLIGHT_LED_MAP support

* add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP

* Test end. Revert "add code to keyboards/helix/rev2/keymaps/five_rows/config.h to test rgblight.c:RGBLIGHT_LED_MAP"

This reverts commit e7488d6f7338460b533d7d19a09deccb011000bf.

* update docs/feature_rgblight.md

* led_map[] move to PROGMEM
2019-03-20 16:55:24 -07:00
James Churchill cd696ed3d1 Fix i2c splits with >8 columns (#5454) 2019-03-20 07:43:36 -07:00
M-AS 221ac2eabb New RGB Matrix effect: Single color reactive (#5330)
* Adds new RGB Matrix effect: rgb_matrix_config'd reactive LEDs

* [Docs] Adds disable for new effect

* [Docs] Added new effect to list of effects
2019-03-17 10:38:51 -07:00
cubimon f9f0a31904 Unicode fix for new wincompose version (#5082)
* unicode fix for new wincompose version

* move wincompose case to linux

* Change unicode input end to enter
2019-03-17 10:35:14 -07:00
DDRnJn fcc9b4b8e7 Added 4 new songs to song_list.h
Added Liebesleid by Kriesler (or Rachmaninoff), Michishirube from Violet Evergarden, Melodies of Life from Final Fantasy 9 and Eyes on Me from Final Fantasy 8
2019-03-17 10:17:12 -07:00
Len Trigg 9c4424ae2c rgblight split transfer non-eeprom config (#5396)
* Make rgblight_update_dword not update eeprom (we already have
eeconfig_update_rgblight for that).

Make split i2c keyboards transfer active rgblight config rather than
eeprom saved version of rgblight config, enabling runtime changes
that aren't persisted to eeprom.

* prev_level and prev_rgb only store successfully transmitted values
2019-03-15 13:46:49 -07:00
Takuya Urakawa 2f3dbb1253 Add new keyboard Plaid and ATMEGA328p support (#5379)
* add plaid

* Change usb vid/pid to free id from vusb
Trivial fix for vusb core

* update readme

* update info.json default keymap

* fix typo

* Replace copyright
2019-03-12 11:48:17 -07:00
James Churchill 37932c293c Next set of split_common changes (#4974)
* Update split_common to use standard i2c drivers

* Eliminate RGB_DIRTY/BACKLIT_DIRTY

* Fix avr i2c_master error handling

* Fix i2c_slave addressing

* Remove unneeded timeout on i2c_stop()

* Fix RGB I2C transfers

* Remove incorrect comment
2019-03-12 10:23:28 -07:00
DDRnJn fe89aef774 Add 3 new songs and add new note type (#5351)
* Added 3 new songs and added new note type to musical_notes.h

Added Megalovania from Undertale, Kataware Doki from Kimi no Na Wa and La Campanella by Lizst to song_list.h
Added the breve (double whole note) and dotted breve note types to musical_notes.h. I included this because the default tempo is quite high, so I thought a note with higher
duration was needed

* Fixed indentation for new notes in musical_notes.h

Changed tabs to spaces in indentation
2019-03-11 13:53:22 -07:00
Wilba6582 92c19dae8c Fixed tap/down/up handling in dynamic keymap macros 2019-03-11 12:41:50 +11:00
Marco Monaco 73d8593352 increase size of note counter variable to avoid overflow 2019-03-05 15:03:24 -08:00
James Churchill c7c4937eef Clean up debounce a bit (#5255) 2019-03-04 07:44:46 -08:00
avatak 8dd1dab7cb Added two songs to song_list.h (FF Prelude and To Boldly Go) (#5252)
Adds FF_Prelude (from most Final Fantasy games) and TO_BOLDLY_GO (a melody from the main themes of Star Trek TNG and the original series)
2019-02-28 12:35:42 -08:00
fauxpark 0d936b2fe6 Ask for your name when generating a new keyboard (#5214)
* Ask for your name when generating a new keyboard

* Update docs

* Apply suggestions from code review

Co-Authored-By: fauxpark <fauxpark@gmail.com>
2019-02-26 07:59:34 -08:00
Konstantin Đorđević d5dcf54e23 Fix indentation in quantum_keycodes.h (#5221) 2019-02-24 15:21:09 -08:00
Tobias Schulte a69e4406d4 Fix Tx Bolt ghosting second character on key press (#5229)
* convert tabs to spaces

* fix #4578: don't call gemini protocol code when in bolt mode

Add missing break; statements in switch. The missing break resulted in
a fall through and an additional processing of the gemini code.
2019-02-23 19:32:48 -08:00
Takeshi ISHII e3621c162c fix rgblight_effect_breathing interval time (#5213) 2019-02-22 08:07:31 -08:00
Chris Lewis c1c5922aae Velocikey: Match RGB animation speed to typing speed (#3754)
* Draft commit of typing speed RGB control

* More information in the readme

* Support all RGB animation modes (Fixes #1)

* Added support for all RGB light modes to use typing speed

Except christmas lights because that is seizure-inducing at high speeds!

* Introduced a value range specific to each RGB mode

Because some modes are a little too much when running at full speed!

* Update readme.md

* Update readme.md

* Re-arrange typing_speed definitions (Fixes #5) (#6)

* Re-arrange variable definitions to avoid including quantum.h from rgblight.c

* Fix a compilation error when trying to run make test:all

* Tweaks to the typing speed decay rate

* Renamed to momentum; moved implementation into dedicated files

* Groundwork for toggling momentum on/off (currently always on)

* Add EEPROM toggle for momentum-matching

* Moved momentum out of RGBLIGHT_ENABLE toggles so it's more generic

* Move momentum decay task out of rgblight_task()

* Fix missing momentum.h in lufa.c

* Experimental LED support (untested)

* Draft commit of typing speed RGB control

* More information in the readme

* Support all RGB animation modes (Fixes #1)

* Added support for all RGB light modes to use typing speed

Except christmas lights because that is seizure-inducing at high speeds!

* Introduced a value range specific to each RGB mode

Because some modes are a little too much when running at full speed!

* Update readme.md

* Update readme.md

* Re-arrange typing_speed definitions (Fixes #5) (#6)

* Re-arrange variable definitions to avoid including quantum.h from rgblight.c

* Fix a compilation error when trying to run make test:all

* Tweaks to the typing speed decay rate

* Renamed to momentum; moved implementation into dedicated files

* Groundwork for toggling momentum on/off (currently always on)

* Add EEPROM toggle for momentum-matching

* Moved momentum out of RGBLIGHT_ENABLE toggles so it's more generic

* Move momentum decay task out of rgblight_task()

* Fix missing momentum.h in lufa.c

* Added documentation

* Renamed feature to velocikey

* Reverted readme to original state

* Correct the readme title

* Updated feature name in the docs

* Update EECONFIG name

* Add compile-time toggles for velocikey

* Update feature documentation

* Revert "Merge branch 'led-support' into master"

This reverts commit e123ff5febf61639b9a9020748e1c2e2313460ff, reversing
changes made to df111a55b9d4929182e16108b1c0ead15b16df97.

* Move velocikey EECONFIG definition to depend on VELOCIKEY_ENABLE

* Rename decay_task function to decelerate

* Apply suggestions from code review

Co-Authored-By: chrislewisdev <chris@chrislewisdev.com>

* Re-order eeconfig definitions

* Apply coding conventions

* Apply #ifdef check in lufa.c

* Refactored interval time checks into one functionc

* Small rename

* Fix unused function error for layouts not using all rgb effects

* Only update EEPROM if Velocikey is enabled

* Incorporate code review feedback

* Small adjustment to top-end decay rate

* Add Velocikey documentation to table of contents

* Bring tetris:default keymap size down by disabling audio
2019-02-21 07:22:46 -08:00
Takeshi ISHII 030faf951c Fix `quantum/split_common/matrix.c: select_col()/select_row()` (#5174)
* add temporary pdhelix(Patched Helix) code

* add test code into  quantum/split_common/matrix.c

* add test code into keyboards/handwired/pdhelix/

* Revert "add test code into keyboards/handwired/pdhelix/"

This reverts commit 9ed98f0797ddd962c99756689fc4ecb4cd067d3d.

* Revert "add test code into  quantum/split_common/matrix.c"

This reverts commit 1876d3ed69f6c213153a9f6476192be839f16c1f.

* Revert "add temporary pdhelix(Patched Helix) code"

This reverts commit 41ac92b814e3f894eaf85bc3e5bb945895342fa8.

* fix quantum/split_common/matrix.c: select_col()/select_row()
2019-02-18 13:55:20 -08:00
Drashna Jaelre 100697ebab Stop all notes on startup, if there is no song and audio is disabled to prevent continouse tone (#5173) 2019-02-18 12:32:38 -08:00
Drashna Jaelre feee01192e
Fix Audio Clicky by adding missing punctuation (#5171) 2019-02-18 09:53:38 -08:00
zvecr fc06986989 Remove CUSTOM_MATRIX option from diode direction (#5090)
* Remove CUSTOM_MATRIX refs from DIODE_DIRECTION

* Remove '#define DIODE_DIRECTION CUSTOM_MATRIX'

* Remove CUSTOM_MATRIX refs from DIODE_DIRECTION documentation
2019-02-18 08:49:51 -08:00
Rys Sommefeldt 0e68b6c1a9 Add UK variant of the SEND_STRING() LUTs 2019-02-18 08:47:31 -08:00
Konstantin Đorđević 5cb713148d Change Command keycode defaults to match corresponding Bootmagic codes (#5078)
* Change Command keycode defaults to match corresponding Bootmagic codes

* Make alternate magic key keycodes consistent

* Reflect changes from previous commit in tmk_core/common/command.c

* Remove unnecessary MAGIC_KEY_* definitions from keymaps compatible with these changes

* Swap E and BSPACE for MAGIC_KEY_EEPROM

* Add MAGIC_KEY_EEPROM_CLEAR instead of MAGIC_KEY_EEPROM_ALT

* Remove BOOTMAGIC_ENABLE checks around EECONFIG stuff

* Update Command descriptions
2019-02-17 22:23:32 -08:00
Konstantin Đorđević 4e2369693f Move RGBLIGHT_LIMIT_VAL definition from rgblight.c to rgblight.h (#5167) 2019-02-17 19:05:12 -08:00
ishtob 2cee371bf1 Haptic feedback generalized - DRV2605 and solenoids (#4939)
* initial work to add eeprom to haptic feedback and decouple the feedback process from keyboards

* Haptic feedback enhancements: on/off toggle working, feedback order working
todo:
-work on modes switching
-get modes switching to save to eeprom

* haptic enhancement - eeprom and modes added

* Added set and get functions for haptic feedback

* initial implementation of solenoids under haptic feedback

* changed eeprom to 32 bits to reserve blocks for future features

* start documentation of haptic feedback

* change keycode per comment from reviewers

* typo fixes

* added eeprom for solenoid configs

* added solenoid and docs

* Add/fix default parameters configs, improve docs

* more doc cleanup

* add in solenoid buzz toggle, clean up doc

* some fixes for error in compiling solenoid

* fix a chibios specific i2c read function and added one for AVR controllers in DRV2605L.c

* fixes for avr side issues

* update keymap

* fix keymap compile error

* fix bugs found during solenoid testing

* set pin that is not powered during bootloader

* added warning about certain pins on the MCU may trip solenoid during DFU/bootloader
2019-02-16 18:39:30 -08:00
Erovia 642f6cf14f Add support for using ranges for RGB (#4981)
* Add support for using ranges for RGB

This patch adds support for controlling continuous ranges of RGB LEDs.
Helper functions for split boards are also available.

* RGB Range: Use hardware-platform agnostic wait
2019-02-15 06:52:04 -08:00
Drashna Jaelre cc146e32dc Improve RGB Light code (#4326)
* Improve RGB Light code

* Add is_rgblight_initialized as an externed value in rgblight.h

* Use remander of hue
2019-02-15 06:37:44 -08:00
Konstantin Đorđević d7754a19b9 Remove problematic unicode_map stub definition in process_unicodemap.c (#5110)
* Remove problematic unicode_map stub definition in process_unicodemap.c

* Add unicode_map declaration to process_unicodemap.h

* Disable UNICODEMAP on converter boards that don't use it
2019-02-14 20:55:31 -08:00
Drashna Jaelre c22f3ba3a2
Debounce refactor / API (#3720)
* Added xeal60 via clone of lets split

* Delete removed other keymaps

* Basic keymap (no FN). Compiles.

* Removed NP_STAR and NP_SLSH.

* Removed "debounce_algo = manual" in all keyboards with CUSTOM_MATRIX = yes.

* Changed order of rules in TMK. Documented feature.

* Fixed missing whitespace in debounce documentation

Table wasn't working due to missing newline.

* Added bold in a few areas.

* DO NOT USE - Removed debounce from TMK.

* Remove accidental xeal60 commit

* DO NOT USE - debounce successfully compiled.

* DO NOT USE Revert back to original API to support split_keyboards.

* Working eager_pk

* Whitespace cleanup.

* Restored debounce.h since there wasnt any real change.

* Moved debouncing_time variable  to inside #if debounce

* Removed check for custom_matrix. We can safely include the debounce file for compilation when custom_matrix is used.

* Removed #include "matrix.h" from debounce.h

* Bug fix - was using MATRIX_ROWS instead of num_rows

* Fixed compilation error with debounce_sym_g

* Renamed DEBOUNCE_ALGO to DEBOUNCE_TYPE

* Malloc array in debounce_eager_pk, since split keyboards only use MATRIX_ROWS/2.

* Fix compile error in debounce_eager_pk

* Stricter, leaner DEBOUNCE_TYPE section in common_features.mk. Cleanup debounce_type.mk
2019-02-14 20:36:20 -08:00
Drashna Jaelre 85022f8bb5 Fix ARM Audio issues and its EEPROM persistence (#4936)
* Don't click if turning audio off

On ARM, playing the click when turning off audio causes the audio get stuck and continually play the tone

* Fix Audio EEPROM support for ARM

* Update touched files to conform to QMK Coding Conventions

* Add better check for ARM EEPROM support
2019-02-14 20:12:37 -08:00
skullY c5221fa1cb fix the led_matrix.h naming conflict 2019-02-10 15:37:12 -08:00
skullY 5fc2421811 Put back an accidentally stripped copyright 2019-02-10 15:37:12 -08:00
skullY 1a680c1d6a cleanup 2019-02-10 15:37:12 -08:00
skullY 84879f28a3 fix compiling for backlight without led matrix 2019-02-10 15:37:12 -08:00
skullY c080a3e7c4 cleanup 2019-02-10 15:37:12 -08:00
skullY 32116f1a45 Move the 1 second delay to led_matrix_init 2019-02-10 15:37:12 -08:00
skullY 6b74dd6de5 led_matrix works now 2019-02-10 15:37:12 -08:00
skullY bf2670601d compiles, but long delay on startup and problems 2019-02-10 15:37:12 -08:00
skullY 159191a874 revert accidental rgb_matrix.h changes 2019-02-10 15:37:12 -08:00
skullY fd698c43d7 The beginning of a simple led matrix driver for is31fl3731 2019-02-10 15:37:12 -08:00
Drashna Jaelre 35f6919673 Fix Bootmgic Mod Handling for LM keycodes (#4740) 2019-02-06 12:43:25 -08:00
Anthony 5c7a31eae2 Improvements to Space Cadet Shift (#3856)
* Improvement of Space Cadet Shift by preventing to automatically apply a modifier on the key and allow to override the default modifier. Closes qmk/qmk_firmware#3815

* Improve the use of the DISABLE_SPACE_CADET_MODIFIER flag to avoid unregistering KC_LSFT when equals to LSPO_MOD

* change #if to if statement
2019-02-05 10:36:26 -08:00
Flugschwein e9c3e04146 Fix QWERTZ <> QWERTY issue in sendstring_german.h
Small mistake that caused sendstring commands to exchange y with z.
2019-02-04 15:07:16 -08:00
Rockman18 df251d7a13 Backlight - New option : BACKLIGHT_CAPS_LOCK (#4769)
* [BACKLIGHT_CAPS_LOCK_INDICATOR] Use backlight toggling as Caps Lock LED

I've implemented this feature because S65-X doesn't have LED indicators
and the existing led_set_kb(usb_led) function try to use backlight as
indicator but that creates an inconsistency with backlight_config state.

- define `BACKLIGHT_CAPS_LOCK_INDICATOR` to enable Caps Lock indicator
  using backlight (for keyboards without dedicated LED)

- Don't turn off LED indicators when suspend because backlight is
  already turned off. Else led_set(0) will turn back on backlight.

- Documentation has been updated

* [BACKLIGHT_CAPS_LOCK_INDICATOR] Turn off all LED indicators except Caps Lock if BACKLIGHT_CAPS_LOCK_INDICATOR

* [BACKLIGHT_CAPS_LOCK] Rename BACKLIGHT_CAPS_LOCK_INDICATOR

* [BACKLIGHT_CAPS_LOCK] Use new IS_LED_ON method
2019-01-28 16:57:56 -08:00
Andrew Kannan 0f507f0169 Practice60 RGB and PWM Backlight (#4929)
* Update Practice60 to enable RGB via SPI DMA and use PWM backlight breathing

* Correct stm32f103c8t6 flash size in eeprom definition

* Remove unused files and improve ifdef checks

* Update quantum/rgblight.c

Co-Authored-By: awkannan <andrew.kannan@klaviyo.com>

* Update quantum/rgblight.c

Co-Authored-By: awkannan <andrew.kannan@klaviyo.com>

* EEPROM implementation fix and updated p60 code

* Update define

* Remove dead code

* Update keymap to remove test key

* Update keymap again
2019-01-28 16:40:02 -08:00
mtei 12a2572295 Prevent wasteful writing to eeprom. 2019-01-28 14:57:41 -08:00
James Churchill 6d2071ad6e Fix `1<col` instead of `1<<col` typo in matrix_is_on() 2019-01-27 08:37:26 -08:00
Konstantin Đorđević 4d9b11af14 Fix Command feature: use get_mods() instead of keyboard_report->mods (#4955)
* Remove unnecessary IS_COMMAND definition in clueboard/66/rev4

* Replace keyboard_report->mods with get_mods() in IS_COMMAND definitions

* Update docs to use get_mods() instead of keyboard_report->mods

* Replace keyboard_report->mods with get_mods() in tmk_core/protocol/usb_hid/test

For some reason, this occurrence used KB_LSHIFT and KB_RSHIFT, which don't exist

* Replace keyboard_report->mods with get_mods() in Massdrop keyboards (as per @patrickmt)
2019-01-27 00:28:40 -08:00
Drashna Jaelre b05c0e46c6 Adds a default value for IS_COMMAND for COMMAND feature (#4301)
* Add default value for IS_COMMAND for COMMAND feature

* Cleanup and consistency

* Update Templates to reflect change

* Fix IS_COMMAND in template

* Fix IS_COMMAND define

* Use consistent IS_COMMAND block in templates

* Remove unnecessary `#undef IS_COMMAND` directives

* Fix compile issue on orthodox

* Reomve IS_COMMAND option for newer boards

* Remove all existing definitions of IS_COMMAND if they use default LSHIFT and RSHIFT setting

* Remove a couple of additional IS_COMMAND defines

* Remove remaining redundant IS_COMMAND definitions

* Remove #undef IS_COMMAND from orthodox:drashna and whitefox:konstantin

* Remove multiple empty lines in modified config.h files

* Update additional boards

* Reomve IS_COMMAND from newer boards

* Update Alice keyboard

* Remove IS_COMMAND from additional boards

Jan 24th edition
2019-01-26 15:49:45 -08:00
alex-ong 562c0d702a Fix compile error in debounce_eager_pk 2019-01-27 00:10:14 +11:00
alex-ong 503e02db79 Merge branch 'debounce_refactor' of https://github.com/alex-ong/qmk_firmware into debounce_refactor 2019-01-26 23:21:27 +11:00
alex-ong 10cc423515 Malloc array in debounce_eager_pk, since split keyboards only use MATRIX_ROWS/2. 2019-01-26 23:18:24 +11:00
Alex Ong 039dde3a51 Fixed compilation error with debounce_sym_g 2019-01-26 22:57:39 +11:00
Alex Ong 7cb8d3c7a7 Bug fix - was using MATRIX_ROWS instead of num_rows 2019-01-26 22:45:25 +11:00
Alex Ong b5b119544a Removed #include "matrix.h" from debounce.h 2019-01-26 22:44:33 +11:00
alex-ong 14ed96aa06 Moved debouncing_time variable to inside #if debounce 2019-01-26 18:26:49 +11:00
alex-ong 5b7fc758d7 Restored debounce.h since there wasnt any real change. 2019-01-26 17:46:27 +11:00
alex-ong 4d8733591f Working eager_pk 2019-01-26 17:29:02 +11:00
alex-ong 123608fb31 DO NOT USE Revert back to original API to support split_keyboards. 2019-01-26 17:10:27 +11:00
alex-ong d0b691df0e DO NOT USE - debounce successfully compiled. 2019-01-26 17:03:46 +11:00
Alex Ong c9ba618654 DO NOT USE Merge branch 'master' into debounce_refactor
Merged, however now there are two debounce.h and debounce.c to mess around with and coalesce.
# Conflicts:
#	quantum/matrix.c
2019-01-26 12:13:19 +11:00
mtei 2e8b32b9b5 move `#include "rgb.h"` from quantum.h to quantum.c
I think `quantum.h` should contain only API declarations that `quantum.c` provides externally. `rgb.h` contains function weak definitions. This should not be in `quantum.h`.
2019-01-25 13:38:12 -08:00
fauxpark 79b58937f4 Add C(), A() and G() to match already existing S() (#4673) 2019-01-25 13:12:48 -08:00
Drashna Jaelre 3542e573c8
Fix process_combo which assign -1 to uint16_t (#3697) 2019-01-25 12:11:38 -08:00
MakotoKurauchi 3c0c432836 Fix problem that MAGIC_SWAP_ALT_GUI will not be effective when OSM(mod) is used 2019-01-25 12:05:17 -08:00
MechMerlin 465559e166 Optimize/Update the new_project script (#4920)
* use pragma once in our templates

* template.h is present in both avr/ps2avrgb options so we moved it to base. In addition we now use pragma once
2019-01-23 21:04:04 -08:00
MechMerlin b0d308eea1 Update Templates (stop living in the past, its 2019) (#4897) 2019-01-20 18:41:57 -08:00
Mislav Čakarić cd819a7f7e Allows Terminal to use ModTap/LayerTap keys (#4586)
* fixes #4583

* #4583 - terminal also handles layer tap now
2019-01-17 17:51:04 -08:00
James Churchill 28929ad017 Simplify split_common Code significantly (#4772)
* Eliminate separate slave loop

Both master and slave run the standard keyboard_task main loop now.

* Refactor i2c/serial specific code

Simplify some of the preprocessor mess by using common function names.

* Fix missing #endif

* Move direct pin mapping support from miniaxe to split_common

For boards with more pins than sense--sorry, switches.

* Reordering and reformatting only

* Don't run matrix_scan_quantum on slave side

* Clean up the offset/slaveOffset calculations

* Cut undebounced matrix size in half

* Refactor debouncing

* Minor fixups

* Split split_common transport and debounce code into their own files

Can now be replaced with custom versions per keyboard using
CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes

* Refactor debounce for non-split keyboards too

* Update handwired/xealous to build using new split_common

* Fix debounce breaking basic test

* Dodgy method to allow a split kb to only include one of i2c/serial

SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only
that driver code in the binary.

SPLIT_TRANSPORT = custom (or anything else) will include neither, the
keyboard must supply it's own code

if SPLIT_TRANSPORT is not defined then the original behaviour (include
both avr i2c and serial code) is maintained.

This could be better but it would require explicitly updating all the
existing split keyboards.

* Enable LTO to get lets_split/sockets under the line

* Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE

* Remove avr-specific sei() from split matrix_setup

Not needed now that slave doesn't have a separate main loop.
Both sides (on avr) call sei() in lufa's main() after exiting
keyboard_setup().

* Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT.

* Add comments and fix formatting.
2019-01-17 10:08:14 -08:00
Jeremy Bernhardt 246c3e4ef4 Changed rest note (#4837)
* Changed rest term

* Update quantum/audio/musical_notes.h

Co-Authored-By: germ <jeremythegeek@gmail.com>
2019-01-13 08:50:23 -08:00
Jack Humbert 3cf179be61 Adds Proton C Conversion (#4661)
* adds proton c base

* fixes custom matrix include

* adds readme.md

* initial proton coversion, no pin mapping

* start of mcu selection

* add pin mapping and sweet16 test

* add at90 to list

* disable backlight, fix d7

* update flag names

* doc updates

* proton c update for mcu selection
2019-01-10 08:22:57 -08:00
fauxpark 3bd30085d8 Tidy up Mod-Tap shortcuts (#4806) 2019-01-08 16:22:09 -08:00
Konstantin Đorđević 64c957d907 Add missing parentheses to some important macros (#4775)
* Add missing parentheses to quantum_keycodes macros

* Add missing parentheses to progmem macros
2019-01-08 15:08:17 -08:00
Konstantin Đorđević cd9262d7b2 Improve consistency in UNICODEMAP code and docs, update docs/understanding_qmk (#4774)
* Remove unused UNICODE(n) macro, update docs

* Add note about max length of unicode_map to docs

* QK_UNICODE_MAP → QK_UNICODEMAP

* Refactor process_unicode_map

* process_unicode_map → process_unicodemap

This is done for consistency: UNICODEMAP is the method (hence UNICODEMAP_ENABLE, process_unicodemap), whereas unicode_map is the mapping table itself.

* Update references and ordering in docs/understanding_qmk

* Add additional note to docs/understanding_qmk

* &unicode_map[index] → unicode_map + index

This avoids the issue of the compiler sometimes complaining about the array index being out of range

* Update docs/getting_started_make_guide

* Update method sections in docs/feature_unicode
2019-01-07 12:56:57 -08:00
Alex Ong 2bb2977c13 Merge branch 'master' into debounce_refactor
# Conflicts:
#	tmk_core/common/keyboard.c
2019-01-04 19:43:45 +11:00
James Churchill 563ce3f225 Add explicit eeprom include in split_common
Fixes builds that set EE_HANDS.
2019-01-03 20:00:27 -08:00
James Churchill 38e01a7480 Convert split_common to use generic GPIO api 2019-01-03 20:00:27 -08:00
Konstantin Đorđević e76bf17d36 Remove redundant, language-specific aliases for KC_ALGR (#4720)
* Use standard KC_ALGR, remove language-specific redefinitions

* Use ALGR instead of ALTGR in BÉPO and Canadian multilingual keymaps

* Remove BE_LALT, BE_LGUI aliases
2019-01-03 08:13:55 -08:00
David Dai b7688590b8 Change rgblight_get_mode & rgb_matrix_get_mode's return type to uint8_t. (#4747)
* Change rgblight_get_mode's return type to uint8_t.

Since rgblight_get_mode() is just returning rgblight_config_t.mode,
it should match rgblight_config_t.mode's type: uint8_t.

* Update rgb_matrix_get_mode to return uint8_t.
2018-12-31 08:42:58 -08:00
Giuseppe Rota 3ddec14eb8 Register the interrupting keycode in the tap dance state struct 2018-12-30 08:35:12 -08:00
Giuseppe Rota bb1b441325 Fix leader processing 2018-12-29 08:17:43 -08:00
Drashna Jaelre 6b46c06018 Fix Split Common Split_util.c typo 2018-12-28 14:52:58 -08:00
Danny c0859ac096 Update split keyboard docs (#4735)
* Remove unused I2C_MASTER_RIGHT setting

* Update documentation about split keyboard options
2018-12-28 13:02:53 -08:00
Takeshi ISHII 72d4e4bfd7 Replace serial.c of quantum/split_common/ (#4669)
* Add provisional Helix implementation to test the quantum/split_common.

* copy keyboards/helix/serial.[ch] to quantum/split_common/

* Make serial.c a pure driver.

Remove buffer name and buffer size from serial.c. They should be placed in the caller(matrix.c, split_utils.c).

* remove quantum/split_common/serial_backward_compatibility.h

* Changed array serial_master_buffer to structure serial_m2s_buffer.

* Changed array serial_slave_buffer to structure serial_s2m_buffer.

* Change keyboards/miniaxe/matrix.c

I also made changes to quantum/split_comon/matrix.c to keyboards/miniaxe/matrix.c.

Note: I contacted @ka2hiro, creator of miniaxe, and I got permission to change keyboards/miniaxe/matrix.c.

* update history comment in quantum/split_common/serial.c

* Revert "Add provisional Helix implementation to test the quantum/split_common."

This reverts commit 168c82ef82c88e79979d9796bab9cc819cc2f685.

* fix keyboards/miniaxe/matrix.c, quantum/split_common/matrix.c

avr-gcc 4.9.[23] report error.
avr-gcc 5.4.0, avr-gcc 7.3.0 pass.
It is funny.

* update comment quantum/split_common/serial.c

* Reserve RGBLIGHT_SPLIT macro in quantum/split_common
2018-12-24 11:14:57 -08:00
Drashna Jaelre afd5cda4a0 Fix up process_leader to be a bit more optimized (#4662)
* Fix up process_leader to be a bit more optimized

* Process dual function keys better

* Make leader start a callable function

* Fix per key timer call location

* Add escape if already leading

* Return false for KC_LEAD

* Add documentation
2018-12-20 16:54:06 -08:00
Drashna Jaelre fdeec29636 Overhaul Unicode Common functionality (#4325)
* Standardize the Unicode EEPROM code

* Remove unicode init from process_record_* functions

* Add unicode init to where it belongs: matrix_init_quantum

* Move Unicode proccessing to unicode common

* Add audio feedback to input mode keys to drive konstantin up a wall

* Tap_code cleanup

* Update keycodes

* Update unicode documentation

* Update unicode keycodes for consistency/easier merge

* Add Audio Feedback section

* Remove Functions from feature page

And link to the file instead.  Link to specific lines later on.

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* Because I missed it!

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* SPAAAAAAAAAACing

Co-Authored-By: drashna <drashna@live.com>

* Add BSD for future compatibility

* Thought I fixed that!

Co-Authored-By: drashna <drashna@live.com>

* non-breaking

Co-Authored-By: drashna <drashna@live.com>

* Considered that

Co-Authored-By: drashna <drashna@live.com>

* Yuuup

Co-Authored-By: drashna <drashna@live.com>

* consistency

Co-Authored-By: drashna <drashna@live.com>

* white spaces .... copied from elsewhere

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Update keycode defines

* Fix Linux Song

* Update all of the songs

* Cleanup

* Move and update check to ensure only one unicode method is enabled

* Update quantum/quantum_keycodes.h

* Update documentation

* Wordsmithing and cleanup

* Format unicode_common (#13)

* case alignment

* process_record_unicode_common → process_unicode_common

* Move song arrays into function where they're used, align preprocessor directives

* Swap the order of UC_WIN and UC_BSD

* Update Unicode docs

* Reorder Unicode mode stuff to match the order of input mode constants

* Fix capitalization in doc subtitle

* Readd BSD and OSX_RALT songs

* Reword BSD note in docs

* Readd BSD keycode description

* Reword explanation of input on different platforms

* Steal vomindoraan's input mode documentation

Co-Authored-By: vomindoraan (vomindoraan@gmail.com)

* Willingly give Drashna the rest of my Unicode doc improvements

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* remove merge artifacts

* Unicode common cleanup (#17)

* Standardize the Unicode EEPROM code

* Remove unicode init from process_record_* functions

* Add unicode init to where it belongs: matrix_init_quantum

* Move Unicode proccessing to unicode common

* Add audio feedback to input mode keys to drive konstantin up a wall

* Tap_code cleanup

* Update keycodes

* Update unicode documentation

* Update unicode keycodes for consistency/easier merge

* Add Audio Feedback section

* Remove Functions from feature page

And link to the file instead.  Link to specific lines later on.

* Fix white spaces

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* Because I missed it!

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* SPAAAAAAAAAACing

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Add BSD for future compatibility

* Thought I fixed that!

Co-Authored-By: drashna <drashna@live.com>

* non-breaking

Co-Authored-By: drashna <drashna@live.com>

* Considered that

Co-Authored-By: drashna <drashna@live.com>

* Yuuup

Co-Authored-By: drashna <drashna@live.com>

* consistency

Co-Authored-By: drashna <drashna@live.com>

* white spaces .... copied from elsewhere

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Update keycode defines

* Fix Linux Song

* Update all of the songs

* Cleanup

* Move and update check to ensure only one unicode method is enabled

* Update quantum/quantum_keycodes.h

* Update documentation

* Wordsmithing and cleanup

* Format unicode_common (#13)

* case alignment

* process_record_unicode_common → process_unicode_common

* Move song arrays into function where they're used, align preprocessor directives

* Swap the order of UC_WIN and UC_BSD

* Update Unicode docs

* Reorder Unicode mode stuff to match the order of input mode constants

* Fix capitalization in doc subtitle

* Readd BSD and OSX_RALT songs

* Reword BSD note in docs

* Readd BSD keycode description

* Reword explanation of input on different platforms

* Steal vomindoraan's input mode documentation

Co-Authored-By: vomindoraan (vomindoraan@gmail.com)

* Willingly give Drashna the rest of my Unicode doc improvements

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* Rearrange process_unicode_common functions

* Make Unicode input mode constants (UC_*) an enum

* Simplify unicode_input_start/finish code

* Make the key used for WinCompose configurable

* Remove UC_OSX_RALT in favor of setting the key with UNICODE_OSX_KEY

* Update Unicode input mode doc

* Add descriptions and rearrange definitions in process_unicode_common.h

* Add registry command to Unicode docs + misc updates

* Reword an explanation in Unicode docs

* Add TODO comment

* Remove trailing whitespace

* Improve Cycling documentation

* Add Unicode Input method Cycling support (#19)

* Standardize the Unicode EEPROM code

* Remove unicode init from process_record_* functions

* Add unicode init to where it belongs: matrix_init_quantum

* Move Unicode proccessing to unicode common

* Add audio feedback to input mode keys to drive konstantin up a wall

* Tap_code cleanup

* Update keycodes

* Update unicode documentation

* Update unicode keycodes for consistency/easier merge

* Add Audio Feedback section

* Remove Functions from feature page

And link to the file instead.  Link to specific lines later on.

* Fix white spaces

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* Because I missed it!

Co-Authored-By: drashna <drashna@live.com>

* Fix spacing

Co-Authored-By: drashna <drashna@live.com>

* SPAAAAAAAAAACing

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Add BSD for future compatibility

* Thought I fixed that!

Co-Authored-By: drashna <drashna@live.com>

* non-breaking

Co-Authored-By: drashna <drashna@live.com>

* Considered that

Co-Authored-By: drashna <drashna@live.com>

* Yuuup

Co-Authored-By: drashna <drashna@live.com>

* consistency

Co-Authored-By: drashna <drashna@live.com>

* white spaces .... copied from elsewhere

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* white spaces

Co-Authored-By: drashna <drashna@live.com>

* Update keycode defines

* Fix Linux Song

* Update all of the songs

* Cleanup

* Move and update check to ensure only one unicode method is enabled

* Update quantum/quantum_keycodes.h

* Update documentation

* Wordsmithing and cleanup

* Format unicode_common (#13)

* case alignment

* process_record_unicode_common → process_unicode_common

* Move song arrays into function where they're used, align preprocessor directives

* Swap the order of UC_WIN and UC_BSD

* Update Unicode docs

* Reorder Unicode mode stuff to match the order of input mode constants

* Fix capitalization in doc subtitle

* Readd BSD and OSX_RALT songs

* Reword BSD note in docs

* Readd BSD keycode description

* Reword explanation of input on different platforms

* Steal vomindoraan's input mode documentation

Co-Authored-By: vomindoraan (vomindoraan@gmail.com)

* Willingly give Drashna the rest of my Unicode doc improvements

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>

* Rearrange process_unicode_common functions

* Make Unicode input mode constants (UC_*) an enum

* Simplify unicode_input_start/finish code

* Make the key used for WinCompose configurable

* Remove UC_OSX_RALT in favor of setting the key with UNICODE_OSX_KEY

* Update Unicode input mode doc

* Add descriptions and rearrange definitions in process_unicode_common.h

* Add registry command to Unicode docs + misc updates

* Reword an explanation in Unicode docs

* Add TODO comment

* Add cycle_unicode_input_mode and UNICODE_SELECTED_MODES macro

* Add an option for making cycle changes persistent

* Add debug prints to functions that change input_mode

* Use cycle_unicode_input_mode in whitefox/konstantin

* Add persist_unicode_input_mode function

* Add offset to cycle to allow stepping in reverse

* Add keycodes: UNICODE_MODE_FORWARD, UNICODE_MODE_REVERSE

Aliases: UC_MOD, UC_RMOD (respectively)

* REVERT ME: Undo changes to whitefox/konstantin to avoid conflicts

* Fix wrong constant name

* Revert "REVERT ME: Undo changes to whitefox/konstantin to avoid conflicts"

This reverts commit 42676bf251fc8e3823f5e614dad6e510ba47a2f3.

* Change dprintf text

* Give selected modes priority over EEPROM when !UNICODE_CYCLE_PERSIST

* Remove trailing whitespace

* Cleanup of RALT code and unicode compilation stuff

* Remove else for unicode handling
2018-12-19 08:39:24 -08:00
Danny Nguyen 40bf3a2ce9 Make `readPin` output a 0 or 1 when using AVR to match ChibiOS's version of `readPin` 2018-12-19 08:37:44 -08:00
Alexander Kagno 3ec4a00bfc Per Key Leader Timing Option (#4026)
* leader changes to enable per key timing option

* Changes requested to docs for @drashna

* Changes requested by @drashna
2018-12-15 07:29:24 -08:00
Takeshi ISHII 8f790948e5 Refactor quantum/split_common/i2c.c, quantum/split_common/serial.c (#4522)
* add temporary compile test shell script

* Extended support of SKIP_VERSION to make invariant compile results during testing.

* build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support

Support compiled object enclosed in library.

e.g.
```
LIB_SRC += xxxx.c
xxxx.c --> xxxx.o ---> xxxx.a
```

* remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c

* add SKIP_DEBUG_INFO into tmk_core/rules.mk

When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time.

* tmk_core/rules.mk: Library object need -fno-lto

* add SKIP_DEBUG_INFO=yes

* remove temporary compile test shell script

* add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h

* quantum/split_common/serial.c: Changed not to use USE_I2C.
2018-12-14 21:31:56 -08:00
Takeshi ISHII 155e9310ff Make quantum/split_common/serial.[ch] configurable (#4419)
* add temporary compile test shell script

* add 'CONFIG_H += serial_backward_compatibility.h' into common_features.mk:SPLIT_KEYBOARD block

* add quantum/split_common/serial_backward_compatibility.h

SERIAL_PIN_PORT and other PIN define move to serial_backward_compatibility.h
SERIAL_BACKLIT_START move to split_util.h

* quantum/split_common/serial.c change to helix-serial.c style serial configuration

* add temporary file quantum/split_common/split-keyboards-list.txt

* add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manuform/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h

* add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,keyboards/qwertyydox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h

* remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_backward_compatibility.h

* remove temporary file quantum/split_common/split-keyboards-list.txt

* remove temporary compile test shell script

* Revert "remove temporary compile test shell script"

This reverts commit 15b0021b4092127b8d8a21f572642ad3702b46d4.

* update quantum/split_common/compile_split_test.sh for new keyboard test

* add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h

* add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h

* remove temporary compile test shell script

* update docs/config_options.md, quantum/template/avr/config.h

* fix quantum/template/avr/config.h

* fix typo  docs/config_options.md
2018-12-14 11:00:10 -08:00
Drashna Jaelre 02d44beb44 Fix up tap_code functionality (#4609)
* Add delay in Tap Code to avoid issues

I think a few people have reporting issues with it working properly, and it may be a timing issue.  The 'register_code' uses this sort of delay in some of the functions, and
this is probably why.

Adding the 100ms delay should hopefully fix any issues with it.

* Make tap_code delay configurable

* Update documentation

* Bring tap_code16 inline with changes

* Fix type for tap_code16

Bad copy-paste job

* Just use the value check for the define

* Clarify timing in docs

Co-Authored-By: drashna <drashna@live.com>

* Wordsmithing

Co-Authored-By: drashna <drashna@live.com>
2018-12-14 09:01:58 -08:00
Fredric Silberberg 9e6ee47779 Added noeeprom versions of set hue, sat, val, and step 2018-12-13 18:30:15 -08:00
Konstantin Đorđević 28fbf84cc5 Add standard definitions for ALGR and KC_ALGR (#4389)
* Add standard ALGR defition, remove (re)definitions from language files

* Use ALGR(kc) consistently in ALTGR(kc) aliases

* Non-Nordic keymaps should not use NO_ALGR

* Add standard KC_ALGR definition

* Update docs with ALGR and KC_ALGR

* Update SS_ALGR and ALGR_T aliases
2018-12-12 10:17:19 -08:00
Ismael Venegas Castelló 538874f90f Keymap: Hacker Dvorak (#4514)
* Hacker Dvorak

Programmer Dvorak based layout for the Ergodox EZ.

* Address drashna comments.

* Fix RGB and drop OSL for MO.

* Add gulp file to automate development.

* Fix gulpfile.

* Caps, num and scroll lock indicators.

* Fix scroll lock.
2018-12-05 08:12:35 -08:00
Drashna Jaelre 3a0f3a5bd0 Make ARM Audio max volume configurable (#4540)
* Make ARM Audio max volume configurable

* Update docs/feature_audio.md

Co-Authored-By: drashna <drashna@live.com>

* Update docs/feature_audio.md

Co-Authored-By: drashna <drashna@live.com>
2018-12-03 16:42:57 -08:00
Drashna Jaelre da1afe152a Fix up RGB Matrix code (#4503)
* Fix up RGB Matrix code

* Convert RGBLIGHT functions to rgbmatrix ones, and add defines
2018-12-03 10:27:15 -08:00
Wilba d7f1e072a8 Added macros to Dynamic Keymaps, Zeal60 RGB backlight improvements (#4520)
* Refactored M6-B to use Zeal60 RGB backlight code

* Fixed M6-B LED co-ordinates

* Minor changes to RGB config for Zeal65

* Added dynamic keymaps to WT80-A, WT60-A, WT-80A, U80-A

* Macro implementation

* Implemented macros, API protocol version 8, RGB backlight fixes

* Improved radial effects for M6-B

* Fixed undefined references when building an RGB keyboard after M6-A
2018-11-30 08:43:34 -08:00
Giuseppe Rota 8b85ec2a98 Add Extrakey support for Brightness up/down (#4477) 2018-11-28 08:19:07 -08:00
Paul Massendari 3b42cff516 Added Rick Roll to song lists (#4510)
🙂
2018-11-28 07:56:34 -08:00
Drashna Jaelre a495326aed Turn off Mousekeys for several ps2avrGB keyboards (#4502)
* Turn off Mousekeys for jc65

* Turn off Mousekeys for ps2avrGB templates

* Disable mousekeys for bmini and canoe as well
2018-11-27 16:54:43 -08:00
Konstantin Đorđević 1904319745 Remove RGB_SMOD alias and replace uses with RGB_MOD (#4319) 2018-11-27 15:34:06 -08:00
Konstantin Đorđević e4dfcf896e Add tap_code16 function (#4362) 2018-11-27 14:29:59 -08:00
Erez Zukerman 1485098443
Merge pull request #4453 from drashna/fix_ucis
Fix UCIS code
2018-11-20 15:17:43 -05:00
Drashna Jaelre 26156e84e8
Fix UCIS code
Revert code change that broke UCIS due to bad suggestions
2018-11-19 16:37:49 -08:00
Florian Didron 504bf11769 Allows disabling rgb effects in userspace (#4422)
* Allows disabling animations in user space

* Describe disabling effects in the docs

* Allows disabling individual reactive modes

* Adds the list ode defines
2018-11-18 08:24:41 -08:00
mtei d0f8e1babe modify quantum/template/avr/config.h: add rgblight effect configurations 2018-11-12 12:23:12 -08:00
Frank Tackitt 94f58322ac Configurable Rainbow Swirl range (#4376)
* Configurable Rainbow Swirl range

This allows tweaking of the rainbow effect to
 get different effects on keyboards with varied
 LED layouts. We found the value 1950 works on
 the RGBKB.net Sol to get a cool striped effect
 across the keyboard.

* Document RGBLIGHT_RAINBOW_SWIRL_RANGE

* Better wording for the documentation
2018-11-07 08:25:18 -08:00
Drashna Jaelre 6e44f94f21 Add EEPROM_RESET keycode to core code (#4234)
* Add EEPROM Reset keycode

* Add keycode to docs

* Move EEPROM Reset code to the end of the enum

* Cleanup and naming change
2018-11-06 00:38:18 -05:00
Konstantin Đorđević 4636f0f623 Remove ALTG(kc) as it's misleading and is not actually AltGr (#4338)
* Remove ALTG(kc) as it's misleading and is not actually AltGr

* Add temporary alias for ALGR in keyboards/planck/keymaps/pevecyan/keymap.c
2018-11-06 00:34:54 -05:00
Josh 0633eb0273 Increasing square wave buffer to max volume. (#4296)
* Increasing square wave buffer to max volume.

* Using range designated initializers for square waves; defining DAC_SAMPLE_MAX.
2018-11-03 12:22:57 -04:00
Drashna Jaelre f1529e74c4 Remove old declaration
Co-Authored-By: nooges <nooges@users.noreply.github.com>
2018-11-02 14:31:29 -07:00
Danny Nguyen a5fa75fcb3 Move disable JTAG code from `keyboard_init` to `keyboard_setup`
This way all split keyboards are using that code instead of just those using split_common with the fix
2018-11-02 14:31:29 -07:00
Jack Humbert 15f6278aa6
Add support for Atmega32A to pin declarations and universal matrix (#4015)
* add computed pins from mcu type

* update for atmega32a

* doc typo

* add atmega16 chips, link to references

* remove avr include from config

* exclude assembler in config.h includes

* consolodate options, add 646

* fix typo in pindef
2018-11-02 12:31:40 -04:00
Drashna Jaelre f63c0b7844 Add pointer(?) to disable_JTAG to prevent compiler errors (#4310) 2018-10-31 15:14:59 -07:00
That-Canadian 5630ad7604 Added JTAG disable code to the split_common (#4309)
Added JTAG disable code to the split_common slave code since the slave never calls keyboard_init(). In the future the slave should likely be modified to call keyboard_init() in some way, but without calling any of the unnecessary USB initialization code.
2018-10-31 14:42:15 -07:00
Drashna Jaelre 4ffcacd920 Add Bootmagic Lite to QMK (#4215)
* Preliminary additon of bootmagic lite functionality

* Cleanup code

* Clean up bootmagic code

* Add documentation and clean up code

* Make 'lite' an option for BOOTMAGIC_ENABLE

* Update Templates with note about Bootmagic Lite option

* Detect Debounce variable

* Make sure debounce is a non-zero number

* Capitalize Bootmagic

* Capitalize bootmagic

* Update wording

* Re-add EEPROM reset, by popular demand

And add eeprom-less version to drashna userspace for his sanity

* Fix spacing

* Set BOOTMAGIC_ENABLE to use full/lite/off

And default yes to "full" for compatibility

* Add Bootmagic lite info to templates

* Remove text from makefiles

* Cleanup of makefile

* mention yes in bootmagic docs

* Wordsmitthing the docs

* Fix white spaces

* Readd default bootmagic setting, because it's necessary
2018-10-27 14:53:50 -04:00
Jack Humbert 85688e5b52 add support for encoders to core 2018-10-26 14:24:13 -07:00
ROMUSKING 5694e7b6a6 Keymap: add new keymap (#4127)
* an attempt at own layout

* typematrixed dvorak

* columns shifted

columns shifted out, second pinky column moved to the inside.

* Update users/romus/romus.h

* code cleanup

Changes requested by Drashna + Tap Dance enabled

* Fixed EOF

Fixed the no newline at the end of file alert.

* rgblight fight eeprom writes

* rgb code simplification

* Update users/romus/README.md

* Update quantum/keymap_extras/keymap_slovenian.h
2018-10-22 11:54:31 -07:00