Add dynamic keymap config

This commit is contained in:
Jeremy Soller
2020-10-01 10:18:21 -06:00
committed by Jeremy Soller
parent fc2c3511d2
commit 916a6f87f3
23 changed files with 139 additions and 38 deletions

View File

@@ -3,10 +3,33 @@
#ifndef _COMMON_KEYMAP_H
#define _COMMON_KEYMAP_H
#include <stdbool.h>
#include <stdint.h>
// Keymap defined by board
#if defined(KM_LAY) && defined(KM_OUT) && defined(KM_IN)
extern uint16_t __xdata KEYMAP[KM_LAY][KM_OUT][KM_IN];
extern uint16_t __code KEYMAP[KM_LAY][KM_OUT][KM_IN];
extern uint16_t __xdata DYNAMIC_KEYMAP[KM_LAY][KM_OUT][KM_IN];
#define HAVE_KEYMAP 1
#else
#define HAVE_KEYMAP 0
#endif
#if HAVE_KEYMAP
// Initialize the dynamic keymap
void keymap_init(void);
// Set the dynamic keymap to the default keymap
void keymap_load_default(void);
// Erase dynamic keymap in flash
bool keymap_erase_config(void);
// Load dynamic keymap from flash
bool keymap_load_config(void);
// Save dynamic keymap to flash
bool keymap_save_config(void);
// Get a keycode from the dynamic keymap
bool keymap_get(int layer, int output, int input, uint16_t * value);
// Set a keycode in the dynamic keymap
bool keymap_set(int layer, int output, int input, uint16_t value);
#endif
// Translate a keycode from PS/2 set 2 to PS/2 set 1