This commit is contained in:
Jack Humbert 2015-03-23 00:33:54 -04:00
parent 9514ee8df7
commit 4454ded0af
3 changed files with 57 additions and 6 deletions

View file

@ -33,15 +33,19 @@ action_t action_for_key(uint8_t layer, keypos_t key)
// 16bit keycodes - important
uint16_t keycode = keymap_key_to_keycode(layer, key);
if (keycode > 0x00FF && keycode < 0x2000) {
if (keycode >= 0x0100 && keycode < 0x2000) {
// Has a modifier
action_t action;
// Split it up
action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF);
return action;
} else if (keycode > 0x1FFF && keycode < 0x3000) {
} else if (keycode >= 0x2000 && keycode < 0x3000) {
// Is a shortcut for function layer, pull last 12bits
return keymap_func_to_action(keycode & 0xFFF);
} else if (keycode >= 0x3000 && keycode < 0x4000) {
action_t action;
action.code = ACTION_MACRO(keycode & 0xFF);
return action;
}
switch (keycode) {
@ -173,9 +177,8 @@ action_t keymap_fn_to_action(uint16_t keycode)
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
}
/* translates Fn keycode to action */
action_t keymap_func_to_action(uint16_t keycode)
{
// For FUNC without 8bit limit
return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
}
}