X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=common%2Fcommand.c;h=b82d1884cec5648a5d81c275080b661716fb04d1;hb=1385058fc21f80347c7afd2b818e38795ce9d55a;hp=5cdd168d46297dcbf1992bdce80f5ccc1181dfe9;hpb=6caefe9649d88673719e969502d220c5e9dcd124;p=max%2Ftmk_keyboard.git diff --git a/common/command.c b/common/command.c index 5cdd168d..b82d1884 100644 --- a/common/command.c +++ b/common/command.c @@ -19,13 +19,17 @@ along with this program. If not, see . #include #include "keycode.h" #include "host.h" +#include "keymap.h" #include "print.h" #include "debug.h" #include "util.h" #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 @@ -52,8 +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 clear_keyboard(void); +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,28 @@ static void command_common_help(void) print("Paus: jump to bootloader\n"); } +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_modifier(); + print("modifiers: "); print_hex8(eebyte); print("\n"); +} + static bool command_common(uint8_t code) { static host_driver_t *host_driver = 0; switch (code) { + case KC_E: + print("eeprom config\n"); + print_eeprom_config(); + break; case KC_CAPSLOCK: if (host_get_driver()) { host_driver = host_get_driver(); @@ -261,25 +283,16 @@ static bool command_common(uint8_t code) #endif break; #endif + case KC_ESC: + case KC_GRV: case KC_0: - case KC_F10: - switch_layer(0); + switch_default_layer(0); break; - case KC_1: - case KC_F1: - switch_layer(1); + case KC_1 ... KC_9: + switch_default_layer((code - KC_1) + 1); break; - case KC_2: - case KC_F2: - switch_layer(2); - break; - case KC_3: - case KC_F3: - switch_layer(3); - break; - case KC_4: - case KC_F4: - switch_layer(4); + case KC_F1 ... KC_F12: + switch_default_layer((code - KC_F1) + 1); break; default: print("?"); @@ -548,26 +561,10 @@ static uint8_t numkey2num(uint8_t code) return 0; } -static void switch_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); -} - -static void clear_keyboard(void) +static void switch_default_layer(uint8_t layer) { - host_clear_keys(); - host_clear_mods(); - host_send_keyboard_report(); - - host_system_send(0); - host_consumer_send(0); - -#ifdef MOUSEKEY_ENABLE - mousekey_clear(); - mousekey_send(); -#endif + print("switch_default_layer: "); print_dec(default_layer); print(" to "); print_dec(layer); print("\n"); + default_layer_set(layer); + overlay_clear(); + clear_keyboard(); }