| /* |
| * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| * @file picoknow.h |
| * |
| * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland |
| * All rights reserved. |
| * |
| * History: |
| * - 2009-04-20 -- initial version |
| * |
| */ |
| /** |
| * @addtogroup picoknow |
| |
| * <b> Pico knowledge base </b>\n |
| * |
| */ |
| |
| #ifndef PICOKNOW_H_ |
| #define PICOKNOW_H_ |
| |
| #include "picodefs.h" |
| #include "picoos.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| #if 0 |
| } |
| #endif |
| |
| |
| typedef enum picoknow_kb_id { |
| PICOKNOW_KBID_NULL = 0, |
| /* base / tpp 1 - 7 */ |
| PICOKNOW_KBID_TPP_MAIN = 1, |
| PICOKNOW_KBID_TAB_GRAPHS = 2, |
| PICOKNOW_KBID_TAB_PHONES = 3, |
| PICOKNOW_KBID_TAB_POS = 4, |
| PICOKNOW_KBID_FIXED_IDS = 7, |
| /* debug */ |
| PICOKNOW_KBID_DBG = 8, |
| |
| /* textana 9 - 32 */ |
| PICOKNOW_KBID_LEX_MAIN = 9, |
| PICOKNOW_KBID_DT_POSP = 10, |
| PICOKNOW_KBID_DT_POSD = 11, |
| PICOKNOW_KBID_DT_G2P = 12, |
| PICOKNOW_KBID_FST_WPHO_1 = 13, |
| PICOKNOW_KBID_FST_WPHO_2 = 14, |
| PICOKNOW_KBID_FST_WPHO_3 = 15, |
| PICOKNOW_KBID_FST_WPHO_4 = 16, |
| PICOKNOW_KBID_FST_WPHO_5 = 17, |
| PICOKNOW_KBID_DT_PHR = 18, |
| PICOKNOW_KBID_DT_ACC = 19, |
| PICOKNOW_KBID_FST_SPHO_1 = 20, |
| PICOKNOW_KBID_FST_SPHO_2 = 21, |
| PICOKNOW_KBID_FST_SPHO_3 = 22, |
| PICOKNOW_KBID_FST_SPHO_4 = 23, |
| PICOKNOW_KBID_FST_SPHO_5 = 24, |
| |
| PICOKNOW_KBID_FST_XSAMPA_PARSE = 25, |
| PICOKNOW_KBID_FST_SVOXPA_PARSE = 26, |
| PICOKNOW_KBID_FST_XSAMPA2SVOXPA = 27, |
| |
| PICOKNOW_KBID_FST_SPHO_6 = 28, |
| PICOKNOW_KBID_FST_SPHO_7 = 29, |
| PICOKNOW_KBID_FST_SPHO_8 = 30, |
| PICOKNOW_KBID_FST_SPHO_9 = 31, |
| PICOKNOW_KBID_FST_SPHO_10 = 32, |
| |
| |
| /* siggen 33 - 48 */ |
| PICOKNOW_KBID_DT_DUR = 34, |
| PICOKNOW_KBID_DT_LFZ1 = 35, |
| PICOKNOW_KBID_DT_LFZ2 = 36, |
| PICOKNOW_KBID_DT_LFZ3 = 37, |
| PICOKNOW_KBID_DT_LFZ4 = 38, |
| PICOKNOW_KBID_DT_LFZ5 = 39, |
| PICOKNOW_KBID_DT_MGC1 = 40, |
| PICOKNOW_KBID_DT_MGC2 = 41, |
| PICOKNOW_KBID_DT_MGC3 = 42, |
| PICOKNOW_KBID_DT_MGC4 = 43, |
| PICOKNOW_KBID_DT_MGC5 = 44, |
| PICOKNOW_KBID_PDF_DUR = 45, |
| PICOKNOW_KBID_PDF_LFZ = 46, |
| PICOKNOW_KBID_PDF_MGC = 47, |
| PICOKNOW_KBID_PDF_PHS = 48, |
| |
| /* user tpp 49 - 56 */ |
| PICOKNOW_KBID_TPP_USER_1 = 49, |
| PICOKNOW_KBID_TPP_USER_2 = 50, |
| |
| /* user lex 57 - 63 */ |
| PICOKNOW_KBID_LEX_USER_1 = 57, |
| PICOKNOW_KBID_LEX_USER_2 = 58, |
| |
| PICOKNOW_KBID_DUMMY = 127 |
| |
| } picoknow_kb_id_t; |
| |
| #define PICOKNOW_DEFAULT_RESOURCE_NAME (picoos_char *) "__PICO_DEF_RSRC" |
| |
| #define PICOKNOW_MAX_NUM_WPHO_FSTS 5 |
| #define PICOKNOW_MAX_NUM_SPHO_FSTS 10 |
| #define PICOKNOW_MAX_NUM_ULEX 2 |
| #define PICOKNOW_MAX_NUM_UTPP 2 |
| |
| #define PICOKNOW_KBID_WPHO_ARRAY { \ |
| PICOKNOW_KBID_FST_WPHO_1, \ |
| PICOKNOW_KBID_FST_WPHO_2, \ |
| PICOKNOW_KBID_FST_WPHO_3, \ |
| PICOKNOW_KBID_FST_WPHO_4, \ |
| PICOKNOW_KBID_FST_WPHO_5 \ |
| } |
| |
| #define PICOKNOW_KBID_SPHO_ARRAY { \ |
| PICOKNOW_KBID_FST_SPHO_1, \ |
| PICOKNOW_KBID_FST_SPHO_2, \ |
| PICOKNOW_KBID_FST_SPHO_3, \ |
| PICOKNOW_KBID_FST_SPHO_4, \ |
| PICOKNOW_KBID_FST_SPHO_5, \ |
| PICOKNOW_KBID_FST_SPHO_6, \ |
| PICOKNOW_KBID_FST_SPHO_7, \ |
| PICOKNOW_KBID_FST_SPHO_8, \ |
| PICOKNOW_KBID_FST_SPHO_9, \ |
| PICOKNOW_KBID_FST_SPHO_10 \ |
| } |
| |
| #define PICOKNOW_KBID_ULEX_ARRAY { \ |
| PICOKNOW_KBID_LEX_USER_1, \ |
| PICOKNOW_KBID_LEX_USER_2, \ |
| } |
| |
| #define PICOKNOW_KBID_UTPP_ARRAY { \ |
| PICOKNOW_KBID_TPP_USER_1, \ |
| PICOKNOW_KBID_TPP_USER_2, \ |
| } |
| |
| /* max size (including NULLC) of descriptive name corresponding to KBID */ |
| #define PICOKNOW_MAX_KB_NAME_SIZ 16 |
| |
| /* maximum number of kbs in one resource */ |
| #define PICOKNOW_MAX_NUM_RESOURCE_KBS 64 |
| |
| |
| /** class : KnowledgeBase |
| * shortcut : kb |
| * |
| */ |
| typedef struct picoknow_knowledge_base * picoknow_KnowledgeBase; |
| |
| typedef pico_status_t (* picoknow_kbSubDeallocate) (register picoknow_KnowledgeBase this, picoos_MemoryManager mm); |
| |
| typedef struct picoknow_knowledge_base { |
| /* public */ |
| picoknow_KnowledgeBase next; |
| picoknow_kb_id_t id; |
| picoos_uint8 * base; /* start address */ |
| picoos_uint32 size; /* size */ |
| |
| /* protected */ |
| picoknow_kbSubDeallocate subDeallocate; |
| void * subObj; |
| } picoknow_knowledge_base_t; |
| |
| extern picoknow_KnowledgeBase picoknow_newKnowledgeBase(picoos_MemoryManager mm); |
| |
| extern void picoknow_disposeKnowledgeBase(picoos_MemoryManager mm, picoknow_KnowledgeBase * this); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| |
| #endif /*PICOKNOW_H_*/ |