2 |
- |
1 |
/*
|
|
|
2 |
* hre_internal.h: Internal Interface for Recognizer.
|
|
|
3 |
* Author: James Kempf
|
|
|
4 |
* Created On: Thu Nov 5 10:54:18 1992
|
|
|
5 |
* Last Modified By: James Kempf
|
|
|
6 |
* Last Modified On: Fri Sep 23 13:51:15 1994
|
|
|
7 |
* Update Count: 99
|
|
|
8 |
* Copyright (c) 1994 by Sun Microsystems Computer Company
|
|
|
9 |
* All rights reserved.
|
|
|
10 |
*
|
|
|
11 |
* Use and copying of this software and preparation of
|
|
|
12 |
* derivative works based upon this software are permitted.
|
|
|
13 |
* Any distribution of this software or derivative works
|
|
|
14 |
* must comply with all applicable United States export control
|
|
|
15 |
* laws.
|
|
|
16 |
*
|
|
|
17 |
* This software is made available as is, and Sun Microsystems
|
|
|
18 |
* Computer Company makes no warranty about the software, its
|
|
|
19 |
* performance, or its conformity to any specification
|
|
|
20 |
*/
|
|
|
21 |
|
|
|
22 |
/*Avoids forward reference problem.*/
|
|
|
23 |
|
|
|
24 |
/*
|
|
|
25 |
* Internal view of wordset. The recognition engine uses this view to
|
|
|
26 |
* maintain information about which recognizer object this wordset
|
|
|
27 |
* belongs to, which file (in case it needs to be saved), and internal
|
|
|
28 |
* data structures.
|
|
|
29 |
*/
|
|
|
30 |
|
|
|
31 |
struct _wordset {
|
|
|
32 |
char* ws_pathname; /*Path name to word set file.*/
|
|
|
33 |
recognizer ws_recognizer; /*To whom it belongs.*/
|
|
|
34 |
void* ws_internal; /*Internal data structures.*/
|
|
|
35 |
};
|
|
|
36 |
|
|
|
37 |
/*
|
|
|
38 |
* Internal view of the recognizer struct. This view is only available
|
|
|
39 |
* to OEM clients who implement a recognizer shared library. Clients
|
|
|
40 |
* of the recognizer itself see it as an opaque data type. The struct
|
|
|
41 |
* contains a function pointer for each function in the client API.
|
|
|
42 |
*/
|
|
|
43 |
|
|
|
44 |
struct _Recognizer {
|
|
|
45 |
uint recognizer_magic;
|
|
|
46 |
char *recognizer_version;
|
|
|
47 |
|
|
|
48 |
rec_info *recognizer_info;
|
|
|
49 |
void *recognizer_specific;
|
|
|
50 |
int (*recognizer_load_state)(struct _Recognizer*, char*, char*);
|
|
|
51 |
int (*recognizer_save_state)(struct _Recognizer*, char*, char*);
|
|
|
52 |
char* (*recognizer_error)(struct _Recognizer*);
|
|
|
53 |
wordset (*recognizer_load_dictionary)(struct _Recognizer*, char*, char*);
|
|
|
54 |
int (*recognizer_save_dictionary)(struct _Recognizer*, char*, char*, wordset);
|
|
|
55 |
|
|
|
56 |
int (*recognizer_free_dictionary)(struct _Recognizer*, wordset);
|
|
|
57 |
int (*recognizer_add_to_dictionary)(struct _Recognizer*, letterset*, wordset);
|
|
|
58 |
int (*recognizer_delete_from_dictionary)(struct _Recognizer*, letterset*, wordset);
|
|
|
59 |
int (*recognizer_set_context)(struct _Recognizer*,rc*);
|
|
|
60 |
rc* (*recognizer_get_context)(struct _Recognizer*);
|
|
|
61 |
|
|
|
62 |
int (*recognizer_clear)(struct _Recognizer*, bool);
|
|
|
63 |
int (*recognizer_get_buffer)(struct _Recognizer*, uint*, Stroke**);
|
|
|
64 |
|
|
|
65 |
int (*recognizer_set_buffer)(struct _Recognizer*, uint, Stroke*);
|
|
|
66 |
int (*recognizer_translate)(struct _Recognizer*, uint, Stroke*, bool, int*, rec_alternative**);
|
|
|
67 |
rec_fn* (*recognizer_get_extension_functions)(struct _Recognizer*);
|
|
|
68 |
char** (*recognizer_get_gesture_names)(struct _Recognizer*);
|
|
|
69 |
xgesture (*recognizer_set_gesture_action)(struct _Recognizer*, char*, xgesture, void*);
|
|
|
70 |
uint recognizer_end_magic;
|
|
|
71 |
};
|
|
|
72 |
|
|
|
73 |
/*
|
|
|
74 |
* recognizer_internal_initialize - Allocate and initialize the recognizer
|
|
|
75 |
* object. The recognition shared library has the responsibility for filling
|
|
|
76 |
* in all the function pointers for the recognition functions. This
|
|
|
77 |
* function must be defined as a global function within the shared
|
|
|
78 |
* library, so it can be accessed using dlsym() when the recognizer
|
|
|
79 |
* shared library is loaded. It returns NULL if an error occured and
|
|
|
80 |
* sets errno to indicate what.
|
|
|
81 |
*/
|
|
|
82 |
|
|
|
83 |
typedef recognizer (*recognizer_internal_initialize)(rec_info* ri);
|
|
|
84 |
|
|
|
85 |
/*Function header definition for recognizer internal initializer.*/
|
|
|
86 |
|
|
|
87 |
#define RECOGNIZER_INITIALIZE(_a) \
|
|
|
88 |
recognizer __recognizer_internal_initialize(rec_info* _a)
|
|
|
89 |
|
|
|
90 |
/*
|
|
|
91 |
* recognizer_internal_finalize - Deallocate and deinitialize the recognizer
|
|
|
92 |
* object. If the recognizer has allocated any additional storage, it should
|
|
|
93 |
* be deallocated as well. Returns 0 if successful, -1 if the argument
|
|
|
94 |
* wasn't a recognizer or wasn't a recognizer handled by this library.
|
|
|
95 |
*/
|
|
|
96 |
|
|
|
97 |
typedef int (*recognizer_internal_finalize)(recognizer r);
|
|
|
98 |
|
|
|
99 |
#define RECOGNIZER_FINALIZE(_a) \
|
|
|
100 |
int __recognizer_internal_finalize(recognizer _a)
|
|
|
101 |
|
|
|
102 |
/*
|
|
|
103 |
* The following are for creating HRE structures.
|
|
|
104 |
*/
|
|
|
105 |
|
|
|
106 |
recognizer make_recognizer(rec_info* ri);
|
|
|
107 |
void delete_recognizer(recognizer rec);
|
|
|
108 |
|
|
|
109 |
RECOGNIZER_FINALIZE(_a);
|
|
|
110 |
rec_alternative* make_rec_alternative_array(uint size);
|
|
|
111 |
rec_correlation* make_rec_correlation(char type, uint size, void* trans, rec_confidence conf, uint ps_size);
|
|
|
112 |
|
|
|
113 |
rec_fn*
|
|
|
114 |
make_rec_fn_array(uint size);
|
|
|
115 |
void
|
|
|
116 |
delete_rec_fn_array(rec_fn* rf);
|
|
|
117 |
|
|
|
118 |
gesture*
|
|
|
119 |
initialize_gesture(gesture* g,
|
|
|
120 |
char* name,
|
|
|
121 |
uint nhs,
|
|
|
122 |
pen_point* hspots,
|
|
|
123 |
pen_rect bbox,
|
|
|
124 |
xgesture cback,
|
|
|
125 |
void* wsinfo);
|
|
|
126 |
gesture*
|
|
|
127 |
make_gesture_array(uint size);
|
|
|
128 |
void
|
|
|
129 |
delete_gesture_array(uint size,gesture* ga,bool delete_points_p);
|
|
|
130 |
|
|
|
131 |
Stroke*
|
|
|
132 |
concatenate_Strokes(int nstrokes1,
|
|
|
133 |
Stroke* strokes1,
|
|
|
134 |
int nstrokes2,
|
|
|
135 |
Stroke* strokes2,
|
|
|
136 |
int* nstrokes3,
|
|
|
137 |
Stroke** strokes3);
|
|
|
138 |
|
|
|
139 |
rec_alternative* initialize_rec_alternative(rec_alternative* ra, uint);
|
|
|
140 |
|
|
|
141 |
rec_element* initialize_rec_element(rec_element*, char, uint, void*, rec_confidence);
|
|
|
142 |
|
|
|
143 |
/*
|
|
|
144 |
* Pathnames, etc.
|
|
|
145 |
*/
|
|
|
146 |
|
|
|
147 |
#define REC_DEFAULT_LOCALE "C"
|
|
|
148 |
#define RECHOME "RECHOME"
|
|
|
149 |
#define LANG "LANG"
|