~ruther/qmk_firmware

7a75af83429980c0d59dadc69a7ec64d68a2cbfa — Jeremy Bernhardt 5 years ago d03bc3a
[Keyboard] Gboards common - TOGG()/inject.h (#9236)

1 files changed, 20 insertions(+), 1 deletions(-)

M keyboards/gboards/g/keymap_combo.h
M keyboards/gboards/g/keymap_combo.h => keyboards/gboards/g/keymap_combo.h +20 -1
@@ 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