|
|
|
@ -63,19 +63,22 @@ static uint8_t numkey2num(uint8_t code);
|
|
|
|
|
static void switch_default_layer(uint8_t layer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum { ONESHOT, CONSOLE, MOUSEKEY } cmdstate_t;
|
|
|
|
|
static cmdstate_t state = ONESHOT;
|
|
|
|
|
command_state_t command_state = ONESHOT;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool command_proc(uint8_t code)
|
|
|
|
|
{
|
|
|
|
|
switch (state) {
|
|
|
|
|
switch (command_state) {
|
|
|
|
|
case ONESHOT:
|
|
|
|
|
if (!IS_COMMAND())
|
|
|
|
|
return false;
|
|
|
|
|
return (command_extra(code) || command_common(code));
|
|
|
|
|
break;
|
|
|
|
|
case CONSOLE:
|
|
|
|
|
command_console(code);
|
|
|
|
|
if (IS_COMMAND())
|
|
|
|
|
return (command_extra(code) || command_common(code));
|
|
|
|
|
else
|
|
|
|
|
return (command_console_extra(code) || command_console(code));
|
|
|
|
|
break;
|
|
|
|
|
#ifdef MOUSEKEY_ENABLE
|
|
|
|
|
case MOUSEKEY:
|
|
|
|
@ -83,12 +86,13 @@ bool command_proc(uint8_t code)
|
|
|
|
|
break;
|
|
|
|
|
#endif
|
|
|
|
|
default:
|
|
|
|
|
state = ONESHOT;
|
|
|
|
|
command_state = ONESHOT;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* TODO: Refactoring is needed. */
|
|
|
|
|
/* This allows to define extra commands. return false when not processed. */
|
|
|
|
|
bool command_extra(uint8_t code) __attribute__ ((weak));
|
|
|
|
|
bool command_extra(uint8_t code)
|
|
|
|
@ -96,6 +100,12 @@ bool command_extra(uint8_t code)
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool command_console_extra(uint8_t code) __attribute__ ((weak));
|
|
|
|
|
bool command_console_extra(uint8_t code)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
|
* Command common
|
|
|
|
@ -203,7 +213,7 @@ static bool command_common(uint8_t code)
|
|
|
|
|
command_console_help();
|
|
|
|
|
print("\nEnter Console Mode\n");
|
|
|
|
|
print("C> ");
|
|
|
|
|
state = CONSOLE;
|
|
|
|
|
command_state = CONSOLE;
|
|
|
|
|
break;
|
|
|
|
|
case KC_PAUSE:
|
|
|
|
|
clear_keyboard();
|
|
|
|
@ -388,14 +398,14 @@ static bool command_console(uint8_t code)
|
|
|
|
|
case KC_Q:
|
|
|
|
|
case KC_ESC:
|
|
|
|
|
print("\nQuit Console Mode\n");
|
|
|
|
|
state = ONESHOT;
|
|
|
|
|
command_state = ONESHOT;
|
|
|
|
|
return false;
|
|
|
|
|
#ifdef MOUSEKEY_ENABLE
|
|
|
|
|
case KC_M:
|
|
|
|
|
mousekey_console_help();
|
|
|
|
|
print("\nEnter Mousekey Console\n");
|
|
|
|
|
print("M0>");
|
|
|
|
|
state = MOUSEKEY;
|
|
|
|
|
command_state = MOUSEKEY;
|
|
|
|
|
return true;
|
|
|
|
|
#endif
|
|
|
|
|
default:
|
|
|
|
@ -555,7 +565,7 @@ static bool mousekey_console(uint8_t code)
|
|
|
|
|
mousekey_param = 0;
|
|
|
|
|
print("\nQuit Mousekey Console\n");
|
|
|
|
|
print("C> ");
|
|
|
|
|
state = CONSOLE;
|
|
|
|
|
command_state = CONSOLE;
|
|
|
|
|
return false;
|
|
|
|
|
case KC_P:
|
|
|
|
|
mousekey_param_print();
|
|
|
|
|