process_ucis.h 749 B

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