From 7a75af83429980c0d59dadc69a7ec64d68a2cbfa Mon Sep 17 00:00:00 2001 From: Jeremy Bernhardt Date: Fri, 5 Jun 2020 03:06:58 -0600 Subject: [PATCH] [Keyboard] Gboards common - TOGG()/inject.h (#9236) --- keyboards/gboards/g/keymap_combo.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/keyboards/gboards/g/keymap_combo.h b/keyboards/gboards/g/keymap_combo.h index 674d3356cc8..1302c460352 100644 --- a/keyboards/gboards/g/keymap_combo.h +++ b/keyboards/gboards/g/keymap_combo.h @@ -11,14 +11,21 @@ case name: \ if (pressed) SEND_STRING(string); \ break; -#define BLANK(...) +#define A_TOGG(name, layer, ...) \ + case name: \ + if (pressed) layer_invert(layer); \ + break; + +#define BLANK(...) // Generate data needed for combos/actions // Create Enum #undef COMB #undef SUBS +#undef TOGG #define COMB K_ENUM #define SUBS A_ENUM +#define TOGG A_ENUM enum combos { #include "combos.def" }; @@ -26,20 +33,25 @@ enum combos { // Bake combos into mem #undef COMB #undef SUBS +#undef TOGG #define COMB K_DATA #define SUBS A_DATA +#define TOGG A_DATA #include "combos.def" #undef COMB #undef SUBS +#undef TOGG // Fill combo array #define COMB K_COMB #define SUBS A_COMB +#define TOGG A_COMB combo_t key_combos[] = { #include "combos.def" }; #undef COMB #undef SUBS +#undef TOGG // Export length to combo module int COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]); @@ -47,10 +59,17 @@ int COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]); // Fill QMK hook #define COMB BLANK #define SUBS A_ACTI +#define TOGG A_TOGG void process_combo_event(uint8_t combo_index, bool pressed) { switch (combo_index) { #include "combos.def" } + + // Allow user overrides per keymap +#if __has_include("inject.h") +# include "inject.h" +#endif } #undef COMB #undef SUBS +#undef TOGG