Compare commits

..

No commits in common. "fdf74434ce53cba7b85146a8cea59e1297a032e8" and "fc41b3509dd6dbea00e6553ddd86ad33b712016c" have entirely different histories.

View file

@ -58,6 +58,7 @@
*/ */
enum { MACRO_VERSION_INFO, enum { MACRO_VERSION_INFO,
MACRO_ANY
}; };
@ -127,7 +128,7 @@ KEYMAPS(
Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift, Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
ShiftToLayer(FUNCTION), ShiftToLayer(FUNCTION),
___, Key_6, Key_7, Key_8, Key_9, Key_0, Key_Equals, M(MACRO_ANY), Key_6, Key_7, Key_8, Key_9, Key_0, Key_Equals,
Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Backslash, Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Backslash,
Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote, Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote,
Key_RightAlt, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus, Key_RightAlt, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
@ -180,6 +181,27 @@ static void versionInfoMacro(uint8_t keyState) {
} }
} }
/** anyKeyMacro is used to provide the functionality of the 'Any' key.
*
* When the 'any key' macro is toggled on, a random alphanumeric key is
* selected. While the key is held, the function generates a synthetic
* keypress event repeating that randomly selected key.
*
*/
static void anyKeyMacro(uint8_t keyState) {
static Key lastKey;
bool toggledOn = false;
if (keyToggledOn(keyState)) {
lastKey.setKeyCode(Key_A.getKeyCode() + (uint8_t)(millis() % 36));
toggledOn = true;
}
if (keyIsPressed(keyState))
Kaleidoscope.hid().keyboard().pressKey(lastKey, toggledOn);
}
/** macroAction dispatches keymap events that are tied to a macro /** macroAction dispatches keymap events that are tied to a macro
to that macro. It takes two uint8_t parameters. to that macro. It takes two uint8_t parameters.
@ -194,9 +216,14 @@ static void versionInfoMacro(uint8_t keyState) {
const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) { const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) {
switch (macroIndex) { switch (macroIndex) {
case MACRO_VERSION_INFO: case MACRO_VERSION_INFO:
versionInfoMacro(keyState); versionInfoMacro(keyState);
break; break;
case MACRO_ANY:
anyKeyMacro(keyState);
break;
} }
return MACRO_NONE; return MACRO_NONE;
} }
@ -226,6 +253,21 @@ void hostPowerManagementEventHandler(kaleidoscope::plugin::HostPowerManagement::
toggleLedsOnSuspendResume(event); toggleLedsOnSuspendResume(event);
} }
/** This 'enum' is a list of all the magic combos used by the Model 01's
* firmware The names aren't particularly important. What is important is that
* each is unique.
*
* These are the names of your magic combos. They will be used by the
* `USE_MAGIC_COMBOS` call below.
*/
enum {
// Toggle between Boot (6-key rollover; for BIOSes and early boot) and NKRO
// mode.
COMBO_TOGGLE_NKRO_MODE,
// Enter test mode
COMBO_ENTER_TEST_MODE
};
// First, tell Kaleidoscope which plugins you want to use. // First, tell Kaleidoscope which plugins you want to use.
// The order can be important. For example, LED effects are // The order can be important. For example, LED effects are
// added in the order they're listed here. // added in the order they're listed here.