summaryrefslogtreecommitdiff
path: root/quantum/dynamic_keymap.c
diff options
context:
space:
mode:
authorDrashna Jael're <drashna@live.com>2020-01-14 17:24:00 -0800
committerFlorian Didron <fdidron@users.noreply.github.com>2020-02-26 10:15:12 +0900
commit259cc072029c3358827c7ef6c2462a3d4a6a1f52 (patch)
tree663a3d3bfb3650263a403a308d8eb8042a19c94d /quantum/dynamic_keymap.c
parent1bd151eee381453d43e0e4d33601f71344abd2a6 (diff)
Make Dynamic Keymaps more friendly for non-VIA implementations
Diffstat (limited to 'quantum/dynamic_keymap.c')
-rw-r--r--quantum/dynamic_keymap.c31
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; }