From af7272b1b36d29bc158b0898c17fefcf432af00b Mon Sep 17 00:00:00 2001 From: Greg Wright Date: Sat, 15 Aug 2020 16:55:13 -0400 Subject: * #define AUTO_SHIFT_SETUP * Clarification Changed `#ifndef` to `#ifdef` and moved enable disable outside AUTO_SHIFT_SETUP * AUTO_SHIFT_NO_SETUp --- quantum/process_keycode/process_auto_shift.c | 147 +++++++++++++-------------- quantum/quantum_keycodes.h | 4 +- 2 files changed, 76 insertions(+), 75 deletions(-) (limited to 'quantum') diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index cba2dcd2dd..9d35ad27cd 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -25,19 +25,6 @@ static uint16_t autoshift_time = 0; static uint16_t autoshift_timeout = AUTO_SHIFT_TIMEOUT; static uint16_t autoshift_lastkey = KC_NO; -void autoshift_timer_report(void) { - char display[8]; - - snprintf(display, 8, "\n%d\n", autoshift_timeout); - - send_string((const char *)display); -} - -void autoshift_on(uint16_t keycode) { - autoshift_time = timer_read(); - autoshift_lastkey = keycode; -} - void autoshift_flush(void) { if (autoshift_lastkey != KC_NO) { uint16_t elapsed = timer_elapsed(autoshift_time); @@ -54,25 +41,37 @@ void autoshift_flush(void) { } -void autoshift_enable(void) { autoshift_enabled = true; } -void autoshift_disable(void) { +void autoshift_on(uint16_t keycode) { + autoshift_time = timer_read(); + autoshift_lastkey = keycode; +} + +void autoshift_toggle(void) { + if (autoshift_enabled) { autoshift_enabled = false; autoshift_flush(); + } else { + autoshift_enabled = true; + } } -void autoshift_toggle(void) { - if (autoshift_enabled) { - autoshift_enabled = false; - autoshift_flush(); - } - else { - autoshift_enabled = true; - } +void autoshift_enable(void) { autoshift_enabled = true; } +void autoshift_disable(void) { + autoshift_enabled = false; + autoshift_flush(); } -bool get_autoshift_state(void) { - return autoshift_enabled; +#ifndef AUTO_SHIFT_NO_SETUP +void autoshift_timer_report(void) { + char display[8]; + + snprintf(display, 8, "\n%d\n", autoshift_timeout); + + send_string((const char *)display); } +#endif + +bool get_autoshift_state(void) { return autoshift_enabled; } uint16_t get_autoshift_timeout(void) { return autoshift_timeout; @@ -86,60 +85,60 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch (keycode) { - case KC_ASUP: - autoshift_timeout += 5; - return true; - - case KC_ASDN: - autoshift_timeout -= 5; - return true; - - case KC_ASRP: - autoshift_timer_report(); - return true; - - case KC_ASTG: - autoshift_toggle(); - return true; - case KC_ASON: - autoshift_enable(); - return true; - case KC_ASOFF: - autoshift_disable(); - return true; - -#ifndef NO_AUTO_SHIFT_ALPHA - case KC_A ... KC_Z: -#endif -#ifndef NO_AUTO_SHIFT_NUMERIC - case KC_1 ... KC_0: -#endif -#ifndef NO_AUTO_SHIFT_SPECIAL - case KC_TAB: - case KC_MINUS ... KC_SLASH: - case KC_NONUS_BSLASH: -#endif - autoshift_flush(); - if (!autoshift_enabled) return true; - -#ifndef AUTO_SHIFT_MODIFIERS - if (get_mods()) { + case KC_ASTG: + autoshift_toggle(); return true; - } -#endif - autoshift_on(keycode); + case KC_ASON: + autoshift_enable(); + return true; + case KC_ASOFF: + autoshift_disable(); + return true; - // We need some extra handling here for OSL edge cases -#if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) - clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); -#endif - return false; +# ifndef AUTO_SHIFT_NO_SETUP + case KC_ASUP: + autoshift_timeout += 5; + return true; + case KC_ASDN: + autoshift_timeout -= 5; + return true; - default: - autoshift_flush(); - return true; + case KC_ASRP: + autoshift_timer_report(); + return true; +# endif +# ifndef NO_AUTO_SHIFT_ALPHA + case KC_A ... KC_Z: +# endif +# ifndef NO_AUTO_SHIFT_NUMERIC + case KC_1 ... KC_0: +# endif +# ifndef NO_AUTO_SHIFT_SPECIAL + case KC_TAB: + case KC_MINUS ... KC_SLASH: + case KC_NONUS_BSLASH: +# endif + autoshift_flush(); + if (!autoshift_enabled) return true; + +# ifndef AUTO_SHIFT_MODIFIERS + if (get_mods()) { + return true; + } +# endif + autoshift_on(keycode); + + // We need some extra handling here for OSL edge cases +# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING) + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); +# endif + return false; + + default: + autoshift_flush(); + return true; } } else { autoshift_flush(); diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index 93000269f6..38618964e3 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -123,10 +123,12 @@ enum quantum_keycodes { KC_LEAD, #endif - // Auto Shift setup +// Auto Shift setup +#ifndef AUTO_SHIFT_NO_SETUP KC_ASUP, KC_ASDN, KC_ASRP, +#endif KC_ASTG, KC_ASON, KC_ASOFF, -- cgit v1.2.3