1 /* 2 * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 /** 17 * @file picoknow.h 18 * 19 * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland 20 * All rights reserved. 21 * 22 * History: 23 * - 2009-04-20 -- initial version 24 * 25 */ 26 /** 27 * @addtogroup picoknow 28 29 * <b> Pico knowledge base </b>\n 30 * 31 */ 32 33 #ifndef PICOKNOW_H_ 34 #define PICOKNOW_H_ 35 36 #include "picodefs.h" 37 #include "picoos.h" 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 #if 0 43 } 44 #endif 45 46 47 typedef enum picoknow_kb_id { 48 PICOKNOW_KBID_NULL = 0, 49 /* base / tpp 1 - 7 */ 50 PICOKNOW_KBID_TPP_MAIN = 1, 51 PICOKNOW_KBID_TAB_GRAPHS = 2, 52 PICOKNOW_KBID_TAB_PHONES = 3, 53 PICOKNOW_KBID_TAB_POS = 4, 54 PICOKNOW_KBID_FIXED_IDS = 7, 55 /* debug */ 56 PICOKNOW_KBID_DBG = 8, 57 58 /* textana 9 - 32 */ 59 PICOKNOW_KBID_LEX_MAIN = 9, 60 PICOKNOW_KBID_DT_POSP = 10, 61 PICOKNOW_KBID_DT_POSD = 11, 62 PICOKNOW_KBID_DT_G2P = 12, 63 PICOKNOW_KBID_FST_WPHO_1 = 13, 64 PICOKNOW_KBID_FST_WPHO_2 = 14, 65 PICOKNOW_KBID_FST_WPHO_3 = 15, 66 PICOKNOW_KBID_FST_WPHO_4 = 16, 67 PICOKNOW_KBID_FST_WPHO_5 = 17, 68 PICOKNOW_KBID_DT_PHR = 18, 69 PICOKNOW_KBID_DT_ACC = 19, 70 PICOKNOW_KBID_FST_SPHO_1 = 20, 71 PICOKNOW_KBID_FST_SPHO_2 = 21, 72 PICOKNOW_KBID_FST_SPHO_3 = 22, 73 PICOKNOW_KBID_FST_SPHO_4 = 23, 74 PICOKNOW_KBID_FST_SPHO_5 = 24, 75 76 PICOKNOW_KBID_FST_XSAMPA_PARSE = 25, 77 PICOKNOW_KBID_FST_SVOXPA_PARSE = 26, 78 PICOKNOW_KBID_FST_XSAMPA2SVOXPA = 27, 79 80 PICOKNOW_KBID_FST_SPHO_6 = 28, 81 PICOKNOW_KBID_FST_SPHO_7 = 29, 82 PICOKNOW_KBID_FST_SPHO_8 = 30, 83 PICOKNOW_KBID_FST_SPHO_9 = 31, 84 PICOKNOW_KBID_FST_SPHO_10 = 32, 85 86 87 /* siggen 33 - 48 */ 88 PICOKNOW_KBID_DT_DUR = 34, 89 PICOKNOW_KBID_DT_LFZ1 = 35, 90 PICOKNOW_KBID_DT_LFZ2 = 36, 91 PICOKNOW_KBID_DT_LFZ3 = 37, 92 PICOKNOW_KBID_DT_LFZ4 = 38, 93 PICOKNOW_KBID_DT_LFZ5 = 39, 94 PICOKNOW_KBID_DT_MGC1 = 40, 95 PICOKNOW_KBID_DT_MGC2 = 41, 96 PICOKNOW_KBID_DT_MGC3 = 42, 97 PICOKNOW_KBID_DT_MGC4 = 43, 98 PICOKNOW_KBID_DT_MGC5 = 44, 99 PICOKNOW_KBID_PDF_DUR = 45, 100 PICOKNOW_KBID_PDF_LFZ = 46, 101 PICOKNOW_KBID_PDF_MGC = 47, 102 PICOKNOW_KBID_PDF_PHS = 48, 103 104 /* user tpp 49 - 56 */ 105 PICOKNOW_KBID_TPP_USER_1 = 49, 106 PICOKNOW_KBID_TPP_USER_2 = 50, 107 108 /* user lex 57 - 63 */ 109 PICOKNOW_KBID_LEX_USER_1 = 57, 110 PICOKNOW_KBID_LEX_USER_2 = 58, 111 112 PICOKNOW_KBID_DUMMY = 127 113 114 } picoknow_kb_id_t; 115 116 #define PICOKNOW_DEFAULT_RESOURCE_NAME (picoos_char *) "__PICO_DEF_RSRC" 117 118 #define PICOKNOW_MAX_NUM_WPHO_FSTS 5 119 #define PICOKNOW_MAX_NUM_SPHO_FSTS 10 120 #define PICOKNOW_MAX_NUM_ULEX 2 121 #define PICOKNOW_MAX_NUM_UTPP 2 122 123 #define PICOKNOW_KBID_WPHO_ARRAY { \ 124 PICOKNOW_KBID_FST_WPHO_1, \ 125 PICOKNOW_KBID_FST_WPHO_2, \ 126 PICOKNOW_KBID_FST_WPHO_3, \ 127 PICOKNOW_KBID_FST_WPHO_4, \ 128 PICOKNOW_KBID_FST_WPHO_5 \ 129 } 130 131 #define PICOKNOW_KBID_SPHO_ARRAY { \ 132 PICOKNOW_KBID_FST_SPHO_1, \ 133 PICOKNOW_KBID_FST_SPHO_2, \ 134 PICOKNOW_KBID_FST_SPHO_3, \ 135 PICOKNOW_KBID_FST_SPHO_4, \ 136 PICOKNOW_KBID_FST_SPHO_5, \ 137 PICOKNOW_KBID_FST_SPHO_6, \ 138 PICOKNOW_KBID_FST_SPHO_7, \ 139 PICOKNOW_KBID_FST_SPHO_8, \ 140 PICOKNOW_KBID_FST_SPHO_9, \ 141 PICOKNOW_KBID_FST_SPHO_10 \ 142 } 143 144 #define PICOKNOW_KBID_ULEX_ARRAY { \ 145 PICOKNOW_KBID_LEX_USER_1, \ 146 PICOKNOW_KBID_LEX_USER_2, \ 147 } 148 149 #define PICOKNOW_KBID_UTPP_ARRAY { \ 150 PICOKNOW_KBID_TPP_USER_1, \ 151 PICOKNOW_KBID_TPP_USER_2, \ 152 } 153 154 /* max size (including NULLC) of descriptive name corresponding to KBID */ 155 #define PICOKNOW_MAX_KB_NAME_SIZ 16 156 157 /* maximum number of kbs in one resource */ 158 #define PICOKNOW_MAX_NUM_RESOURCE_KBS 64 159 160 161 /** class : KnowledgeBase 162 * shortcut : kb 163 * 164 */ 165 typedef struct picoknow_knowledge_base * picoknow_KnowledgeBase; 166 167 typedef pico_status_t (* picoknow_kbSubDeallocate) (register picoknow_KnowledgeBase this, picoos_MemoryManager mm); 168 169 typedef struct picoknow_knowledge_base { 170 /* public */ 171 picoknow_KnowledgeBase next; 172 picoknow_kb_id_t id; 173 picoos_uint8 * base; /* start address */ 174 picoos_uint32 size; /* size */ 175 176 /* protected */ 177 picoknow_kbSubDeallocate subDeallocate; 178 void * subObj; 179 } picoknow_knowledge_base_t; 180 181 extern picoknow_KnowledgeBase picoknow_newKnowledgeBase(picoos_MemoryManager mm); 182 183 extern void picoknow_disposeKnowledgeBase(picoos_MemoryManager mm, picoknow_KnowledgeBase * this); 184 185 #ifdef __cplusplus 186 } 187 #endif 188 189 190 #endif /*PICOKNOW_H_*/ 191