Commit Graph

126 Commits (5aada76f12239f2faa43d0c312b6168367017a40)

Author SHA1 Message Date
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.
7 years ago
Jason Stillwell 66162b2b68 add grave to auto-shift. 7 years ago
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
7 years ago
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
7 years ago
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
7 years ago
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
7 years ago
pmalecka a01dc4dd48 added the possibility to hav shifted(modded) tap dance 7 years ago
Drashna Jael're 4f484bc1c9 Add on/off/toggle keycodes for Auto Shift 7 years ago
U-LANDSRAAD\drashna a1fa70f94d Add toggle option to AutoShift 7 years ago
Jack Humbert 58898f77e3 fixes midi compile error 7 years ago
Jack Humbert a7c61f2947 fix up midi stuff w/music mode 7 years ago
Jody Foo f4949fdd32 Fix for issue https://github.com/qmk/qmk_firmware/issues/1751 7 years ago
Shihpin Tseng 750f8ec94e Fix process_combo.c compile warning 7 years ago
Jeremy Cowgar d0ca713eb4 KC_TILD should not have been listed as an auto shift key 7 years ago
Jeremy Cowgar abba393f57 Added Auto Shift, tap key = normal, hold key = shifted state. 7 years ago
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
7 years ago
Ptomerty 68b6de60e0 fix for toggle tap dance 7 years ago
Marco Fontani da83f04a30 add UC_OSX_RALT to make unicode use the Right Alt key on OSX 7 years ago
Joe Wasson fc70c9ac9e Allow steno to build when NKRO is not defined.
Was missing eeprom.h, MAX(), and memset.
7 years ago
Martin Sandiford 4757140107 Wrapped process_leader.c in #ifndef DISABLE_LEADER to allow compilation with DISABLE_LEADER defined. 7 years ago
Fredric Silberberg 114565fe81 Rename SHIFT macro to BV_64 7 years ago
Fredric Silberberg a3e1d9a8cc Added support for locking One Shot modifiers. 7 years ago
Fredric Silberberg 02f405708b Remove hex print code. 7 years ago
Fredric Silberberg 8e1be7c792 Initial implementation of the key_lock feature. 7 years ago
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>
7 years ago
Joe Wasson 3e96e8a6a1 Add copyright to steno files. 7 years ago
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.
7 years ago
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.
7 years ago
Jack Humbert cefc09ae7d adds option for alt pitch standards 7 years ago
Jack Humbert 415d38ba9e adds music mode, music mode songs, music mask 7 years ago
Jack Humbert fd664fe85b escape song playing in music 7 years ago
Jack Humbert 6a3c66776c clean-up planck and preonic keymaps, move audio stuff around 7 years ago
Nick Choi 5393bc6f4e switched to uint8 and 16 8 years ago
Nick Choi b3144112d3 removed need to set customtapping term 0. defaults to 0 already 8 years ago
Nick Choi 7c8b166cce changed -1 to 0 can't have negative unsigned ints 🤔 8 years ago
Nick Choi aeb3a34636 moved specific tap term to its own function
included custom_tapping_term in action struct
8 years ago
Nick Choi e695b5a33b Added per case tapping term, updated FF-nikchi keymap. 8 years ago
Nick Choi eb660ef218 emoji support but 8 years ago
Fred Sundvik 109ae2f1e8 Fix warnings in process_printer 8 years ago
Fred Sundvik a4ef86034c Fix undefined eeprom warnings in unicode processing 8 years ago
nielsenz d1e66e2e07 Worked around some new Makefile issues. 8 years ago
nielsenz 7e54332890 Pulling and pushing troubles 8 years ago
Zay950 2366ebfbbd Merge branch 'master' into to_push 8 years ago
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
8 years ago
Jack Humbert 7e37daa2ce Merge pull request #1112 from newsboytko/newsboytko/midi-keycodes
Flesh out MIDI support
8 years ago
Gabriel Young d11962aeb2 fix 'stop_all_notes' naming to be more consistent 8 years ago
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)
8 years ago
Gabriel Young ea14ed122f Add basic layer to sample MIDI keycap 8 years ago
Gabriel Young 1000799d1e Factor basic note processing into respective processors 8 years ago
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
8 years ago