aboutsummaryrefslogtreecommitdiff
path: root/quantum/process_keycode/process_key_lock.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_key_lock.c
parent61af76a10d00aba185b8338604171de490a13e3b (diff)
downloadqmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.tar.gz
qmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.zip
clang-format changes
Diffstat (limited to 'quantum/process_keycode/process_key_lock.c')
-rw-r--r--quantum/process_keycode/process_key_lock.c48
1 files changed, 22 insertions, 26 deletions
diff --git a/quantum/process_keycode/process_key_lock.c b/quantum/process_keycode/process_key_lock.c
index 50cc0a5cc..602127a74 100644
--- a/quantum/process_keycode/process_key_lock.c
+++ b/quantum/process_keycode/process_key_lock.c
@@ -19,36 +19,33 @@
19#include "process_key_lock.h" 19#include "process_key_lock.h"
20 20
21#define BV_64(shift) (((uint64_t)1) << (shift)) 21#define BV_64(shift) (((uint64_t)1) << (shift))
22#define GET_KEY_ARRAY(code) (((code) < 0x40) ? key_state[0] : \ 22#define GET_KEY_ARRAY(code) (((code) < 0x40) ? key_state[0] : ((code) < 0x80) ? key_state[1] : ((code) < 0xC0) ? key_state[2] : key_state[3])
23 ((code) < 0x80) ? key_state[1] : \ 23#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : ((code) < 0x80) ? (code)-0x40 : ((code) < 0xC0) ? (code)-0x80 : (code)-0xC0)
24 ((code) < 0xC0) ? key_state[2] : key_state[3]) 24#define KEY_STATE(code) (GET_KEY_ARRAY(code) & BV_64(GET_CODE_INDEX(code))) == BV_64(GET_CODE_INDEX(code))
25#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : \ 25#define SET_KEY_ARRAY_STATE(code, val) \
26 ((code) < 0x80) ? (code) - 0x40 : \ 26 do { \
27 ((code) < 0xC0) ? (code) - 0x80 : (code) - 0xC0) 27 switch (code) { \
28#define KEY_STATE(code) (GET_KEY_ARRAY(code) & BV_64(GET_CODE_INDEX(code))) == BV_64(GET_CODE_INDEX(code)) 28 case 0x00 ... 0x3F: \
29#define SET_KEY_ARRAY_STATE(code, val) do { \ 29 key_state[0] = (val); \
30 switch (code) { \ 30 break; \
31 case 0x00 ... 0x3F: \ 31 case 0x40 ... 0x7F: \
32 key_state[0] = (val); \ 32 key_state[1] = (val); \
33 break; \ 33 break; \
34 case 0x40 ... 0x7F: \ 34 case 0x80 ... 0xBF: \
35 key_state[1] = (val); \ 35 key_state[2] = (val); \
36 break; \ 36 break; \
37 case 0x80 ... 0xBF: \ 37 case 0xC0 ... 0xFF: \
38 key_state[2] = (val); \ 38 key_state[3] = (val); \
39 break; \ 39 break; \
40 case 0xC0 ... 0xFF: \ 40 } \
41 key_state[3] = (val); \ 41 } while (0)
42 break; \
43 } \
44} while(0)
45#define SET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code) | BV_64(GET_CODE_INDEX(code)))) 42#define SET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code) | BV_64(GET_CODE_INDEX(code))))
46#define UNSET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code)) & ~(BV_64(GET_CODE_INDEX(code)))) 43#define UNSET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code)) & ~(BV_64(GET_CODE_INDEX(code))))
47#define IS_STANDARD_KEYCODE(code) ((code) <= 0xFF) 44#define IS_STANDARD_KEYCODE(code) ((code) <= 0xFF)
48 45
49// Locked key state. This is an array of 256 bits, one for each of the standard keys supported qmk. 46// Locked key state. This is an array of 256 bits, one for each of the standard keys supported qmk.
50uint64_t key_state[4] = { 0x0, 0x0, 0x0, 0x0 }; 47uint64_t key_state[4] = {0x0, 0x0, 0x0, 0x0};
51bool watching = false; 48bool watching = false;
52 49
53// Translate any OSM keycodes back to their unmasked versions. 50// Translate any OSM keycodes back to their unmasked versions.
54static inline uint16_t translate_keycode(uint16_t keycode) { 51static inline uint16_t translate_keycode(uint16_t keycode) {
@@ -135,4 +132,3 @@ bool process_key_lock(uint16_t *keycode, keyrecord_t *record) {
135 return !(IS_STANDARD_KEYCODE(translated_keycode) && KEY_STATE(translated_keycode)); 132 return !(IS_STANDARD_KEYCODE(translated_keycode) && KEY_STATE(translated_keycode));
136 } 133 }
137} 134}
138