process_ucis.h 713 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef PROCESS_UCIS_H
  2. #define PROCESS_UCIS_H
  3. #include "quantum.h"
  4. #ifndef UCIS_MAX_SYMBOL_LENGTH
  5. #define UCIS_MAX_SYMBOL_LENGTH 32
  6. #endif
  7. typedef struct {
  8. char *symbol;
  9. char *code;
  10. } qk_ucis_symbol_t;
  11. typedef struct {
  12. uint8_t count;
  13. uint16_t codes[UCIS_MAX_SYMBOL_LENGTH];
  14. bool in_progress:1;
  15. } qk_ucis_state_t;
  16. extern qk_ucis_state_t qk_ucis_state;
  17. #define UCIS_TABLE(...) {__VA_ARGS__, {NULL, NULL}}
  18. #define UCIS_SYM(name, code) {name, #code}
  19. extern const qk_ucis_symbol_t ucis_symbol_table[];
  20. void qk_ucis_start(void);
  21. void qk_ucis_start_user(void);
  22. void qk_ucis_symbol_fallback (void);
  23. void register_ucis(const char *hex);
  24. bool process_ucis (uint16_t keycode, keyrecord_t *record);
  25. #endif