diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/libscribble/hre_internal.h |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/libscribble/hre_internal.h')
-rwxr-xr-x | sys/src/libscribble/hre_internal.h | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/sys/src/libscribble/hre_internal.h b/sys/src/libscribble/hre_internal.h new file mode 100755 index 000000000..4fb73b2f3 --- /dev/null +++ b/sys/src/libscribble/hre_internal.h @@ -0,0 +1,149 @@ +/* + * hre_internal.h: Internal Interface for Recognizer. + * Author: James Kempf + * Created On: Thu Nov 5 10:54:18 1992 + * Last Modified By: James Kempf + * Last Modified On: Fri Sep 23 13:51:15 1994 + * Update Count: 99 + * Copyright (c) 1994 by Sun Microsystems Computer Company + * All rights reserved. + * + * Use and copying of this software and preparation of + * derivative works based upon this software are permitted. + * Any distribution of this software or derivative works + * must comply with all applicable United States export control + * laws. + * + * This software is made available as is, and Sun Microsystems + * Computer Company makes no warranty about the software, its + * performance, or its conformity to any specification + */ + +/*Avoids forward reference problem.*/ + +/* + * Internal view of wordset. The recognition engine uses this view to + * maintain information about which recognizer object this wordset + * belongs to, which file (in case it needs to be saved), and internal + * data structures. +*/ + +struct _wordset { + char* ws_pathname; /*Path name to word set file.*/ + recognizer ws_recognizer; /*To whom it belongs.*/ + void* ws_internal; /*Internal data structures.*/ +}; + +/* + * Internal view of the recognizer struct. This view is only available + * to OEM clients who implement a recognizer shared library. Clients + * of the recognizer itself see it as an opaque data type. The struct + * contains a function pointer for each function in the client API. +*/ + +struct _Recognizer { + uint recognizer_magic; + char *recognizer_version; + + rec_info *recognizer_info; + void *recognizer_specific; + int (*recognizer_load_state)(struct _Recognizer*, char*, char*); + int (*recognizer_save_state)(struct _Recognizer*, char*, char*); + char* (*recognizer_error)(struct _Recognizer*); + wordset (*recognizer_load_dictionary)(struct _Recognizer*, char*, char*); + int (*recognizer_save_dictionary)(struct _Recognizer*, char*, char*, wordset); + + int (*recognizer_free_dictionary)(struct _Recognizer*, wordset); + int (*recognizer_add_to_dictionary)(struct _Recognizer*, letterset*, wordset); + int (*recognizer_delete_from_dictionary)(struct _Recognizer*, letterset*, wordset); + int (*recognizer_set_context)(struct _Recognizer*,rc*); + rc* (*recognizer_get_context)(struct _Recognizer*); + + int (*recognizer_clear)(struct _Recognizer*, bool); + int (*recognizer_get_buffer)(struct _Recognizer*, uint*, Stroke**); + + int (*recognizer_set_buffer)(struct _Recognizer*, uint, Stroke*); + int (*recognizer_translate)(struct _Recognizer*, uint, Stroke*, bool, int*, rec_alternative**); + rec_fn* (*recognizer_get_extension_functions)(struct _Recognizer*); + char** (*recognizer_get_gesture_names)(struct _Recognizer*); + xgesture (*recognizer_set_gesture_action)(struct _Recognizer*, char*, xgesture, void*); + uint recognizer_end_magic; +}; + +/* + * recognizer_internal_initialize - Allocate and initialize the recognizer + * object. The recognition shared library has the responsibility for filling + * in all the function pointers for the recognition functions. This + * function must be defined as a global function within the shared + * library, so it can be accessed using dlsym() when the recognizer + * shared library is loaded. It returns NULL if an error occured and + * sets errno to indicate what. +*/ + +typedef recognizer (*recognizer_internal_initialize)(rec_info* ri); + +/*Function header definition for recognizer internal initializer.*/ + +#define RECOGNIZER_INITIALIZE(_a) \ + recognizer __recognizer_internal_initialize(rec_info* _a) + +/* + * recognizer_internal_finalize - Deallocate and deinitialize the recognizer + * object. If the recognizer has allocated any additional storage, it should + * be deallocated as well. Returns 0 if successful, -1 if the argument + * wasn't a recognizer or wasn't a recognizer handled by this library. +*/ + +typedef int (*recognizer_internal_finalize)(recognizer r); + +#define RECOGNIZER_FINALIZE(_a) \ + int __recognizer_internal_finalize(recognizer _a) + +/* + * The following are for creating HRE structures. + */ + +recognizer make_recognizer(rec_info* ri); +void delete_recognizer(recognizer rec); + +RECOGNIZER_FINALIZE(_a); +rec_alternative* make_rec_alternative_array(uint size); +rec_correlation* make_rec_correlation(char type, uint size, void* trans, rec_confidence conf, uint ps_size); + +rec_fn* +make_rec_fn_array(uint size); +void +delete_rec_fn_array(rec_fn* rf); + +gesture* +initialize_gesture(gesture* g, + char* name, + uint nhs, + pen_point* hspots, + pen_rect bbox, + xgesture cback, + void* wsinfo); +gesture* +make_gesture_array(uint size); +void +delete_gesture_array(uint size,gesture* ga,bool delete_points_p); + +Stroke* +concatenate_Strokes(int nstrokes1, + Stroke* strokes1, + int nstrokes2, + Stroke* strokes2, + int* nstrokes3, + Stroke** strokes3); + +rec_alternative* initialize_rec_alternative(rec_alternative* ra, uint); + +rec_element* initialize_rec_element(rec_element*, char, uint, void*, rec_confidence); + +/* + * Pathnames, etc. +*/ + +#define REC_DEFAULT_LOCALE "C" +#define RECHOME "RECHOME" +#define LANG "LANG" |