|
|
|
@ -407,21 +407,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Macros
|
|
|
|
|
// Custom Function - Check if shift is pressed
|
|
|
|
|
|
|
|
|
|
bool check_shift(void);
|
|
|
|
|
|
|
|
|
|
bool check_shift() {
|
|
|
|
|
if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT))) {
|
|
|
|
|
return KC_LSHIFT;
|
|
|
|
|
}
|
|
|
|
|
if (keyboard_report->mods & (MOD_BIT(KC_RSHIFT))) {
|
|
|
|
|
return KC_RSHIFT;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Morse Code Macros
|
|
|
|
|
|
|
|
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
|
|
|
|
uint16_t is_shift = check_shift();
|
|
|
|
|
switch(id) {
|
|
|
|
|
|
|
|
|
|
// Morse Code Macros
|
|
|
|
|
|
|
|
|
|
case 0: //Number 0-)
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) {
|
|
|
|
|
clear_mods();
|
|
|
|
|
return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
|
|
|
|
|
}
|
|
|
|
|
if (is_shift == false) {
|
|
|
|
|
return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
|
|
|
|
|
unregister_mods(MOD_BIT(is_shift));
|
|
|
|
|
return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
|
|
|
|
|
register_code(is_shift);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|