#include "progmem.h"
#include "quantum.h"
+#ifndef COMBO_TERM
+#define COMBO_TERM TAPPING_TERM
+#endif
typedef struct
{
const uint16_t *keys;
uint16_t action;
uint32_t state;
+#if COMBO_TERM
+ uint16_t timer;
+ uint16_t key;
+#endif
} combo_t;
+#if COMBO_TERM
+#define COMBO(ck, ca) {.keys = &(ck)[0], .action = (ca), .state = 0, .timer = 0, .key = 0}
+#else
+#define COMBO(ck, ca) {.keys = &(ck)[0], .action = (ca), .state = 0 }
+#endif
#define COMBO_END 0
-#define NUM_ELEMS(a) (sizeof(a)/sizeof 0[a])
+#ifndef COMBO_COUNT
+#define COMBO_COUNT 0
+#endif
-
-extern combo_t key_combos[1];
+extern combo_t key_combos[COMBO_COUNT];
bool process_combo(uint16_t keycode, keyrecord_t *record);
+void matrix_scan_combo(void);
#endif
\ No newline at end of file