1053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/*
2053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
3053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
4053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * you may not use this file except in compliance with the License.
6053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * You may obtain a copy of the License at
7053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
8053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
10053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * See the License for the specific language governing permissions and
14053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * limitations under the License.
15053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
16053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#ifndef _OPENWNNJNI_H
17053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define _OPENWNNJNI_H
18053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
19053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/**
20053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Error codes
21053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
22053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_CONVERT_STR_TO_NJC				        (0x00FE)
23053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_CONVERT_NJC_TO_STR				        (0x00FD)
24053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_FREE_WNNWORK					        (0x00FC)
25053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_CLEAR_DICTIONARY_PARAMETERS		        (0x00FB)
26053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SET_DICTIONARY_PARAMETERS		        (0x00FA)
27053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SEARCH_WORD						        (0x00F9)
28053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_WORD						        (0x00F8)
29053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_FREQUENCY					        (0x00F7)
30053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SET_APPROX_PATTERN				        (0x00F6)
31053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_LEFT_PART_OF_SPEECH	       	        (0x00F5)
32053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_RIGHT_PART_OF_SPEECH      	        (0x00F4)
33053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SET_LEFT_PART_OF_SPEECH	       	        (0x00F3)
34053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SET_RIGHT_PART_OF_SPEECH      	        (0x00F2)
35053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SET_STROKE                              (0x00F1)
36053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SET_CANDIDATE                           (0x00F0)
37053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_SELECT_WORD             		        (0x00EF)
38053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_LEFT_PART_OF_SPEECH_SPECIFIED_TYPE  (0x00EE)
39053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_RIGHT_PART_OF_SPEECH_SPECIFIED_TYPE (0x00ED)
40053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_NUMBER_OF_LEFT_POS                  (0x00EC)
41053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_FUNC_JNI_GET_NUMBER_OF_RIGHT_POS                 (0x00EB)
42053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
43053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_ERR_JNI_FUNC_FAILED						        (0x7E00)
44053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_ERR_ALLOC_FAILED							        (0x7D00)
45053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_ERR_NOT_ALLOCATED						        (0x7C00)
46053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_ERR_INVALID_PARAM						        (0x7B00)
47053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_ERR_APPROX_PATTERN_IS_FULL				        (0x7A00)
48053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
49053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/**
50053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Structure of internal work area
51053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
52053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_MAX_CHARSET_FROM_LEN                     1
53053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_MAX_CHARSET_TO_LEN                       3
54053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_APPROXSTORE_SIZE                         (NJ_MAX_CHARSET_FROM_LEN + NJ_TERM_LEN + NJ_MAX_CHARSET_TO_LEN + NJ_TERM_LEN)
55053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
56053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
57053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_JNI_FLAG_NONE                            (0x00)
58053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_JNI_FLAG_ENABLE_CURSOR                   (0x01)
59053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_JNI_FLAG_ENABLE_RESULT                   (0x02)
60053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
61053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projecttypedef struct {
62053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	void*				dicLibHandle;
63053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_DIC_HANDLE		dicHandle[ NJ_MAX_DIC ];
64053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_UINT32			dicSize[ NJ_MAX_DIC ];
65053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_UINT8			dicType[ NJ_MAX_DIC ];
66053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_CHAR				keyString[ NJ_MAX_LEN + NJ_TERM_LEN ];
67053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_RESULT			result;
68053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_CURSOR			cursor;
69053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_SEARCH_CACHE		srhCache[ NJ_MAX_DIC ];
70053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_DIC_SET			dicSet;
71053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_CLASS			wnnClass;
72053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_CHARSET			approxSet;
73053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project	NJ_CHAR				approxStr[ NJ_MAX_CHARSET * NJ_APPROXSTORE_SIZE ];
74053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    NJ_CHAR             previousStroke[ NJ_MAX_LEN + NJ_TERM_LEN ];
75053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    NJ_CHAR             previousCandidate[ NJ_MAX_RESULT_LEN + NJ_TERM_LEN ];
76053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    NJ_UINT8            flag;
77053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project} NJ_JNIWORK;
78053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
79053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/**
80053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Predefined approx patterns
81053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
82053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projecttypedef struct {
83053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    int         size;
84053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    NJ_UINT8*   from;
85053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    NJ_UINT8*   to;
86053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project} PREDEF_APPROX_PATTERN;
87053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
88053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#endif /* _OPENWNNJNI_H */
89