Make Dynamic Keymaps more friendly for non-VIA implementations
This commit is contained in:
committed by
Florian Didron
parent
1bd151eee3
commit
259cc07202
@@ -14,42 +14,49 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "keymap.h" // to get keymaps[][][]
|
#include "keymap.h" // to get keymaps[][][]
|
||||||
#include "tmk_core/common/eeprom.h"
|
#include "eeprom.h"
|
||||||
#include "progmem.h" // to read default from flash
|
#include "progmem.h" // to read default from flash
|
||||||
#include "quantum.h" // for send_string()
|
#include "quantum.h" // for send_string()
|
||||||
#include "dynamic_keymap.h"
|
#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
|
#ifndef DYNAMIC_KEYMAP_LAYER_COUNT
|
||||||
# define DYNAMIC_KEYMAP_LAYER_COUNT 4
|
# define DYNAMIC_KEYMAP_LAYER_COUNT 4
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DYNAMIC_KEYMAP_MACRO_COUNT
|
#ifndef DYNAMIC_KEYMAP_MACRO_COUNT
|
||||||
# define DYNAMIC_KEYMAP_MACRO_COUNT 16
|
# define DYNAMIC_KEYMAP_MACRO_COUNT 16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h,
|
// If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h,
|
||||||
// default it start after VIA_EEPROM_CUSTOM_ADDR+VIA_EEPROM_CUSTOM_SIZE
|
// default it start after VIA_EEPROM_CUSTOM_ADDR+VIA_EEPROM_CUSTOM_SIZE
|
||||||
#ifndef DYNAMIC_KEYMAP_EEPROM_ADDR
|
#ifndef DYNAMIC_KEYMAP_EEPROM_ADDR
|
||||||
# ifdef VIA_EEPROM_CUSTOM_CONFIG_ADDR
|
# ifdef VIA_ENABLE
|
||||||
# define DYNAMIC_KEYMAP_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR+VIA_EEPROM_CUSTOM_CONFIG_SIZE)
|
# ifdef VIA_EEPROM_CUSTOM_CONFIG_ADDR
|
||||||
# else
|
# define DYNAMIC_KEYMAP_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR + VIA_EEPROM_CUSTOM_CONFIG_SIZE)
|
||||||
# error DYNAMIC_KEYMAP_EEPROM_ADDR not defined
|
# else
|
||||||
# endif
|
# error DYNAMIC_KEYMAP_EEPROM_ADDR not defined
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define DYNAMIC_KEYMAP_EEPROM_ADDR EECONFIG_SIZE
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Dynamic macro starts after dynamic keymaps
|
// Dynamic macro starts after dynamic keymaps
|
||||||
#ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
|
#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
|
#endif
|
||||||
|
|
||||||
// Dynamic macro uses up all remaining memory
|
// Dynamic macro uses up all remaining memory
|
||||||
// Assumes 1K EEPROM on ATMega32U4
|
// Assumes 1K EEPROM on ATMega32U4
|
||||||
// Override for anything different
|
// Override for anything different
|
||||||
#ifndef DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE
|
#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
|
#endif
|
||||||
|
|
||||||
uint8_t dynamic_keymap_get_layer_count(void) { return DYNAMIC_KEYMAP_LAYER_COUNT; }
|
uint8_t dynamic_keymap_get_layer_count(void) { return DYNAMIC_KEYMAP_LAYER_COUNT; }
|
||||||
|
|||||||
Reference in New Issue
Block a user