/*
* 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_*/