00001
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __MULTI_GRAM__
00025 #define __MULTI_GRAM__
00026
00027 #include <julius.h>
00028
00029 #ifdef USE_DFA
00030
00032 #define MAXGRAMNAMELEN 512
00033
00035 typedef struct __multi_gram__ {
00036 char name[MAXGRAMNAMELEN];
00037 unsigned short id;
00038 DFA_INFO *dfa;
00039 WORD_INFO *winfo;
00040 int hook;
00041 boolean newbie;
00042 boolean active;
00043
00044 int state_begin;
00045 int cate_begin;
00046 int word_begin;
00047 struct __multi_gram__ *next;
00048 } MULTIGRAM;
00049
00051 typedef struct __gram_list__ {
00052 char *dfafile;
00053 char *dictfile;
00054 struct __gram_list__ *next;
00055 } GRAMLIST;
00056
00057
00058 #define MULTIGRAM_DEFAULT 0
00059 #define MULTIGRAM_DELETE 1
00060 #define MULTIGRAM_ACTIVATE 2
00061 #define MULTIGRAM_DEACTIVATE 3
00062
00063 void multigram_add(DFA_INFO *dfa, WORD_INFO *winfo, char *name);
00064 boolean multigram_delete(int gid);
00065 void multigram_delete_all();
00066 boolean multigram_exec();
00067 void multigram_activate(int gid);
00068 void multigram_deactivate(int gid);
00069
00070 void multigram_read_file(char *dfa_file, char *dict_file);
00071 void multigram_add_gramlist(char *dfafile, char *dictfile);
00072 void multigram_remove_gramlist();
00073 void multigram_read_all_gramlist();
00074 void multigram_add_prefix_list(char *prefix_list, char *cwd);
00075 void multigram_add_prefix_filelist(char *listfile);
00076 int multigram_get_active_num();
00077 int multigram_get_gram_from_category(int category);
00078
00079 #endif
00080
00081 #endif