]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - quantum/process_keycode/process_key_lock.c
Fix for issue https://github.com/qmk/qmk_firmware/issues/1751
[qmk_firmware.git] / quantum / process_keycode / process_key_lock.c
index b1ba397a026576d2b321601d2ee31b1dfc8b7a37..50cc0a5ccbb2415c7091fb57655f2e72935e9abf 100644 (file)
 #include "stdint.h"
 #include "process_key_lock.h"
 
-#define SHIFT(shift) (((uint64_t)1) << (shift))
+#define BV_64(shift) (((uint64_t)1) << (shift))
 #define GET_KEY_ARRAY(code) (((code) < 0x40) ? key_state[0] : \
                              ((code) < 0x80) ? key_state[1] : \
                              ((code) < 0xC0) ? key_state[2] : key_state[3])
 #define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : \
                               ((code) < 0x80) ? (code) - 0x40 : \
                               ((code) < 0xC0) ? (code) - 0x80 : (code) - 0xC0)
-#define KEY_STATE(code)  (GET_KEY_ARRAY(code) & SHIFT(GET_CODE_INDEX(code))) == SHIFT(GET_CODE_INDEX(code))
+#define KEY_STATE(code)  (GET_KEY_ARRAY(code) & BV_64(GET_CODE_INDEX(code))) == BV_64(GET_CODE_INDEX(code))
 #define SET_KEY_ARRAY_STATE(code, val) do { \
     switch (code) { \
         case 0x00 ... 0x3F: \
@@ -42,8 +42,8 @@
             break; \
     } \
 } while(0)
-#define SET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code) | SHIFT(GET_CODE_INDEX(code))))
-#define UNSET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code)) & ~(SHIFT(GET_CODE_INDEX(code))))
+#define SET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code) | BV_64(GET_CODE_INDEX(code))))
+#define UNSET_KEY_STATE(code) SET_KEY_ARRAY_STATE(code, (GET_KEY_ARRAY(code)) & ~(BV_64(GET_CODE_INDEX(code))))
 #define IS_STANDARD_KEYCODE(code) ((code) <= 0xFF)
 
 // Locked key state. This is an array of 256 bits, one for each of the standard keys supported qmk.
@@ -51,7 +51,7 @@ uint64_t key_state[4] = { 0x0, 0x0, 0x0, 0x0 };
 bool watching = false;
 
 // Translate any OSM keycodes back to their unmasked versions.
-uint16_t inline translate_keycode(uint16_t keycode) {
+static inline uint16_t translate_keycode(uint16_t keycode) {
     if (keycode > QK_ONE_SHOT_MOD && keycode <= QK_ONE_SHOT_MOD_MAX) {
         return keycode ^ QK_ONE_SHOT_MOD;
     } else {