diff options
author | Drashna Jael're <drashna@live.com> | 2020-01-14 17:24:00 -0800 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2020-02-26 10:15:12 +0900 |
commit | 259cc072029c3358827c7ef6c2462a3d4a6a1f52 (patch) | |
tree | 663a3d3bfb3650263a403a308d8eb8042a19c94d /quantum/dynamic_keymap.c | |
parent | 1bd151eee381453d43e0e4d33601f71344abd2a6 (diff) |
Make Dynamic Keymaps more friendly for non-VIA implementations
Diffstat (limited to 'quantum/dynamic_keymap.c')
-rw-r--r-- | quantum/dynamic_keymap.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 11d28592d6..5600ce736d 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -14,42 +14,49 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "config.h" #include "keymap.h" // to get keymaps[][][] -#include "tmk_core/common/eeprom.h" +#include "eeprom.h" #include "progmem.h" // to read default from flash #include "quantum.h" // for send_string() #include "dynamic_keymap.h" -#include "via.h" // for default VIA_EEPROM_ADDR_END +#ifdef VIA_ENABLE +# include "via.h" // for default VIA_EEPROM_ADDR_END +#else +# include "eeconfig.h" +#endif #ifndef DYNAMIC_KEYMAP_LAYER_COUNT -# define DYNAMIC_KEYMAP_LAYER_COUNT 4 +# define DYNAMIC_KEYMAP_LAYER_COUNT 4 #endif #ifndef DYNAMIC_KEYMAP_MACRO_COUNT -# define DYNAMIC_KEYMAP_MACRO_COUNT 16 +# define DYNAMIC_KEYMAP_MACRO_COUNT 16 #endif // If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h, // default it start after VIA_EEPROM_CUSTOM_ADDR+VIA_EEPROM_CUSTOM_SIZE #ifndef DYNAMIC_KEYMAP_EEPROM_ADDR -# ifdef VIA_EEPROM_CUSTOM_CONFIG_ADDR -# define DYNAMIC_KEYMAP_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR+VIA_EEPROM_CUSTOM_CONFIG_SIZE) -# else -# error DYNAMIC_KEYMAP_EEPROM_ADDR not defined -# endif +# ifdef VIA_ENABLE +# ifdef VIA_EEPROM_CUSTOM_CONFIG_ADDR +# define DYNAMIC_KEYMAP_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE) +# else +# error DYNAMIC_KEYMAP_EEPROM_ADDR not defined +# endif +# else +# define DYNAMIC_KEYMAP_EEPROM_ADDR EECONFIG_SIZE +# endif #endif // Dynamic macro starts after dynamic keymaps #ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR -# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR+(DYNAMIC_KEYMAP_LAYER_COUNT*MATRIX_ROWS*MATRIX_COLS*2)) +# define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2)) #endif // Dynamic macro uses up all remaining memory // Assumes 1K EEPROM on ATMega32U4 // Override for anything different #ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE -# define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE (1024-DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR) +# define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE (1024 - DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR) #endif uint8_t dynamic_keymap_get_layer_count(void) { return DYNAMIC_KEYMAP_LAYER_COUNT; } |