Remove the old 2d keymaps array

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
pull/787/head
Gergely Nagy 5 years ago
parent 753368dee8
commit f5c9581036
No known key found for this signature in database
GPG Key ID: AC1E90BAC433F68F

@ -21,7 +21,6 @@ If any of this does not make sense to you, or you have trouble updating your .in
+ [Deprecated APIs and their replacements](#deprecated-apis-and-their-replacements) + [Deprecated APIs and their replacements](#deprecated-apis-and-their-replacements)
- [Class/global instance Kaleidoscope_/Kaleidoscope renamed to kaleidoscope::Runtime_/kaleidoscope::Runtime](#classglobal-instance-kaleidoscope_kaleidoscope-renamed-to-kaleidoscoperuntime_kaleidoscoperuntime) - [Class/global instance Kaleidoscope_/Kaleidoscope renamed to kaleidoscope::Runtime_/kaleidoscope::Runtime](#classglobal-instance-kaleidoscope_kaleidoscope-renamed-to-kaleidoscoperuntime_kaleidoscoperuntime)
- [Transition to linear indexing](#transition-to-linear-indexing) - [Transition to linear indexing](#transition-to-linear-indexing)
- [keymaps array and KEYMAPS and KEYMAPS_STACKED macros](#keymaps-array-and-keymaps-and-keymaps_stacked-macros)
- [Source code and namespace rearrangement](#source-code-and-namespace-rearrangement) - [Source code and namespace rearrangement](#source-code-and-namespace-rearrangement)
* [Removed APIs](#removed-apis) * [Removed APIs](#removed-apis)
@ -498,14 +497,6 @@ the firmware to remain backwards compatible, however, these functions are deprec
Also a new version of the onKeyswitchEvent-handler has been introduced. The old version is deprecated. Also a new version of the onKeyswitchEvent-handler has been introduced. The old version is deprecated.
## keymaps array and KEYMAPS and KEYMAPS_STACKED macros
The `keymaps` array has been replaced with a `keymaps_linear` array. This new array treats each layer as a simple one dimensional array of keys, rather than a two dimensional array of arrays of rows. At the same time, the `KEYMAPS` and `KEYMAPS_STACKED` macros that were previously defined in each hardware implmentation class have been replaced with `PER_KEY_DATA` and `PER_KEY_DATA_STACKED` macros in each hardware class. This change should be invisible to users, but will require changes by any plugin that accessed the 'keymaps' variable directly.
Code like `key.raw = pgm_read_word(&(keymaps[layer][row][col])); return key;` should be changed to look like this: `return keyFromKeymap(layer, row, col);`
The old, deprecated, API will be removed on **2019-08-13**.
### Source code and namespace rearrangement ### Source code and namespace rearrangement
With the move towards a monorepo-based source, some headers have moved to a new location, and plenty of plugins moved to a new namespace (`kaleidoscope::plugin`). This means that the old headers, and some old names are deprecated. The old names no longer work. With the move towards a monorepo-based source, some headers have moved to a new location, and plenty of plugins moved to a new namespace (`kaleidoscope::plugin`). This means that the old headers, and some old names are deprecated. The old names no longer work.
@ -535,6 +526,12 @@ The following headers and names have changed:
The [EEPROM-Keymap](doc/plugin/EEPROM-Keymap.md) plugin had its `setup()` method changed, the formerly optional `method` argument is now obsolete and unused. It can be safely removed. The [EEPROM-Keymap](doc/plugin/EEPROM-Keymap.md) plugin had its `setup()` method changed, the formerly optional `method` argument is now obsolete and unused. It can be safely removed.
## keymaps array and KEYMAPS and KEYMAPS_STACKED macros
The `keymaps` array has been replaced with a `keymaps_linear` array. This new array treats each layer as a simple one dimensional array of keys, rather than a two dimensional array of arrays of rows. At the same time, the `KEYMAPS` and `KEYMAPS_STACKED` macros that were previously defined in each hardware implmentation class have been replaced with `PER_KEY_DATA` and `PER_KEY_DATA_STACKED` macros in each hardware class. This change should be invisible to users, but will require changes by any plugin that accessed the 'keymaps' variable directly.
Code like `key.raw = pgm_read_word(&(keymaps[layer][row][col])); return key;` should be changed to look like this: `return keyFromKeymap(layer, row, col);`
### Removed on 2019-01-18 ### Removed on 2019-01-18
### Removal of Layer.defaultLayer ### Removal of Layer.defaultLayer

@ -29,53 +29,4 @@ Key keyFromKeymap(uint8_t layer, KeyAddr key_addr) {
return keymaps_linear[layer][key_addr.toInt()].readFromProgmem(); return keymaps_linear[layer][key_addr.toInt()].readFromProgmem();
} }
namespace internal {
// This class mimics a three-dimensional array as formerly used to
// store keymap arrays in progmem. It wraps the new one dimentional
// keymap array.
class Keymaps2DInterface {
public:
class KeymapLayer {
const Key * const keymap_layer_;
public:
KeymapLayer(const Key * const keymap_layer) : keymap_layer_(keymap_layer) {}
class KeymapRow {
const Key * const keymap_row_;
public:
KeymapRow(const Key * const keymap_row) : keymap_row_(keymap_row) {}
const Key &operator[](uint8_t col) {
return keymap_row_[col];
}
};
KeymapRow operator[](uint8_t row) {
return KeymapRow(keymap_layer_ + row * kaleidoscope_internal::device.matrix_columns);
}
};
KeymapLayer operator[](uint8_t layer) {
return KeymapLayer(keymaps_linear[layer]);
} }
};
}
}
#define _DEPRECATED_MESSAGE_2D_KEYMAP_ARRAY \
"Accessing the keymap array directly is deprecated. Please use the function "\
"keyFromKeymap() to access keys. The keymap array will be removed in future "\
"versions of the firmware"
DEPRECATED(2D_KEYMAP_ARRAY)
extern kaleidoscope::internal::Keymaps2DInterface keymaps;

@ -32,11 +32,6 @@
uint8_t layer_count __NL__ \ uint8_t layer_count __NL__ \
= sizeof(keymaps_linear) / sizeof(*keymaps_linear); __NL__ \ = sizeof(keymaps_linear) / sizeof(*keymaps_linear); __NL__ \
__NL__ \ __NL__ \
/* This deprecated compatibility wrapper is removed by the linker if __NL__ \
it is not accessed nowhere. __NL__ \
*/ __NL__ \
kaleidoscope::internal::Keymaps2DInterface keymaps; __NL__ \
__NL__ \
_INIT_SKETCH_EXPLORATION __NL__ \ _INIT_SKETCH_EXPLORATION __NL__ \
_INIT_HID_GETSHORTNAME _INIT_HID_GETSHORTNAME

Loading…
Cancel
Save