~ruther/qmk_firmware

e5bafff725f7b9cbfc364e64c74ea7f68bfc9900 — Shayne Holmes 11 years ago 894a387
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.
6 files changed, 15 insertions(+), 1 deletions(-)

M README.md
M common/bootmagic.c
M common/bootmagic.h
M common/command.c
M common/eeconfig.h
M common/keymap.h
M README.md => README.md +1 -0
@@ 151,6 151,7 @@ To avoid configuring accidentally additive salt key `KC_SPACE` also needs to be 
- Disable Gui(`Left Gui`)
- Swap Grave and Escape(`Grave`)
- Swap BackSlash and BackSpace(`Back Slash`)
- Enable NKRO on boot(`N`)

#### Default Layer
- Set Default Layer to 0(`0`)

M common/bootmagic.c => common/bootmagic.c +8 -0
@@ 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); }

M common/bootmagic.h => common/bootmagic.h +3 -0
@@ 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


/*

M common/command.c => common/command.c +1 -0
@@ 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;

M common/eeconfig.h => common/eeconfig.h +1 -0
@@ 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);

M common/keymap.h => common/keymap.h +1 -1
@@ 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;