Working on Morse Code Macros

This commit is contained in:
Ante Laurijssen 2017-06-07 22:01:28 -04:00
parent 1b8ed53f21
commit 8f80f35186
1 changed files with 24 additions and 9 deletions

View File

@ -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) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
uint16_t is_shift = check_shift();
switch(id) { switch(id) {
// Morse Code Macros
case 0: //Number 0-) case 0: //Number 0-)
if (record->event.pressed) { if (record->event.pressed) {
if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) { if (is_shift == false) {
clear_mods(); return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.- }
}
else { 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; break;