Parcourir la source

Improve flexibility

keymap_in_eeprom
Kai Ryu il y a 10 ans
Parent
révision
b82c4a8da3
2 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. 1
    0
      common/keymap_in_eeprom.c
  2. 4
    2
      common/keymap_in_eeprom.h

+ 1
- 0
common/keymap_in_eeprom.c Voir le fichier

#include <avr/eeprom.h> #include <avr/eeprom.h>
#include "eeconfig.h" #include "eeconfig.h"
#include "keymap_in_eeprom.h" #include "keymap_in_eeprom.h"
#include "matrix.h"
#include "debug.h" #include "debug.h"


#ifdef KEYMAP_IN_EEPROM_ENABLE #ifdef KEYMAP_IN_EEPROM_ENABLE

+ 4
- 2
common/keymap_in_eeprom.h Voir le fichier

#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>


#ifndef EECONFIG_KEYMAP_IN_EEPROM
#define EECONFIG_KEYMAP_IN_EEPROM 0x10 #define EECONFIG_KEYMAP_IN_EEPROM 0x10
#endif
#ifndef FN_ACTIONS_COUNT #ifndef FN_ACTIONS_COUNT
#define FN_ACTIONS_COUNT 32 #define FN_ACTIONS_COUNT 32
#endif #endif
#ifndef KEYMAPS_COUNT #ifndef KEYMAPS_COUNT
#define KEYMAPS_COUNT 1 #define KEYMAPS_COUNT 1
#endif #endif
#define KEYS_COUNT (KEYMAPS_COUNT * MATRIX_ROWS * MATRIX_COLS)
#define KEYS_COUNT (KEYMAPS_COUNT * matrix_rows() * matrix_cols())


typedef struct { typedef struct {
uint16_t checksum; uint16_t checksum;


#define KEYMAP_SIZE (sizeof(uint16_t) * FN_ACTIONS_COUNT + sizeof(uint8_t) * KEYS_COUNT) #define KEYMAP_SIZE (sizeof(uint16_t) * FN_ACTIONS_COUNT + sizeof(uint8_t) * KEYS_COUNT)
#define KEYMAP_WORD_SIZE ((KEYMAP_SIZE + 1) / 2) #define KEYMAP_WORD_SIZE ((KEYMAP_SIZE + 1) / 2)
#define KEY_OFFSET(layer, row, col) (layer * MATRIX_ROWS * MATRIX_COLS + row * MATRIX_COLS + col)
#define KEY_OFFSET(layer, row, col) (layer * matrix_rows() * matrix_cols() + row * matrix_cols() + col)


void keymap_in_eeprom_init(void); void keymap_in_eeprom_init(void);
void keymap_in_eeprom_disable(void); void keymap_in_eeprom_disable(void);