Commit Graph

13 Commits (f46a67d5ebcae47688e9b6b43b7806771053f42a)

Author SHA1 Message Date
Ben Blazak 018b763423 changed numpad functions; linked-lists, etc. in progress
- the numpad functions are reorganized, and there are more of them now,
  so the numpad can be treated either as something that's toggled or
  something that's locked
- the numpad functions may need to be split into a separate file, to
  keep things pretty.  i'll look into it later.
- the linked-list functions are being written so that hopefully i can
  change the concept of how layers (with transitions and masking) are
  handled.  they're incomplete in this check in because i took a break
  to fix the numpad functions for dox
2012-07-08 17:54:23 -07:00
Ben Blazak d4b9d88464 added a jump to bootloader key-function 2012-07-05 17:10:18 -07:00
Ben Blazak 039aba752b added numpad (and a private key-function for layer masking)
tested on breadboard.  appears to work!
2012-07-05 15:48:18 -07:00
Ben Blazak 6e087c7dd4 removed `kbfun_layer_set()` since it was redundant
it had no effective difference from `kbfun_layer_inc()`, because values
in the keycode matrix can only be positive (of type uint8_t)
2012-06-22 17:43:12 -07:00
Ben Blazak 06bfe3c037 separated kbfun_layer_inc_exec() and ...dec_exec()
also added another layer to _kb_layout_release[][][], mostly NULL, but
including at least one of each available kbfun*().  this way, all the
functions appear to be used, and none of them get optimised out by the
compiler
2012-06-21 20:42:56 -07:00
Ben Blazak d1fa583bb3 mostly kbfun*() changes and additions
- changed KBFUN_FUNCTION_ARGS again

- changed kbfun's
  - condensed `kbfun_press()` and `kbfun_release()` to `kbfun_press_release()`
  - added `kbfun_toggle()`, which toggles keycodes on or off
  - added `kbfun_layer_inc_dec_press_release()` which is like
    ...press_release(), except it increments the layer first (and
    decrements it on keyrelease)
  - added `_kbfun_exec_key()` (which is a public kbfun*(), but not for
    assignment to keycodes) for convenience.  used by main(), and
    currently 1 of the kbfun*()s.  it doesn't save a lot of code, but i
    think it makes things slightly easier to read.  not quite as elegant
    a solution as i'd like, but it might have to do

- changed keymap accordingly

- changed main()
  - now using `_kbfun_exec_key()` (instead of essentially inlining the code)
  - now sending the USB report once every cycle.  i was sending once for
    every keypress (lol, by mistake: what i meant to do was only send it
    if any keys had been pressed).
2012-06-20 16:56:24 -07:00
Ben Blazak 068a3546f6 bug fixes, mostly; and other things
- addition to references.md

- keymap modification
  - now using 2 shifts => capslock
  - the previous capslock key -> tab
  - the previous tab key -> left bracket

- bug and omission fixes; notably:
  - _is_pressed() no longer changes the value of
    `keyboard_modifier_keys`, lol
  - kbfun_2_keys_capslock_press_release() now works.  (capslock doesn't
    register if left or right shift is pressed, so the shift state has
    to be stored, cleared, capslock pressed, and shift state restored)
  - main() no longer locally overwrites the value of `current_layer`
    before sending it to the kbfun.  (i didn't realize i was using the
    same variable name for two different things)

- improvements
  - kbfun_layer_inc() and ...dec() are now variable
2012-06-15 14:36:50 -07:00
Ben Blazak 28e198ee72 added set layer function; more lib/keyfunctions* changes 2012-06-14 22:02:57 -07:00
Ben Blazak 223f03ac74 wrote kbfun for 2 shifts => capslock; other kbfun mods 2012-06-14 16:01:34 -07:00
Ben Blazak 3322844ed0 bugfix (mostly): changed the way layers are handled
before, if you pressed a key, then shifted layers, then released it, the
first layer's press() would be called, and the 2nd layer's release()
would be called, causing keys to stick, and probably other errors.  now,
the layer that the key was on when it was pressed is kept track of, and
the proper release() is called.

also, layers can be shifted per key now, instead of just for the whole
board at once

i also changed how keyboard-private includes are handled.  "private"
stuff is now in its own file, instead of being nested in an extra
`#ifdef`.

and i think that's it.  i'm pretty tired right now, so there may be
errors, but it seemed to work all right with cursory tests.
2012-06-11 03:27:34 -07:00
Ben Blazak bdcd4484be added a layout layer; layout's still kind of a mess...
layout includes function keys, some symbols, and a few things from the
default layer
2012-06-03 23:46:21 -07:00
Ben Blazak 0b423bef70 moved keyboard layout to program space 2012-04-29 00:17:17 -07:00
Ben Blazak 229a2446a7 moved libs around; split some code in layouts 2012-04-28 23:40:00 -07:00