diff options
Diffstat (limited to 'quantum/process_keycode/process_space_cadet.c')
| -rw-r--r-- | quantum/process_keycode/process_space_cadet.c | 175 | 
1 files changed, 87 insertions, 88 deletions
| diff --git a/quantum/process_keycode/process_space_cadet.c b/quantum/process_keycode/process_space_cadet.c index c8721d446c..6833fdb9fb 100644 --- a/quantum/process_keycode/process_space_cadet.c +++ b/quantum/process_keycode/process_space_cadet.c @@ -16,150 +16,149 @@  #include "process_space_cadet.h"  #ifndef TAPPING_TERM -  #define TAPPING_TERM 200 +#    define TAPPING_TERM 200  #endif  // ********** OBSOLETE DEFINES, STOP USING! (pls?) **********  // Shift / paren setup  #ifndef LSPO_KEY -  #define LSPO_KEY KC_9 +#    define LSPO_KEY KC_9  #endif  #ifndef RSPC_KEY -  #define RSPC_KEY KC_0 +#    define RSPC_KEY KC_0  #endif  // Shift / Enter setup  #ifndef SFTENT_KEY -  #define SFTENT_KEY KC_ENT +#    define SFTENT_KEY KC_ENT  #endif  #ifdef DISABLE_SPACE_CADET_MODIFIER -  #ifndef LSPO_MOD -    #define LSPO_MOD KC_TRNS -  #endif -  #ifndef RSPC_MOD -    #define RSPC_MOD KC_TRNS -  #endif +#    ifndef LSPO_MOD +#        define LSPO_MOD KC_TRNS +#    endif +#    ifndef RSPC_MOD +#        define RSPC_MOD KC_TRNS +#    endif  #else -  #ifndef LSPO_MOD -    #define LSPO_MOD KC_LSFT -  #endif -  #ifndef RSPC_MOD -    #define RSPC_MOD KC_RSFT -  #endif +#    ifndef LSPO_MOD +#        define LSPO_MOD KC_LSFT +#    endif +#    ifndef RSPC_MOD +#        define RSPC_MOD KC_RSFT +#    endif  #endif  // **********************************************************  // Shift / paren setup  #ifndef LSPO_KEYS -  #define LSPO_KEYS KC_LSFT, LSPO_MOD, LSPO_KEY +#    define LSPO_KEYS KC_LSFT, LSPO_MOD, LSPO_KEY  #endif  #ifndef RSPC_KEYS -  #define RSPC_KEYS KC_RSFT, RSPC_MOD, RSPC_KEY +#    define RSPC_KEYS KC_RSFT, RSPC_MOD, RSPC_KEY  #endif  // Control / paren setup  #ifndef LCPO_KEYS -  #define LCPO_KEYS KC_LCTL, KC_LSFT, KC_9 +#    define LCPO_KEYS KC_LCTL, KC_LSFT, KC_9  #endif  #ifndef RCPC_KEYS -  #define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0 +#    define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0  #endif  // Alt / paren setup  #ifndef LAPO_KEYS -  #define LAPO_KEYS KC_LALT, KC_LSFT, KC_9 +#    define LAPO_KEYS KC_LALT, KC_LSFT, KC_9  #endif  #ifndef RAPC_KEYS -  #define RAPC_KEYS KC_RALT, KC_RSFT, KC_0 +#    define RAPC_KEYS KC_RALT, KC_RSFT, KC_0  #endif  // Shift / Enter setup  #ifndef SFTENT_KEYS -  #define SFTENT_KEYS KC_RSFT, KC_TRNS, SFTENT_KEY +#    define SFTENT_KEYS KC_RSFT, KC_TRNS, SFTENT_KEY  #endif -static uint8_t sc_last = 0; +static uint8_t  sc_last  = 0;  static uint16_t sc_timer = 0;  #ifdef SPACE_CADET_MODIFIER_CARRYOVER  static uint8_t sc_mods = 0;  #endif  void perform_space_cadet(keyrecord_t *record, uint8_t holdMod, uint8_t tapMod, uint8_t keycode) { -  if (record->event.pressed) { -    sc_last = holdMod; -    sc_timer = timer_read (); +    if (record->event.pressed) { +        sc_last  = holdMod; +        sc_timer = timer_read();  #ifdef SPACE_CADET_MODIFIER_CARRYOVER -    sc_mods = get_mods(); +        sc_mods = get_mods();  #endif -    if (IS_MOD(holdMod)) { -      register_mods(MOD_BIT(holdMod)); -    } -  } -  else { -    if (sc_last == holdMod && timer_elapsed(sc_timer) < TAPPING_TERM) { -      if (holdMod != tapMod) {          if (IS_MOD(holdMod)) { -          unregister_mods(MOD_BIT(holdMod)); -        } -        if (IS_MOD(tapMod)) { -          register_mods(MOD_BIT(tapMod)); +            register_mods(MOD_BIT(holdMod));          } -      } +    } else { +        if (sc_last == holdMod && timer_elapsed(sc_timer) < TAPPING_TERM) { +            if (holdMod != tapMod) { +                if (IS_MOD(holdMod)) { +                    unregister_mods(MOD_BIT(holdMod)); +                } +                if (IS_MOD(tapMod)) { +                    register_mods(MOD_BIT(tapMod)); +                } +            }  #ifdef SPACE_CADET_MODIFIER_CARRYOVER -    set_weak_mods(sc_mods); +            set_weak_mods(sc_mods);  #endif -      tap_code(keycode); +            tap_code(keycode);  #ifdef SPACE_CADET_MODIFIER_CARRYOVER -    clear_weak_mods(); -#endif -      if (IS_MOD(tapMod)) { -        unregister_mods(MOD_BIT(tapMod)); -      } -    } else { -      if (IS_MOD(holdMod)) { -        unregister_mods(MOD_BIT(holdMod)); -      } +            clear_weak_mods(); +#endif +            if (IS_MOD(tapMod)) { +                unregister_mods(MOD_BIT(tapMod)); +            } +        } else { +            if (IS_MOD(holdMod)) { +                unregister_mods(MOD_BIT(holdMod)); +            } +        }      } -  }  }  bool process_space_cadet(uint16_t keycode, keyrecord_t *record) { -  switch(keycode) { -    case KC_LSPO: { -      perform_space_cadet(record, LSPO_KEYS); -      return false; -    } -    case KC_RSPC: { -      perform_space_cadet(record, RSPC_KEYS); -      return false; -    } -    case KC_LCPO: { -      perform_space_cadet(record, LCPO_KEYS); -      return false; -    } -    case KC_RCPC: { -      perform_space_cadet(record, RCPC_KEYS); -      return false; -    } -    case KC_LAPO: { -      perform_space_cadet(record, LAPO_KEYS); -      return false; -    } -    case KC_RAPC: { -      perform_space_cadet(record, RAPC_KEYS); -      return false; -    } -    case KC_SFTENT: { -      perform_space_cadet(record, SFTENT_KEYS); -      return false; -    } -    default: { -      if (record->event.pressed) { -        sc_last = 0; -      } -      break; +    switch (keycode) { +        case KC_LSPO: { +            perform_space_cadet(record, LSPO_KEYS); +            return false; +        } +        case KC_RSPC: { +            perform_space_cadet(record, RSPC_KEYS); +            return false; +        } +        case KC_LCPO: { +            perform_space_cadet(record, LCPO_KEYS); +            return false; +        } +        case KC_RCPC: { +            perform_space_cadet(record, RCPC_KEYS); +            return false; +        } +        case KC_LAPO: { +            perform_space_cadet(record, LAPO_KEYS); +            return false; +        } +        case KC_RAPC: { +            perform_space_cadet(record, RAPC_KEYS); +            return false; +        } +        case KC_SFTENT: { +            perform_space_cadet(record, SFTENT_KEYS); +            return false; +        } +        default: { +            if (record->event.pressed) { +                sc_last = 0; +            } +            break; +        }      } -  } -  return true; +    return true;  } | 
