X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Fcommand.c;h=372ca291e2cf4e0417f8f744921987134b5b153d;hb=b78c654693014c60ced089648c29f46939d23437;hp=7bb2a23f1909ec21629aa375303f7c43fb24670a;hpb=f02431e9da2158ff8a8508629b86329fef0ba24a;p=tmk_firmware.git diff --git a/common/command.c b/common/command.c index 7bb2a23..372ca29 100644 --- a/common/command.c +++ b/common/command.c @@ -26,19 +26,22 @@ along with this program. If not, see . #include "timer.h" #include "keyboard.h" #include "bootloader.h" +#include "layer_switch.h" +#include "eeconfig.h" #include "command.h" + #ifdef MOUSEKEY_ENABLE #include "mousekey.h" #endif -#ifdef HOST_PJRC +#ifdef PROTOCOL_PJRC # include "usb_keyboard.h" # ifdef EXTRAKEY_ENABLE # include "usb_extra.h" # endif #endif -#ifdef HOST_VUSB +#ifdef PROTOCOL_VUSB # include "usbdrv.h" #endif @@ -53,7 +56,7 @@ static void mousekey_console_help(void); #endif static uint8_t numkey2num(uint8_t code); -static void switch_layer(uint8_t layer); +static void switch_default_layer(uint8_t layer); typedef enum { ONESHOT, CONSOLE, MOUSEKEY } cmdstate_t; @@ -106,6 +109,7 @@ static void command_common_help(void) print("v: print device version & info\n"); print("t: print timer count\n"); print("s: print status\n"); + print("e: print eeprom boot config\n"); #ifdef NKRO_ENABLE print("n: toggle NKRO\n"); #endif @@ -119,10 +123,41 @@ static void command_common_help(void) print("Paus: jump to bootloader\n"); } +#ifdef BOOTMAGIC_ENABLE +static void print_eeprom_config(void) +{ + uint8_t eebyte; + + eebyte = eeconfig_read_debug(); + print("debug: "); print_hex8(eebyte); print("\n"); + + eebyte = eeconfig_read_defalt_layer(); + print("defalt_layer: "); print_hex8(eebyte); print("\n"); + + eebyte = eeconfig_read_keyconf(); + print("keyconf: "); print_hex8(eebyte); print("\n"); + + keyconf kc = (keyconf){ .raw = eebyte }; + print("keyconf.swap_control_capslock: "); print_hex8(kc.swap_control_capslock); print("\n"); + print("keyconf.capslock_to_control: "); print_hex8(kc.capslock_to_control); print("\n"); + print("keyconf.swap_lalt_lgui: "); print_hex8(kc.swap_lalt_lgui); print("\n"); + print("keyconf.swap_ralt_rgui: "); print_hex8(kc.swap_ralt_rgui); print("\n"); + print("keyconf.no_gui: "); print_hex8(kc.no_gui); print("\n"); + print("keyconf.swap_grave_esc: "); print_hex8(kc.swap_grave_esc); print("\n"); + print("keyconf.swap_backslash_backspace: "); print_hex8(kc.swap_backslash_backspace); print("\n"); +} +#endif + static bool command_common(uint8_t code) { static host_driver_t *host_driver = 0; switch (code) { +#ifdef BOOTMAGIC_ENABLE + case KC_E: + print("eeprom config\n"); + print_eeprom_config(); + break; +#endif case KC_CAPSLOCK: if (host_get_driver()) { host_driver = host_get_driver(); @@ -216,7 +251,7 @@ static bool command_common(uint8_t code) case KC_S: print("\n\n----- Status -----\n"); print_val_hex8(host_keyboard_leds()); -#ifdef HOST_PJRC +#ifdef PROTOCOL_PJRC print_val_hex8(UDCON); print_val_hex8(UDIEN); print_val_hex8(UDINT); @@ -226,7 +261,7 @@ static bool command_common(uint8_t code) print_val_hex8(usb_keyboard_idle_count); #endif -#ifdef HOST_VUSB +#ifdef PROTOCOL_PJRC # if USB_COUNT_SOF print_val_hex8(usbSofCount); # endif @@ -245,7 +280,7 @@ static bool command_common(uint8_t code) #ifdef EXTRAKEY_ENABLE case KC_PSCREEN: // TODO: Power key should take this feature? otherwise any key during suspend. -#ifdef HOST_PJRC +#ifdef PROTOCOL_PJRC if (suspend && remote_wakeup) { usb_remote_wakeup(); } else { @@ -261,18 +296,16 @@ static bool command_common(uint8_t code) #endif break; #endif + case KC_ESC: + case KC_GRV: case KC_0: - case KC_F10: - clear_keyboard(); - switch_layer(0); + switch_default_layer(0); break; case KC_1 ... KC_9: - clear_keyboard(); - switch_layer((code - KC_1) + 1); + switch_default_layer((code - KC_1) + 1); break; - case KC_F1 ... KC_F9: - clear_keyboard(); - switch_layer((code - KC_F1) + 1); + case KC_F1 ... KC_F12: + switch_default_layer((code - KC_F1) + 1); break; default: print("?"); @@ -541,11 +574,10 @@ static uint8_t numkey2num(uint8_t code) return 0; } -static void switch_layer(uint8_t layer) +static void switch_default_layer(uint8_t layer) { - print_val_hex8(current_layer); - print_val_hex8(default_layer); - current_layer = layer; - default_layer = layer; - print("switch to "); print_val_hex8(layer); + print("switch_default_layer: "); print_dec(default_layer); print(" to "); print_dec(layer); print("\n"); + default_layer_set(layer); + overlay_clear(); + clear_keyboard(); }