gBoards Common (#8921)
Co-Authored-By: Drashna Jaelre <drashna@live.com>
This commit is contained in:
parent
6f30b402a2
commit
15e84f79f1
57 changed files with 11774 additions and 0 deletions
56
keyboards/gboards/g/keymap_combo.h
Normal file
56
keyboards/gboards/g/keymap_combo.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
// Keymap helpers
|
||||
|
||||
#define K_ENUM(name, key, ...) name,
|
||||
#define K_DATA(name, key, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END};
|
||||
#define K_COMB(name, key, ...) [name] = COMBO(cmb_##name, key),
|
||||
|
||||
#define A_ENUM(name, string, ...) name,
|
||||
#define A_DATA(name, string, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END};
|
||||
#define A_COMB(name, string, ...) [name] = COMBO_ACTION(cmb_##name),
|
||||
#define A_ACTI(name, string, ...) \
|
||||
case name: \
|
||||
if (pressed) SEND_STRING(string); \
|
||||
break;
|
||||
#define BLANK(...)
|
||||
|
||||
// Generate data needed for combos/actions
|
||||
// Create Enum
|
||||
#undef COMB
|
||||
#undef SUBS
|
||||
#define COMB K_ENUM
|
||||
#define SUBS A_ENUM
|
||||
enum combos {
|
||||
#include "combos.def"
|
||||
};
|
||||
|
||||
// Bake combos into mem
|
||||
#undef COMB
|
||||
#undef SUBS
|
||||
#define COMB K_DATA
|
||||
#define SUBS A_DATA
|
||||
#include "combos.def"
|
||||
#undef COMB
|
||||
#undef SUBS
|
||||
|
||||
// Fill combo array
|
||||
#define COMB K_COMB
|
||||
#define SUBS A_COMB
|
||||
combo_t key_combos[] = {
|
||||
#include "combos.def"
|
||||
};
|
||||
#undef COMB
|
||||
#undef SUBS
|
||||
|
||||
// Export length to combo module
|
||||
int COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]);
|
||||
|
||||
// Fill QMK hook
|
||||
#define COMB BLANK
|
||||
#define SUBS A_ACTI
|
||||
void process_combo_event(uint8_t combo_index, bool pressed) {
|
||||
switch (combo_index) {
|
||||
#include "combos.def"
|
||||
}
|
||||
}
|
||||
#undef COMB
|
||||
#undef SUBS
|
Loading…
Add table
Add a link
Reference in a new issue