Commit Graph
1545 Commits
Author SHA1 Message Date
Gergely Nagy a59dcd1662 Lift out the LED brightness into a global
Instead of passing the same constant to LedDisplay_SetLayerLed() all the time,
lift it out into a global.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 23:23:16 +01:00
Gergely Nagy 2a7edbce6f Light up LEDs on the display when switching layers
When switching layers, light up the appropriate LED on the display. For this
purpose, start led_display.[ch], which as a start, has a function to set the
brightness of a layer led.

The function will also turn all other LEDs off, and turn all of them off when on
the base layer.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 20:34:43 +01:00
László Monda cbdb013977 Merge pull request #21 from algernon/f/layering
Layer handling simplified, and streamlined
2016-12-13 20:05:34 +01:00
Gergely Nagy d98955a947 Move ActiveLayer back to keyboard_layout.c too
That is the only place we use it from, no need to expose it outside of that.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 19:59:06 +01:00
Gergely Nagy c77027992b Move layer handling back to keyboard_layout.c
And while there, also drop the helper functions, and just do the activation in
the handler function. This simplifies the code a bit, as there is little point
in lifting out an assignment into a function at this time.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 19:54:34 +01:00
Gergely Nagy 04eb1bab74 Move layer handling to a separate file
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 18:42:32 +01:00
Gergely Nagy 6a502924d2 Simplify the layer handling
There can only be one layer active at any one time, simplify the code
accordingly.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 18:39:05 +01:00
László Monda 58d5cb4de2 Merge pull request #19 from algernon/f/clang-format
Add a clang-format config file
2016-12-13 14:57:05 +01:00
Gergely Nagy 26b666203e Add a clang-format config file
This helps with formatting sources to be closer to the coding style
explained in CONTRIBUTING.md. It's not perfect, but provides a
reasonable base.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 14:50:14 +01:00
László Monda b9887efa2e Merge pull request #18 from algernon/f/keymap-refactor
Big Keymap Restructure
2016-12-13 14:50:04 +01:00
Gergely Nagy 690addefd9 Coding style fixes
Don't put a space between the function and the opening parens.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-13 12:52:03 +01:00
Gergely Nagy 9f61c3227c Changes based on the review notes
This does a lot of things - all of this together, because it would have been
much harder to split them up into many small commits.

We get rid of the helper macros used in default_layout.c, drop the .raw member
of uhk_key_t, use a singleton keymap, and prepare the prevKeyStates to handle
all slots. Also drops the TRNS macro.

With these changes, default_layout.h became obsolete, and was deleted too.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-12 23:16:26 +01:00
Gergely Nagy 0b09fb0055 Remove some now obsolete defines
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-12 21:55:30 +01:00
Gergely Nagy 265988ee25 Better key state tracking
We need to store the previous state of the keys, to figure out when a specific
key is released, as opposed to simply not being pressed. This is required for
layer keys such as `Mod` and `Fn` to work properly when there are more than one
of them on the keymap.

Without being able to tell when a key is released, we would not be able to turn
a layer off only when no layer key is held. Not easily, anyway: we'd have to
track the state of all layer keys... but then it is easier to just track them
all.

Thankfully, the memcpy at the end is fast, as it only needs to copy 70 bytes.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-12 20:14:09 +01:00
Gergely Nagy 6aedaf7074 Big Keymap Refactor(tm)
This changes the keymap layout to be as described in #17, and updates the
default layout to follow. (Also adds the missing Space and Mod keys on the two
keys below the bottom row)

The layout itself was considerably simplified by introducing a few local macros
to hide some of the uglier details.

Fixes #17.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-12 20:10:42 +01:00
László Monda 1f8fc560e4 Clean up some concepts regarding slots and modules. 2016-12-12 01:01:36 +01:00
László Monda 871a0ec84a Remove variables because they yield warnings which shouldn't happen according to our contributing guide. 2016-12-12 00:25:13 +01:00
László Monda 851d3a9051 Update CONTRIBUTING.md 2016-12-12 00:24:12 +01:00
László Monda f66eb06712 Coding style fixes. 2016-12-12 00:21:39 +01:00
László Monda de6218ce0c Convert tabs to 4 spaces. 2016-12-11 23:59:28 +01:00
László Monda ee87e79791 Update README.md 2016-12-11 23:50:21 +01:00
László Monda bb37d89de9 Update CONTRIBUTING.md 2016-12-11 23:47:59 +01:00
László Monda c8b773d266 Update CONTRIBUTING.md 2016-12-11 23:44:40 +01:00
László Monda 93594bbfc8 Update CONTRIBUTING.md 2016-12-11 23:39:24 +01:00
László Monda a257e55403 Update CONTRIBUTING.md 2016-12-11 23:33:13 +01:00
László Monda 7bebaff8dd Update CONTRIBUTING.md 2016-12-11 23:21:33 +01:00
László Monda 39ad8c6735 Update CONTRIBUTING.md 2016-12-11 23:14:29 +01:00
László Monda 39a9d196f7 Update CONTRIBUTING.md 2016-12-11 22:51:16 +01:00
László Monda 463a9fb8d4 Merge pull request #14 from algernon/f/key-handling-rework
Rework the keyboard layout handling
2016-12-11 19:56:35 +01:00
Gergely Nagy e758e088a7 Rework the keyboard layout handling
We now use a 32-bit structure to describe each key, and an `uhk_key_t` type that
wraps all the supported things into a union. But this is not the only change: to
be able to move the Fn/Mod keys anywhere, instead of hardcoding their location,
they are now proper layer keys. To make it easier to handle turning a layer off,
key releases can be handled explicitly, too.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-11 19:22:31 +01:00
László Monda b3ed9536c6 Merge pull request #13 from algernon/f/LED/SetAllLedsTo
LEDs: Add a method to set all LEDs to a given brightness
2016-12-11 11:52:56 +01:00
Gergely Nagy 5ee11c2f8f LEDs: Add a method to set all LEDs to a given brightness
Mostly for testing purposes, but can be used later for backlight up/down stuff,
too.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-12-11 09:57:48 +01:00
László Monda ed0b51dbff Restore the original I2c{Read,Write}() implementations to make the communication between keyboard halves fully functional again. Fixes #8. 2016-12-09 22:24:15 +01:00
László Monda 6c6afd6395 Make comments more explicit. 2016-12-09 21:59:19 +01:00
László Monda 71e0ae79d7 Merge branch 'master' of github.com:UltimateHackingKeyboard/firmware 2016-12-09 21:44:31 +01:00
László Monda c47105afd3 Change I2cRead() and I2cWrite() to more closely resemble I2C_MasterReadBlocking() and I2C_MasterWriteBlocking() respectively. This way, we should be able to figure out the root cause of the communication error regarding the blink script more easily. 2016-12-09 21:44:03 +01:00
László Monda a8b19750a9 Update README.md 2016-11-20 18:30:41 +01:00
László Monda eff18c176d Update README.md 2016-11-20 18:26:24 +01:00
László Monda 5b19c60f87 Update README.md 2016-11-20 18:26:09 +01:00
László Monda c18d36e31b Merge pull request #6 from xdever/modifier_mask
Fix the bug of additional characters when mod key is released before the other key.
2016-11-14 22:55:04 +01:00
Robert Csordas f2c750cdf9 Refactoring 2016-11-14 22:41:39 +01:00
Robert Csordas 5cf1da0cfe Fixes the bug of additional characters when mod key is released before the other key 2016-11-14 22:09:33 +01:00
László Monda 75b87be468 Merge pull request #5 from xdever/i2c_fix
Fix i2c hangs when disconnecting the left half.
2016-11-13 21:12:57 +01:00
Robert Csordas 1d2f35dfe9 Fix i2c hangs when disconnecting the left half. 2016-11-13 18:35:22 +01:00
László Monda dbb30ef861 Merge pull request #4 from xdever/simple_keymap
Add QWERTY keymap
2016-11-13 17:45:09 +01:00
Robert Csordas 93752a7347 CPU suspend for left half 2016-11-13 15:56:31 +01:00
Robert Csordas fc434c7857 Remove keyboard scanning from USB interrupt. Fix initial blink of LEDs when initializing. Coding style fixes. 2016-11-13 15:50:49 +01:00
Robert Csordas f2d3963b14 Remove eclipse's bullshit. 2016-11-13 11:29:02 +01:00
Robert Csordas 190d555221 Refactoring and bugfixes. 2016-11-13 11:25:29 +01:00
Robert Csordas b3bc436bbb Fix typo+basic power management 2016-11-12 20:31:59 +01:00