From c4264aa2c72227e9233bc0e909194b75d46725c1 Mon Sep 17 00:00:00 2001 From: Nisker Date: Tue, 27 Sep 2022 01:55:39 +0200 Subject: [PATCH] Macro count increased (#253) --- quantum/dynamic_keymap.c | 8 +------- quantum/dynamic_keymap.h | 4 ++++ quantum/via.c | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index f2866ce6b8..f7f9e073a7 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -39,13 +39,7 @@ # define NUM_ENCODERS 0 #endif -#ifndef DYNAMIC_KEYMAP_LAYER_COUNT -# define DYNAMIC_KEYMAP_LAYER_COUNT 4 -#endif - -#ifndef DYNAMIC_KEYMAP_MACRO_COUNT -# define DYNAMIC_KEYMAP_MACRO_COUNT 16 -#endif +_Static_assert(DYNAMIC_KEYMAP_MACRO_COUNT+MACRO00 < USER00, "DYNAMIC_KEYMAP_MACRO_COUNT too big."); #ifndef TOTAL_EEPROM_BYTE_COUNT # error Unknown total EEPROM size. Cannot derive maximum for dynamic keymaps. diff --git a/quantum/dynamic_keymap.h b/quantum/dynamic_keymap.h index 94532052dd..98aecd2842 100644 --- a/quantum/dynamic_keymap.h +++ b/quantum/dynamic_keymap.h @@ -26,6 +26,10 @@ # define DYNAMIC_KEYMAP_LAYER_COUNT 4 #endif +#ifndef DYNAMIC_KEYMAP_MACRO_COUNT +# define DYNAMIC_KEYMAP_MACRO_COUNT 16 +#endif + uint8_t dynamic_keymap_get_layer_count(void); void * dynamic_keymap_key_to_eeprom_address(uint8_t layer, uint8_t row, uint8_t column); uint16_t dynamic_keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t column); diff --git a/quantum/via.c b/quantum/via.c index 4abba232fe..e00d092ab9 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -183,7 +183,7 @@ void via_set_layout_options(uint32_t value) { bool process_record_via(uint16_t keycode, keyrecord_t *record) { // Handle macros if (record->event.pressed) { - if (keycode >= MACRO00 && keycode <= MACRO15) { + if (keycode >= MACRO00 && keycode <= MACRO00 + DYNAMIC_KEYMAP_MACRO_COUNT - 1) { uint8_t id = keycode - MACRO00; dynamic_keymap_macro_send(id); return false;