diff --git a/right/src/test_mode.c b/right/src/test_mode.c index 8871ec1..2c7fb4e 100644 --- a/right/src/test_mode.c +++ b/right/src/test_mode.c @@ -3,6 +3,8 @@ #include "key_action.h" #include "keymap.h" +bool TestModeActive = false; + static const key_action_t TestKeymap[1][2][MAX_KEY_COUNT_PER_MODULE] = { // Base layer { diff --git a/right/src/test_mode.h b/right/src/test_mode.h index be57a37..6f31b4a 100644 --- a/right/src/test_mode.h +++ b/right/src/test_mode.h @@ -1,8 +1,16 @@ #ifndef __TEST_MODE_H__ #define __TEST_MODE_H__ +// Includes: + + #include + // Functions: void TestMode_Activate(void); +// Variables: + + extern bool TestModeActive; + #endif diff --git a/right/src/usb_commands/usb_command_get_variable.c b/right/src/usb_commands/usb_command_get_variable.c index 5f910a5..46cd2b1 100644 --- a/right/src/usb_commands/usb_command_get_variable.c +++ b/right/src/usb_commands/usb_command_get_variable.c @@ -1,13 +1,15 @@ #include "usb_protocol_handler.h" #include "usb_commands/usb_command_get_variable.h" #include "key_matrix.h" +#include "test_mode.h" void UsbCommand_GetVariable(void) { usb_variable_id_t variableId = GetUsbRxBufferUint8(1); switch (variableId) { - case UsbVariable_TestMode: + case UsbVariable_TestModeActive: + SetUsbTxBufferUint8(1, TestModeActive); break; case UsbVariable_TestUsbStack: break; diff --git a/right/src/usb_commands/usb_command_set_variable.c b/right/src/usb_commands/usb_command_set_variable.c index be71c3a..0ee9c37 100644 --- a/right/src/usb_commands/usb_command_set_variable.c +++ b/right/src/usb_commands/usb_command_set_variable.c @@ -1,13 +1,18 @@ #include "usb_protocol_handler.h" #include "usb_commands/usb_command_set_variable.h" #include "key_matrix.h" +#include "test_mode.h" void UsbCommand_SetVariable(void) { usb_variable_id_t variableId = GetUsbRxBufferUint8(1); switch (variableId) { - case UsbVariable_TestMode: + case UsbVariable_TestModeActive: + if (GetUsbRxBufferUint8(2)) { + TestModeActive = true; + TestMode_Activate(); + } break; case UsbVariable_TestUsbStack: break; diff --git a/right/src/usb_commands/usb_command_switch_keymap.c b/right/src/usb_commands/usb_command_switch_keymap.c index a213b6c..f8e8475 100644 --- a/right/src/usb_commands/usb_command_switch_keymap.c +++ b/right/src/usb_commands/usb_command_switch_keymap.c @@ -1,7 +1,6 @@ #include "usb_protocol_handler.h" #include "usb_commands/usb_command_switch_keymap.h" #include "keymap.h" -#include "test_mode.h" void UsbCommand_SwitchKeymap(void) { @@ -10,8 +9,6 @@ void UsbCommand_SwitchKeymap(void) if (keymapLength > KEYMAP_ABBREVIATION_LENGTH) { SetUsbTxBufferUint8(0, UsbStatusCode_SwitchKeymap_InvalidAbbreviationLength); - } else if (keymapLength == 1 && keymapAbbrev[0] == 1) { - TestMode_Activate(); } if (!SwitchKeymapByAbbreviation(keymapLength, keymapAbbrev)) { diff --git a/right/src/usb_protocol_handler.h b/right/src/usb_protocol_handler.h index a417bfa..4943a53 100644 --- a/right/src/usb_protocol_handler.h +++ b/right/src/usb_protocol_handler.h @@ -39,7 +39,7 @@ } usb_command_id_t; typedef enum { - UsbVariable_TestMode, + UsbVariable_TestModeActive, UsbVariable_TestUsbStack, UsbVariable_DebounceTimePress, UsbVariable_DebounceTimeRelease