Commit Graph

196 Commits

Author SHA1 Message Date
Drashna Jaelre f5ae3760c6 Add send_unicode_hex_string function (#3828)
* Add send_string_unicode function

Co-authored-by: kdb424 <kdb424@gmail.com>
Co-authored-by: Konstantin <vomindoraan@gmail.com>

* Clean up code based on feedback

* Fix includes
2018-10-01 20:56:04 -04:00
Drashna Jaelre 9d949389f9 Adds default value for TAPPING_TERM if Tap Dance is enabled (#2785)
* Force require TAPPING_TERM if Tap Dance is enabled

* Handle lack of TAPPING_TERM more gracefully
2018-10-01 11:09:05 -04:00
Drashna Jaelre edeace279b Make Audio Clicky's randomness a float
Rather than a define, but read from the define.  This way, a smart coder could externally configure the randomness, changing it on the fly

This is also a precursor step to adding full on support for configurable randomness.
2018-09-27 18:31:18 -07:00
Drashna Jaelre a0309db983 Add On/Off keycodes 2018-09-25 13:28:36 -07:00
Drashna Jaelre cfb1b353ee Add functions so you can configure programatically 2018-09-25 13:28:36 -07:00
Drashna Jaelre e72e4b6920 Store Clicky status in EEPROM 2018-09-25 13:28:36 -07:00
Joe Wasson 743449472e Make `PREVENT_STUCK_MODIFIERS` the default (#3107)
* Remove chording as it is not documented, not used, and needs work.

* Make Leader Key an optional feature.

* Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE`

* Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
2018-09-17 13:48:02 -04:00
Shihpin Tseng 1950a145c7 Fix process_combo which assign -1 to uint16_t 2018-08-20 02:29:08 +08:00
Jack Humbert ade22f8e2c
Adds support for Planck Rev 6 (#2666)
* initial files for rev 6 with encoder

* music map init, dip scan added

* adds ws2812 driver for arm

* flesh out dip and encoder support

* adds default encoder res

* adds default encoder res

* start muse implementation

* muse working with encoder as control

* flip direction

* try mouse wheel again

* dont break other revs

* dont break other revs

* conditional autio

* pwm ws driver (not working)

* update build includes for chibios

* update ws2812 driver/config

* last commit for glasser code

* working example

* remove rgb for now

* finish up rev6

* working encoder keycodes

* add warnings to planck keymaps about the LAYOUT
2018-07-16 11:48:31 -04:00
Joe Wasson 81756d7b21 Fix tapdance when one-shot is disabled. 2018-07-15 13:29:59 -04:00
M1K3L08 42a72c633b Fixed sprintf overflow 2018-05-16 21:05:43 -04:00
Drashna Jaelre a572323f94 Add default to LEADER_TIMEOUT in case it's not defined (#2818)
* Add default to LEADER_TIMEOUT in case it's not defined

* Update Leader Timeout default
2018-05-15 22:33:53 -04:00
Jack Humbert 63d5c947d3 updated music mask 2018-05-08 17:18:15 -04:00
Drashna Jaelre e5540dd055 Update to drashna keymaps and userspace (#2876)
* Fix Unicode sample

* Add irony mark

* Remove unpretty keymaps

* Add QMK DFU and Conditional Music Mode

* Unicode fixes

* Unicode fixes

* Make layer indication more modular

* Finish removing Faux Click

* Cleanup of UserSpace and addition of 'update_tri_layer_state' function

* Add modifier status indicators to Orthodox

* Remove tri layer function

* Minor tweaks

* Remove the Orthodox's Indicator's reliance on layer_state_set

* Add custom EEPROM settings

* Make EEPROM config more efficient

* Viterbi Config

* Add Iris Keyboard layout and Userspace cleanup

* Iris keyboard tweaks

* Use Grave Escape on Iris

* Update Readmes
2018-05-02 11:39:46 -04:00
M1K 5112af887a Added command history to terminal with other bug fixes, added new song to song_list.h (#2855)
* Implemented Terminal + added song to song_list.h

* Added wait() in order to prevent misbehaviour of 'command not found'
2018-05-01 13:39:46 -04:00
Drashna Jaelre 6f37bd6678 Fix Clicky Down code 2018-04-28 11:50:02 -04:00
Drashna Jaelre 33fdd1d255 Fix Audio Clicky sub-feature (#2784)
* Fix Audio Clicky feature

* Add to features
2018-04-21 12:30:10 -04:00
Drashna Jaelre 1bb77c0875
Update to drashna keymaps and userspace (#2756)
* Re-add NO_SECRETS option

* Add Thumb Clusters defines for default layout

* Minor tweaks

* More Minor tweaks

* Revert Orthodox layers and move function keys around

* Fix keymap so it will compile under the Infinity

Since I haven't added 'pretty' layouts to it yet

* Cleanup of userspace

* Cleanup keymaps

* OMG fix Workman

* Move mods layer key around

* Reduce debounce in Ergodox EZ

* Fix Infinity layers

* Add list of pins used by Ergdox EZ for easy reference

* Revert "Reduce debounce in Ergodox EZ"

This reverts commit 8a3db2673b419ef8032c40a6d29156cef632f9cd.

* Add Clicky toggle to Orthodox

* Fix Audio Clicky keycode

* Enable Faux Clicky by default

* Add Unicode stuff
2018-04-20 17:53:19 -07:00
Drashna Jaelre 8b0b17a369 Add Faux Clicking as subset of Audio feature (#2748)
* Add Faux Clicky to main Audio feature

* Make clicky settings user configurable

* Add additional documentation

* Don't play when music mode is enabled (hopefully)
2018-04-19 01:47:04 -04:00
adiron 3d3c093173 Added bending to MIDI (#2740)
This is done via MI_BENDD and MI_BENDU. At the moment the value is
hardcoded and cannot be adjusted (future commit?) and is the max for the
`midi_send_pitchbend` function (up or down).

`MI_BENDD` and `MI_BENDU` both require `#define MIDI_ADVANCED`

MIDI pitch bend was already implemented in `protocol/midi.c`, I merely
added the keycodes to trigger them. :) (thanks to Jack, two years ago
in commit fb4fe52c apparently)
2018-04-18 22:22:08 -04:00
Seebs c0baf2a964 Improve state/chord handling and clean up namespace
Some values that can never, ever, change were held in local
variables, rather than in PROGMEM. Fixed.

Change "pressed" to a signed int so the test for < 0 makes
sense, and to avoid possible weird failure modes in the
case where a key release comes in when pressed is already
zero. (Shouldn't happen, sure, but computers are weird.)

A lot of things in process_steno had external linkage for no
particular reason. They've been marked static. Stuff still
builds.

Distinguish between currently-held keys and keys that have
been held, and expose these values through a nicely-named API
so other code could, say, check on the current set of steno
chording in order to make displays. Also in passing fix up the
"state" value having external linkage so it could clash with
other people's variable declarations.

The API also provides hooks for key processing and steno chord
events, so you can monitor those events without having to
run in matrix_scan_user and recheck the values directly. Also
document these.

There is no path through processing a key that doesn't
end with a return false, so the nested return foo() are
gone and we just return false.
2018-04-07 17:12:44 -04:00
Jason Stillwell 66162b2b68 add grave to auto-shift. 2018-03-26 13:42:08 -04:00
Jason Stillwell 00b4dce605 Rule to enable Modifiers with Auto-Shift (#2542)
* Re-enable modifiers with auto-shift

* Auto-shift modifiers rule

* missed a line

* Documentation

* fixing whitespace
2018-03-16 16:41:01 -04:00
Brian Choromanski 6c74d734c2 Fixed various keymaps and the allocation of "key_combos" (#2526)
* Fixed plank keymaps so that they will compile for planck light

* 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
2018-03-16 16:20:09 -04:00
fredizzimo 53ff8a31b6 Merge ChibiOS and LUFA descriptor support (#2362)
* Move lufa descriptor to protocol/usb_descriptor

* Try to compile usb_descriptor on ChibiOS

* Add lufa_utils for ChibiOS

Lufa USB descriptors for ChibiOS

* More lufa_util compatibility fixes

* First compiling version of shared USB descriptor

* Send the usb descriptors

* Fix the CONSOLE output on ChibiOS

* Add errors for unsupported interfaces

* Enable support for vitual serial port USB descriptors

* Implement virtual serial port for ChibiOS

* Cleanup the lufa_utils

Use the default lufa header files

* Add raw hid support for ChibiOS

This is completely untested

* Enable midi compilation on ChibiOS

* Move midi functionality out of lufa.c

* Don't register sysex callback when not needed

* ChibiOS compilation fixes

* Update ChibiOS submodule

* Fix the Midi USB descriptor

It didn't work properly when both Midi and Virtual serial port was enabled.

* Add MIDI support for ChibiOS

* Fix USB descriptor strings on ChibiOS

* Use serial usb driver for raw hid

* Generalize the ChibiOS stream like drivers

This makes the initialization much more simple and eliminates a lot of
the code duplication.

* Convert console output to chibios stream driver

* Fixes for ChibiOS update

* Update the ChibiOS contrib submodule

To include the usb data toggle synchronization fixes

* Fix duplicate reset enumeration on ChibiOS

* Add missing include

* Add number of endpoints check for ChibiOS

* Enable serial USB driver on all keyboards

* Add missing includes when API is enabled withot midi

* Add another missing inlcude
2018-02-08 15:07:46 -05:00
scauligi 9fcda95363 Fixes to get tap dance to fire at proper places (#2272)
* tap dance fixes: fire immediately upon completion and also get properly interrupted before macros

* bugfix for tapdance improvement

* fix build
2018-02-04 13:45:19 -05:00
pmalecka a01dc4dd48 added the possibility to hav shifted(modded) tap dance 2018-01-12 12:56:21 -05:00
Drashna Jael're 4f484bc1c9 Add on/off/toggle keycodes for Auto Shift 2017-12-20 14:38:56 -05:00
U-LANDSRAAD\drashna a1fa70f94d Add toggle option to AutoShift 2017-12-20 14:38:56 -05:00
Jack Humbert 58898f77e3 fixes midi compile error 2017-12-10 11:32:36 -05:00
Jack Humbert a7c61f2947 fix up midi stuff w/music mode 2017-12-10 10:59:47 -05:00
Jody Foo f4949fdd32 Fix for issue https://github.com/qmk/qmk_firmware/issues/1751 2017-10-29 20:05:54 -04:00
Shihpin Tseng 750f8ec94e Fix process_combo.c compile warning 2017-10-29 20:05:26 -04:00
Jeremy Cowgar d0ca713eb4 KC_TILD should not have been listed as an auto shift key 2017-09-18 17:08:18 -04:00
Jeremy Cowgar abba393f57 Added Auto Shift, tap key = normal, hold key = shifted state. 2017-09-18 17:08:18 -04:00
Jack Humbert 7ad924bae5 Updates send_string functionality, adds terminal feature (#1657)
* implement basic terminal stuff

* modify send_string to read normal strings too

* add files bc yeah. working pgm detected

* pgm detection apparently not working

* adds send string keycodes, additional keycode support in send string

* implement arguments

* [terminal] add help command

* [terminal] adds keycode and keymap functions

* [terminal] adds nop.h, documentation

* update macro docs
2017-09-12 00:43:10 -04:00
Ptomerty 68b6de60e0 fix for toggle tap dance 2017-09-10 22:57:26 -04:00
Marco Fontani da83f04a30 add UC_OSX_RALT to make unicode use the Right Alt key on OSX 2017-08-30 11:38:03 -04:00
Joe Wasson fc70c9ac9e Allow steno to build when NKRO is not defined.
Was missing eeprom.h, MAX(), and memset.
2017-08-20 11:51:57 -04:00
Martin Sandiford 4757140107 Wrapped process_leader.c in #ifndef DISABLE_LEADER to allow compilation with DISABLE_LEADER defined. 2017-08-15 19:51:06 -04:00
Fredric Silberberg 114565fe81 Rename SHIFT macro to BV_64 2017-08-08 10:02:53 -04:00
Fredric Silberberg a3e1d9a8cc Added support for locking One Shot modifiers. 2017-08-08 10:02:53 -04:00
Fredric Silberberg 02f405708b Remove hex print code. 2017-08-08 10:02:53 -04:00
Fredric Silberberg 8e1be7c792 Initial implementation of the key_lock feature. 2017-08-08 10:02:53 -04:00
Gergely Nagy d28b2c395b tap-dance: key + layer helper
This adds the `ACTION_TAP_DANCE_DUAL_ROLE` helper, which makes it easy to have
keys that act as a key on the first tap, and as a layer toggle on the second.

Fixes #1532, reported by @Ptomerty.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2017-08-02 16:06:16 -04:00
Joe Wasson 3e96e8a6a1 Add copyright to steno files. 2017-07-27 16:10:36 -04:00
Joe Wasson f30f12ec81 Add support for GeminiPR steno protocol.
This protocol breaks out "duplicate" keys into their own entry in the packet so that more complicated logic can be done on the software side, including support for additional languages and alternative theories.
2017-07-27 16:10:36 -04:00
Joe Wasson 5987f67989 Add TX Bolt protocol support for Stenography
Requires virtser; Allows QMK to speak the TX BOlt protocol used by stenography machines and software (such as Plover). The upside is that Plover can be configured to listen only to TX Bolt allow the keyboard to switch layers without need to enable/disable the Plover software, or to have a second non-Steno keyboard work concurrently.
2017-07-27 16:10:36 -04:00
Jack Humbert cefc09ae7d adds option for alt pitch standards 2017-07-24 12:45:34 -04:00
Jack Humbert 415d38ba9e adds music mode, music mode songs, music mask 2017-07-23 14:59:29 -04:00
Jack Humbert fd664fe85b escape song playing in music 2017-07-23 14:59:29 -04:00
Jack Humbert 6a3c66776c clean-up planck and preonic keymaps, move audio stuff around 2017-07-23 14:59:29 -04:00
Nick Choi 5393bc6f4e switched to uint8 and 16 2017-05-29 21:25:50 -04:00
Nick Choi b3144112d3 removed need to set customtapping term 0. defaults to 0 already 2017-05-25 16:38:06 -04:00
Nick Choi 7c8b166cce changed -1 to 0 can't have negative unsigned ints 🤔 2017-05-25 16:29:57 -04:00
Nick Choi aeb3a34636 moved specific tap term to its own function
included custom_tapping_term in action struct
2017-05-25 16:26:30 -04:00
Nick Choi e695b5a33b Added per case tapping term, updated FF-nikchi keymap. 2017-05-25 00:41:00 -04:00
Nick Choi eb660ef218 emoji support but 2017-05-15 01:52:45 -04:00
Fred Sundvik 109ae2f1e8 Fix warnings in process_printer 2017-04-13 16:00:29 +03:00
Fred Sundvik a4ef86034c Fix undefined eeprom warnings in unicode processing 2017-04-13 16:00:29 +03:00
nielsenz d1e66e2e07 Worked around some new Makefile issues. 2017-03-30 20:10:34 -07:00
nielsenz 7e54332890 Pulling and pushing troubles 2017-03-30 19:15:43 -07:00
Zay950 2366ebfbbd Merge branch 'master' into to_push 2017-03-29 12:00:38 -07:00
skullydazed 23839b8c6d Clarify the quantum license (#1042)
* Clarify the license for files we have signoff on

* Update against the currently signed off files

* Remove unused and not clearly licensed headers

* Replace an #endif I accidentally removed while resolving merge conflicts
2017-03-28 15:20:36 -07:00
Jack Humbert 7e37daa2ce Merge pull request #1112 from newsboytko/newsboytko/midi-keycodes
Flesh out MIDI support
2017-03-28 09:26:54 -04:00
Gabriel Young d11962aeb2 fix 'stop_all_notes' naming to be more consistent 2017-03-02 11:40:06 -08:00
Gabriel Young a64ae10662 Update existing keymaps
Update existing keymaps to enable MIDI_BASIC functionality.  Also added
an option MIDI_ENABLE_STRICT to be strict about keycode use (which also
reduces memory footprint at runtime)
2017-02-25 20:41:13 -08:00
Gabriel Young ea14ed122f Add basic layer to sample MIDI keycap 2017-02-25 19:37:33 -08:00
Gabriel Young 1000799d1e Factor basic note processing into respective processors 2017-02-25 19:25:33 -08:00
Gabriel Young 525be99ee9 Split MIDI functionality into MIDI_BASIC and MIDI_ADVANCED
MIDI_ENABLE = no

   text	   data	    bss	    dec	    hex	filename
      0	  17080	      0	  17080	   42b8	satan_midi.hex

MIDI_ENABLE = yes
MIDI_BASIC undefined
MIDI_ADVANCED undefined

   text	   data	    bss	    dec	    hex	filename
      0	  19494	      0	  19494	   4c26	satan_midi.hex

MIDI_ENABLE = yes
#define MIDI_BASIC
MIDI_ADVANCED undefined

   text	   data	    bss	    dec	    hex	filename
      0	  19788	      0	  19788	   4d4c	satan_midi.hex

MIDI_ENABLE = yes
MIDI_BASIC undefined
#define MIDI_ADVANCED

   text	   data	    bss	    dec	    hex	filename
      0	  20846	      0	  20846	   516e	satan_midi.hex

MIDI_ENABLE = yes
#define MIDI_BASIC
#define MIDI_ADVANCED

   text	   data	    bss	    dec	    hex	filename
      0	  21140	      0	  21140	   5294	satan_midi.hex
2017-02-25 15:02:43 -08:00
Priyadi Iman Nurcahyo 296b927e77 Fix UNICODE_MAP input_mode problem 2017-02-23 18:10:00 +07:00
Gabriel Young ed15973a3f Document size added by MIDI_ENABLE (~3800 bytes according to my experiments)
satan/keymaps/midi

MIDI_ENABLE = no

   text	   data	    bss	    dec	    hex	filename
      0	  17080	      0	  17080	   42b8	satan_midi.hex

MIDI_ENABLE = yes
#define MIDI_TONE_KEYCODE_OCTAVES 3 // default

   text	   data	    bss	    dec	    hex	filename
      0	  20846	      0	  20846	   516e	satan_midi.hex

MIDI_ENABLE = yes
#define MIDI_TONE_KEYCODE_OCTAVES 2 // fewer octaves

   text	   data	    bss	    dec	    hex	filename
      0	  20846	      0	  20846	   516e	satan_midi.hex
2017-02-19 17:45:08 -08:00
Gabriel Young ae0752dff5 expose midi_config 2017-02-19 16:43:45 -08:00
Gabriel Young 5e6097f015 add keycodes for transpose range 2017-02-19 16:43:43 -08:00
Gabriel Young dd8f8e6bae implement modulation 2017-02-19 16:43:02 -08:00
Gabriel Young 7c5e510fe2 add support for pedal cc messages 2017-02-19 16:42:45 -08:00
Gabriel Young f67aefc522 remove disabled code 2017-02-19 16:42:04 -08:00
Gabriel Young a4163466cb Alternative version with a tone array
tone array:
   text	   data	    bss	    dec	    hex	filename
      0	  25698	      0	  25698	   6462	satan_newsboytko.hex
0x6480 bytes written into 0x7000 bytes memory (89.73%).

note on array:
   text	   data	    bss	    dec	    hex	filename
      0	  25802	      0	  25802	   64ca	satan_newsboytko.hex
0x6500 bytes written into 0x7000 bytes memory (90.18%).
2017-02-19 16:42:04 -08:00
Gabriel Young f2b2e05f12 clean up commented code 2017-02-19 16:42:04 -08:00
Gabriel Young e405ab4bc6 initial implementation of polyphony using variable length array of notes on 2017-02-19 16:41:59 -08:00
Jack Humbert 1ac5dc9e52 fix travis and reduce warnings 2017-02-16 11:37:46 -05:00
Jack Humbert 58823b4e03 fix weirdness with arm and mods 2017-02-15 23:20:35 -05:00
Jack Humbert f89499e255 unique variable name 2017-02-15 18:14:07 -05:00
Jack Humbert c2a9acffd7 publicise variables 2017-02-15 17:39:51 -05:00
Jack Humbert 1bb574fe48 add unicode common file, get names right 2017-02-15 17:09:47 -05:00
Jack Humbert 09add35e7f add unicode common file, get names right 2017-02-15 17:09:35 -05:00
Jack Humbert cbabb4d417 split up unicode systems into different files 2017-02-15 16:36:31 -05:00
Priyadi Iman Nurcahyo 97816df7e7 Implement tap mod dual role for right side mods. 2017-02-10 06:06:59 +07:00
Jack Humbert 4348fb54d6 Merge pull request #960 from ofples/feature/combos
Keyboard combination triggers
2017-02-06 19:31:45 -05:00
Jack Humbert 0a3c5c06fe Merge pull request #981 from jonasoberschweiber/osx-surrogate-pairs
Add support for Unicode supplementary planes on OS X
2017-02-06 18:00:47 -05:00
SjB 5a860b71a1 race condition between oneshot_mods and tap_dance
since the keycode for a tap dance process gets process only after the
TAPPING_TERM timeout, you really only have ONESHOT_TIMEOUT -
TAPPING_TERM time to tap or double tap on the key. This fix save the
oneshot_mods into the action.state structure and applies the mods with
the keycode when it's registered. It also unregisters the mod when the
the tap dance process gets reset.
2017-01-29 13:26:31 -05:00
Jack Humbert 841d7e6a1d turn off rgb_midi in ez 2017-01-23 13:55:24 -05:00
Priyadi Iman Nurcahyo 30b80a23f3 Unregister all mods before inputting Unicode, and reregister afterwards 2017-01-09 02:59:10 +07:00
Jonas Oberschweiber 0aa413af44 Add support for supplementary planes for OS X 2016-12-31 19:37:56 +01:00
Jack Humbert 273faa4d9c add different scales for music mode 2016-12-23 20:59:00 -05:00
Ofer Plesser 6a462c818c Merge branch 'master' into feature/combos 2016-12-16 21:52:51 +02:00
Ofer Plesser 6e7cfa83b9 Refactored as well as added support for action keys in combos 2016-12-16 21:50:28 +02:00
Jack Humbert ae95834f5a specialise music variables 2016-12-12 16:06:41 -05:00
Ofer Plesser b6bf4e0dce Added support for timing out combos if a key as been pressed for longer than COMBO_TERM 2016-12-10 16:11:59 +02:00
Ofer Plesser eac8fa7999 Implemented basic key combination feature 2016-12-10 00:49:11 +02:00