diff --git a/quantum/action_layer.c b/quantum/action_layer.c index 510ed74b75d..4f5c9e1f7cb 100644 --- a/quantum/action_layer.c +++ b/quantum/action_layer.c @@ -225,11 +225,6 @@ uint8_t source_layers_cache[((MATRIX_ROWS * MATRIX_COLS) + (CHAR_BIT)-1) / (CHAR uint8_t encoder_source_layers_cache[(NUM_ENCODERS + (CHAR_BIT)-1) / (CHAR_BIT)][MAX_LAYER_BITS] = {{0}}; # endif // ENCODER_MAP_ENABLE -uint16_t keycode_map[((MATRIX_ROWS * MATRIX_COLS) + (CHAR_BIT)-1) / (CHAR_BIT)][16] = {{KC_NO}}; -# ifdef ENCODER_MAP_ENABLE -uint16_t encoder_keycode_map[(NUM_ENCODERS + (CHAR_BIT)-1) / (CHAR_BIT)][16] = {{KC_NO}}; -# endif // ENCODER_MAP_ENABLE - /** \brief update source layers cache impl * * Updates the supplied cache when changing layers @@ -242,14 +237,6 @@ void update_source_layers_cache_impl(uint8_t layer, uint16_t entry_number, uint8 } } -/** \brief update encoder keycode map - * - * Updates map of keycodes when pressing a key down - */ -void update_keycode_map_impl(uint16_t entry_number, uint16_t keycode, uint16_t cache[][16]) { - cache[entry_number / 16][entry_number % 16] = keycode; -} - /** \brief read source layers cache * * reads the cached keys stored when the layer was changed @@ -266,14 +253,6 @@ uint8_t read_source_layers_cache_impl(uint16_t entry_number, uint8_t cache[][MAX return layer; } -/** \brief read keycode map - * - * reads map of keycodes when unpressing a key - */ -uint16_t read_keycode_map_impl(uint16_t entry_number, uint16_t cache[][16]) { - return cache[entry_number / 16][entry_number % 16]; -} - /** \brief update encoder source layers cache * * Updates the cached encoders when changing layers @@ -291,6 +270,45 @@ void update_source_layers_cache(keypos_t key, uint8_t layer) { # endif // ENCODER_MAP_ENABLE } +/** \brief read source layers cache + * + * reads the cached keys stored when the layer was changed + */ +uint8_t read_source_layers_cache(keypos_t key) { + if (key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { + const uint16_t entry_number = (uint16_t)(key.row * MATRIX_COLS) + key.col; + return read_source_layers_cache_impl(entry_number, source_layers_cache); + } +# ifdef ENCODER_MAP_ENABLE + else if (key.row == KEYLOC_ENCODER_CW || key.row == KEYLOC_ENCODER_CCW) { + const uint16_t entry_number = key.col; + return read_source_layers_cache_impl(entry_number, encoder_source_layers_cache); + } +# endif // ENCODER_MAP_ENABLE + return 0; +} + +uint16_t keycode_map[((MATRIX_ROWS * MATRIX_COLS) + (CHAR_BIT)-1) / (CHAR_BIT)][16] = {{KC_NO}}; +# ifdef ENCODER_MAP_ENABLE +uint16_t encoder_keycode_map[(NUM_ENCODERS + (CHAR_BIT)-1) / (CHAR_BIT)][16] = {{KC_NO}}; +# endif // ENCODER_MAP_ENABLE + +/** \brief update encoder keycode map + * + * Updates map of keycodes when pressing a key down + */ +void update_keycode_map_impl(uint16_t entry_number, uint16_t keycode, uint16_t cache[][16]) { + cache[entry_number / 16][entry_number % 16] = keycode; +} + +/** \brief read keycode map + * + * reads map of keycodes when releasing a key + */ +uint16_t read_keycode_map_impl(uint16_t entry_number, uint16_t cache[][16]) { + return cache[entry_number / 16][entry_number % 16]; +} + /** \brief update encoder keycode map * * Updates map of keycodes when pressing a key down @@ -325,24 +343,6 @@ uint16_t read_keycode_map(keypos_t key) { # endif // ENCODER_MAP_ENABLE return KC_NO; } - -/** \brief read source layers cache - * - * reads the cached keys stored when the layer was changed - */ -uint8_t read_source_layers_cache(keypos_t key) { - if (key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { - const uint16_t entry_number = (uint16_t)(key.row * MATRIX_COLS) + key.col; - return read_source_layers_cache_impl(entry_number, source_layers_cache); - } -# ifdef ENCODER_MAP_ENABLE - else if (key.row == KEYLOC_ENCODER_CW || key.row == KEYLOC_ENCODER_CCW) { - const uint16_t entry_number = key.col; - return read_source_layers_cache_impl(entry_number, encoder_source_layers_cache); - } -# endif // ENCODER_MAP_ENABLE - return 0; -} #endif /** \brief Store or get action (FIXME: Needs better summary) diff --git a/quantum/quantum.c b/quantum/quantum.c index a3dc34b6e9c..bb3a4fca5f5 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -239,11 +239,9 @@ uint16_t get_event_keycode(keyevent_t event, bool update_layer_cache) { keycode = keymap_key_to_keycode(layer, event.key); update_keycode_map(event.key, keycode); } else { - layer = read_source_layers_cache(event.key); keycode = read_keycode_map(event.key); } return keycode; - // return keymap_key_to_keycode(layer, event.key); } else #endif return keymap_key_to_keycode(layer_switch_get_layer(event.key), event.key);