aboutsummaryrefslogtreecommitdiff
path: root/quantum/process_keycode/process_space_cadet.c
diff options
context:
space:
mode:
authorskullY <skullydazed@gmail.com>2019-08-30 11:19:03 -0700
committerskullydazed <skullydazed@users.noreply.github.com>2019-08-30 15:01:52 -0700
commitb624f32f944acdc59dcb130674c09090c5c404cb (patch)
treebc13adbba137d122d9a2c2fb2fafcbb08ac10e25 /quantum/process_keycode/process_space_cadet.c
parent61af76a10d00aba185b8338604171de490a13e3b (diff)
downloadqmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.tar.gz
qmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.zip
clang-format changes
Diffstat (limited to 'quantum/process_keycode/process_space_cadet.c')
-rw-r--r--quantum/process_keycode/process_space_cadet.c175
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 c8721d446..6833fdb9f 100644
--- a/quantum/process_keycode/process_space_cadet.c
+++ b/quantum/process_keycode/process_space_cadet.c
@@ -16,150 +16,149 @@
16#include "process_space_cadet.h" 16#include "process_space_cadet.h"
17 17
18#ifndef TAPPING_TERM 18#ifndef TAPPING_TERM
19 #define TAPPING_TERM 200 19# define TAPPING_TERM 200
20#endif 20#endif
21 21
22// ********** OBSOLETE DEFINES, STOP USING! (pls?) ********** 22// ********** OBSOLETE DEFINES, STOP USING! (pls?) **********
23// Shift / paren setup 23// Shift / paren setup
24#ifndef LSPO_KEY 24#ifndef LSPO_KEY
25 #define LSPO_KEY KC_9 25# define LSPO_KEY KC_9
26#endif 26#endif
27#ifndef RSPC_KEY 27#ifndef RSPC_KEY
28 #define RSPC_KEY KC_0 28# define RSPC_KEY KC_0
29#endif 29#endif
30 30
31// Shift / Enter setup 31// Shift / Enter setup
32#ifndef SFTENT_KEY 32#ifndef SFTENT_KEY
33 #define SFTENT_KEY KC_ENT 33# define SFTENT_KEY KC_ENT
34#endif 34#endif
35 35
36#ifdef DISABLE_SPACE_CADET_MODIFIER 36#ifdef DISABLE_SPACE_CADET_MODIFIER
37 #ifndef LSPO_MOD 37# ifndef LSPO_MOD
38 #define LSPO_MOD KC_TRNS 38# define LSPO_MOD KC_TRNS
39 #endif 39# endif
40 #ifndef RSPC_MOD 40# ifndef RSPC_MOD
41 #define RSPC_MOD KC_TRNS 41# define RSPC_MOD KC_TRNS
42 #endif 42# endif
43#else 43#else
44 #ifndef LSPO_MOD 44# ifndef LSPO_MOD
45 #define LSPO_MOD KC_LSFT 45# define LSPO_MOD KC_LSFT
46 #endif 46# endif
47 #ifndef RSPC_MOD 47# ifndef RSPC_MOD
48 #define RSPC_MOD KC_RSFT 48# define RSPC_MOD KC_RSFT
49 #endif 49# endif
50#endif 50#endif
51// ********************************************************** 51// **********************************************************
52 52
53// Shift / paren setup 53// Shift / paren setup
54#ifndef LSPO_KEYS 54#ifndef LSPO_KEYS
55 #define LSPO_KEYS KC_LSFT, LSPO_MOD, LSPO_KEY 55# define LSPO_KEYS KC_LSFT, LSPO_MOD, LSPO_KEY
56#endif 56#endif
57#ifndef RSPC_KEYS 57#ifndef RSPC_KEYS
58 #define RSPC_KEYS KC_RSFT, RSPC_MOD, RSPC_KEY 58# define RSPC_KEYS KC_RSFT, RSPC_MOD, RSPC_KEY
59#endif 59#endif
60 60
61// Control / paren setup 61// Control / paren setup
62#ifndef LCPO_KEYS 62#ifndef LCPO_KEYS
63 #define LCPO_KEYS KC_LCTL, KC_LSFT, KC_9 63# define LCPO_KEYS KC_LCTL, KC_LSFT, KC_9
64#endif 64#endif
65#ifndef RCPC_KEYS 65#ifndef RCPC_KEYS
66 #define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0 66# define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0
67#endif 67#endif
68 68
69// Alt / paren setup 69// Alt / paren setup
70#ifndef LAPO_KEYS 70#ifndef LAPO_KEYS
71 #define LAPO_KEYS KC_LALT, KC_LSFT, KC_9 71# define LAPO_KEYS KC_LALT, KC_LSFT, KC_9
72#endif 72#endif
73#ifndef RAPC_KEYS 73#ifndef RAPC_KEYS
74 #define RAPC_KEYS KC_RALT, KC_RSFT, KC_0 74# define RAPC_KEYS KC_RALT, KC_RSFT, KC_0
75#endif 75#endif
76 76
77// Shift / Enter setup 77// Shift / Enter setup
78#ifndef SFTENT_KEYS 78#ifndef SFTENT_KEYS
79 #define SFTENT_KEYS KC_RSFT, KC_TRNS, SFTENT_KEY 79# define SFTENT_KEYS KC_RSFT, KC_TRNS, SFTENT_KEY
80#endif 80#endif
81 81
82static uint8_t sc_last = 0; 82static uint8_t sc_last = 0;
83static uint16_t sc_timer = 0; 83static uint16_t sc_timer = 0;
84#ifdef SPACE_CADET_MODIFIER_CARRYOVER 84#ifdef SPACE_CADET_MODIFIER_CARRYOVER
85static uint8_t sc_mods = 0; 85static uint8_t sc_mods = 0;
86#endif 86#endif
87 87
88void perform_space_cadet(keyrecord_t *record, uint8_t holdMod, uint8_t tapMod, uint8_t keycode) { 88void perform_space_cadet(keyrecord_t *record, uint8_t holdMod, uint8_t tapMod, uint8_t keycode) {
89 if (record->event.pressed) { 89 if (record->event.pressed) {
90 sc_last = holdMod; 90 sc_last = holdMod;
91 sc_timer = timer_read (); 91 sc_timer = timer_read();
92#ifdef SPACE_CADET_MODIFIER_CARRYOVER 92#ifdef SPACE_CADET_MODIFIER_CARRYOVER
93 sc_mods = get_mods(); 93 sc_mods = get_mods();
94#endif 94#endif
95 if (IS_MOD(holdMod)) {
96 register_mods(MOD_BIT(holdMod));
97 }
98 }
99 else {
100 if (sc_last == holdMod && timer_elapsed(sc_timer) < TAPPING_TERM) {
101 if (holdMod != tapMod) {
102 if (IS_MOD(holdMod)) { 95 if (IS_MOD(holdMod)) {
103 unregister_mods(MOD_BIT(holdMod)); 96 register_mods(MOD_BIT(holdMod));
104 }
105 if (IS_MOD(tapMod)) {
106 register_mods(MOD_BIT(tapMod));
107 } 97 }
108 } 98 } else {
99 if (sc_last == holdMod && timer_elapsed(sc_timer) < TAPPING_TERM) {
100 if (holdMod != tapMod) {
101 if (IS_MOD(holdMod)) {
102 unregister_mods(MOD_BIT(holdMod));
103 }
104 if (IS_MOD(tapMod)) {
105 register_mods(MOD_BIT(tapMod));
106 }
107 }
109#ifdef SPACE_CADET_MODIFIER_CARRYOVER 108#ifdef SPACE_CADET_MODIFIER_CARRYOVER
110 set_weak_mods(sc_mods); 109 set_weak_mods(sc_mods);
111#endif 110#endif
112 tap_code(keycode); 111 tap_code(keycode);
113#ifdef SPACE_CADET_MODIFIER_CARRYOVER 112#ifdef SPACE_CADET_MODIFIER_CARRYOVER
114 clear_weak_mods(); 113 clear_weak_mods();
115#endif 114#endif
116 if (IS_MOD(tapMod)) { 115 if (IS_MOD(tapMod)) {
117 unregister_mods(MOD_BIT(tapMod)); 116 unregister_mods(MOD_BIT(tapMod));
118 } 117 }
119 } else { 118 } else {
120 if (IS_MOD(holdMod)) { 119 if (IS_MOD(holdMod)) {
121 unregister_mods(MOD_BIT(holdMod)); 120 unregister_mods(MOD_BIT(holdMod));
122 } 121 }
122 }
123 } 123 }
124 }
125} 124}
126 125
127bool process_space_cadet(uint16_t keycode, keyrecord_t *record) { 126bool process_space_cadet(uint16_t keycode, keyrecord_t *record) {
128 switch(keycode) { 127 switch (keycode) {
129 case KC_LSPO: { 128 case KC_LSPO: {
130 perform_space_cadet(record, LSPO_KEYS); 129 perform_space_cadet(record, LSPO_KEYS);
131 return false; 130 return false;
132 } 131 }
133 case KC_RSPC: { 132 case KC_RSPC: {
134 perform_space_cadet(record, RSPC_KEYS); 133 perform_space_cadet(record, RSPC_KEYS);
135 return false; 134 return false;
136 } 135 }
137 case KC_LCPO: { 136 case KC_LCPO: {
138 perform_space_cadet(record, LCPO_KEYS); 137 perform_space_cadet(record, LCPO_KEYS);
139 return false; 138 return false;
140 } 139 }
141 case KC_RCPC: { 140 case KC_RCPC: {
142 perform_space_cadet(record, RCPC_KEYS); 141 perform_space_cadet(record, RCPC_KEYS);
143 return false; 142 return false;
144 } 143 }
145 case KC_LAPO: { 144 case KC_LAPO: {
146 perform_space_cadet(record, LAPO_KEYS); 145 perform_space_cadet(record, LAPO_KEYS);
147 return false; 146 return false;
148 } 147 }
149 case KC_RAPC: { 148 case KC_RAPC: {
150 perform_space_cadet(record, RAPC_KEYS); 149 perform_space_cadet(record, RAPC_KEYS);
151 return false; 150 return false;
152 } 151 }
153 case KC_SFTENT: { 152 case KC_SFTENT: {
154 perform_space_cadet(record, SFTENT_KEYS); 153 perform_space_cadet(record, SFTENT_KEYS);
155 return false; 154 return false;
156 } 155 }
157 default: { 156 default: {
158 if (record->event.pressed) { 157 if (record->event.pressed) {
159 sc_last = 0; 158 sc_last = 0;
160 } 159 }
161 break; 160 break;
161 }
162 } 162 }
163 } 163 return true;
164 return true;
165} 164}