diff options
author | Shayne Holmes <simon.snth@xoxy.net> | 2014-04-09 15:54:16 -0700 |
---|---|---|
committer | Shayne Holmes <simon.snth@xoxy.net> | 2014-04-09 15:54:16 -0700 |
commit | e5bafff725f7b9cbfc364e64c74ea7f68bfc9900 (patch) | |
tree | a83f4e5b6b181f2aed5b12b12f10ba43972aef64 /common | |
parent | 894a387d1fd8c823b5339e524e1f9336601ce2ef (diff) |
Adding NKRO virtual dip-switch, using existing bit in keymap byte.
This takes the last, reserved bit there, but doesn't necessitate
a revision to the magic number because it doesn't alter byte order.
Add reference to NKRO virtual dip-switch to documentation.
Diffstat (limited to 'common')
-rw-r--r-- | common/bootmagic.c | 8 | ||||
-rw-r--r-- | common/bootmagic.h | 3 | ||||
-rw-r--r-- | common/command.c | 1 | ||||
-rw-r--r-- | common/eeconfig.h | 1 | ||||
-rw-r--r-- | common/keymap.h | 2 |
5 files changed, 14 insertions, 1 deletions
diff --git a/common/bootmagic.c b/common/bootmagic.c index 036d490440..642d5face4 100644 --- a/common/bootmagic.c +++ b/common/bootmagic.c @@ -5,6 +5,7 @@ #include "bootloader.h" #include "debug.h" #include "keymap.h" +#include "host.h" #include "action_layer.h" #include "eeconfig.h" #include "bootmagic.h" @@ -76,8 +77,15 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE)) { keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace; } + if (bootmagic_scan_keycode(BOOTMAGIC_HOST_NKRO)) { + keymap_config.nkro = !keymap_config.nkro; + } eeconfig_write_keymap(keymap_config.raw); +#ifdef NKRO_ENABLE + keyboard_nkro = keymap_config.nkro; +#endif + /* default layer */ uint8_t default_layer = 0; if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_0)) { default_layer |= (1<<0); } diff --git a/common/bootmagic.h b/common/bootmagic.h index 7c19223973..8f6618f4bd 100644 --- a/common/bootmagic.h +++ b/common/bootmagic.h @@ -60,6 +60,9 @@ #ifndef BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE #define BOOTMAGIC_KEY_SWAP_BACKSLASH_BACKSPACE KC_BSLASH #endif +#ifndef BOOTMAGIC_HOST_NKRO +#define BOOTMAGIC_HOST_NKRO KC_N +#endif /* diff --git a/common/command.c b/common/command.c index f6f2769513..872880eae2 100644 --- a/common/command.c +++ b/common/command.c @@ -151,6 +151,7 @@ static void print_eeconfig(void) print(".no_gui: "); print_dec(kc.no_gui); print("\n"); print(".swap_grave_esc: "); print_dec(kc.swap_grave_esc); print("\n"); print(".swap_backslash_backspace: "); print_dec(kc.swap_backslash_backspace); print("\n"); + print(".nkro: "); print_dec(kc.nkro); print("\n"); #ifdef BACKLIGHT_ENABLE backlight_config_t bc; diff --git a/common/eeconfig.h b/common/eeconfig.h index e1b5ae282f..3cd1a174f6 100644 --- a/common/eeconfig.h +++ b/common/eeconfig.h @@ -47,6 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define EECONFIG_KEYMAP_NO_GUI (1<<4) #define EECONFIG_KEYMAP_SWAP_GRAVE_ESC (1<<5) #define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) +#define EECONFIG_KEYMAP_NKRO (1<<7) bool eeconfig_is_enabled(void); diff --git a/common/keymap.h b/common/keymap.h index bf32acedad..4c3019a364 100644 --- a/common/keymap.h +++ b/common/keymap.h @@ -35,7 +35,7 @@ typedef union { bool no_gui:1; bool swap_grave_esc:1; bool swap_backslash_backspace:1; - bool reserved:1; + bool nkro:1; }; } keymap_config_t; keymap_config_t keymap_config; |