62 lines
1.5 KiB
C
62 lines
1.5 KiB
C
#ifndef VOICE_VOICE_CMD_H
|
|
#define VOICE_VOICE_CMD_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
VOICE_CMD_TEXT = 0,
|
|
VOICE_CMD_KEYCOMBO = 1,
|
|
} voice_cmd_type_t;
|
|
|
|
enum {
|
|
VOICE_CMD_MOD_SHIFT = 1 << 0,
|
|
VOICE_CMD_MOD_CTRL = 1 << 1,
|
|
VOICE_CMD_MOD_ALT = 1 << 2,
|
|
VOICE_CMD_MOD_SUPER = 1 << 3,
|
|
};
|
|
|
|
typedef struct {
|
|
char trigger[128];
|
|
voice_cmd_type_t type;
|
|
char text_value[256];
|
|
unsigned int keyval;
|
|
unsigned int modifiers;
|
|
char display_key[128];
|
|
} voice_cmd_t;
|
|
|
|
typedef struct {
|
|
voice_cmd_t *cmds;
|
|
int count;
|
|
int capacity;
|
|
int enabled;
|
|
} voice_cmd_list_t;
|
|
|
|
typedef int (*voice_cmd_key_callback_t)(unsigned int keyval, unsigned int modifiers, void *user_data);
|
|
|
|
void voice_cmd_init(voice_cmd_list_t *list);
|
|
void voice_cmd_free(voice_cmd_list_t *list);
|
|
int voice_cmd_add(voice_cmd_list_t *list, const voice_cmd_t *cmd);
|
|
int voice_cmd_remove(voice_cmd_list_t *list, int index);
|
|
int voice_cmd_load(const char *path, voice_cmd_list_t *list);
|
|
int voice_cmd_save(const char *path, const voice_cmd_list_t *list);
|
|
int voice_cmd_seed_defaults(voice_cmd_list_t *list);
|
|
char *voice_cmd_apply(const char *input,
|
|
const voice_cmd_list_t *list,
|
|
voice_cmd_key_callback_t key_cb,
|
|
void *user_data);
|
|
|
|
void voice_cmd_format_key_combo(unsigned int keyval,
|
|
unsigned int modifiers,
|
|
char *out,
|
|
size_t out_sz);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|