mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-01 07:59:05 +08:00
4b5609238b
git-svn-id: https://tesseract-ocr.googlecode.com/svn/trunk@156 d0cd1f9f-072b-0410-8dd7-cf729c803f20
192 lines
8.4 KiB
C
192 lines
8.4 KiB
C
/**********************************************************************
|
|
* File: ocrshell.h
|
|
* Description: Code for the OCR side of the OCR API.
|
|
* Author: Hewlett-Packard Co
|
|
*
|
|
* (C) Copyright 1996, Hewlett-Packard Co.
|
|
** 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.
|
|
*
|
|
**********************************************************************/
|
|
|
|
#ifndef OCRSHELL_H
|
|
#define OCRSHELL_H
|
|
|
|
/**********************************************************************
|
|
* This file contains code for the OCR side of the HP OCR interface.
|
|
* The code is designed to be used with either an ANSI C or C++ compiler.
|
|
* The structures are designed to allow them to be used with any
|
|
* structure alignment upto 8.
|
|
**********************************************************************/
|
|
|
|
#include "ocrclass.h"
|
|
|
|
#define EUC_FORMAT_MASK 0xe0
|
|
|
|
/**********************************************************************
|
|
* ocr_open_shm
|
|
*
|
|
* Attempt to connect to the shared memory segment and semaphores used
|
|
* in talking to the OCR engine. Called from OCR engine.
|
|
* The parameters are the command line arguments in order.
|
|
* The final parameter is a return value indicating the user-requested
|
|
* language. The value will be LANGE_NONE if the user wishes to use
|
|
* the default.
|
|
**********************************************************************/
|
|
#ifdef __MAC__
|
|
inT16 ocr_open_shm(uinT16 *lang);
|
|
#else
|
|
inT16 ocr_open_shm( /*open the shm */
|
|
const char *shm_h, /*handle of shm */
|
|
const char *shm_size, /*size of shm segment */
|
|
const char *mutex_h, /*hp mutex */
|
|
const char *ocr_h, /*ocr semaphore */
|
|
const char *hp_h, /*hp semaphore */
|
|
const char *lang_str, /*language */
|
|
uinT16 *lang /*required language */
|
|
);
|
|
#endif
|
|
|
|
/**********************************************************************
|
|
* ocr_append_fontinfo
|
|
*
|
|
* Initialize one of the font descriptors.
|
|
**********************************************************************/
|
|
|
|
inT16 ocr_append_fontinfo( /*put info into shm */
|
|
uinT16 language, /*default language */
|
|
uinT8 font_family, /*serif/not, fixed/not */
|
|
uinT8 char_set, /*character set standard */
|
|
uinT8 pitch, /*fixed or prop */
|
|
const char *name /*plain ascii name */
|
|
);
|
|
|
|
/**********************************************************************
|
|
* ocr_setup_startinfo
|
|
*
|
|
* Setup the info on the OCR engine. Uses 16 bit chars to name the
|
|
* engine.
|
|
**********************************************************************/
|
|
|
|
inT16 ocr_setup_startinfo( /*put info into shm */
|
|
uinT32 protocol, /*interface version */
|
|
uinT16 language, /*default language */
|
|
const uinT16 *name, /*name of engine */
|
|
const uinT16 *version /*version of engine */
|
|
);
|
|
|
|
/**********************************************************************
|
|
* ocr_setup_startinfo_ansi
|
|
*
|
|
* Setup the info on the OCR engine. Uses 8 bit chars to name the
|
|
* engine.
|
|
**********************************************************************/
|
|
|
|
inT16 ocr_setup_startinfo_ansi( /*put info into shm */
|
|
uinT32 protocol, /*interface version */
|
|
uinT16 language, /*default language */
|
|
const char *name, /*name of engine */
|
|
const char *version /*version of engine */
|
|
);
|
|
|
|
/**********************************************************************
|
|
* ocr_get_first_image_strip
|
|
*
|
|
* Wait for the master to send the first image strip and return a
|
|
* pointer to it. The result is NULL if it is time to exit.
|
|
**********************************************************************/
|
|
|
|
/*get image strip */
|
|
ESTRIP_DESC *ocr_get_first_image_strip();
|
|
|
|
/**********************************************************************
|
|
* ocr_get_next_image_strip
|
|
*
|
|
* Wait for the master to send the next image strip and return a
|
|
* pointer to it. The result is NULL if it is time to exit.
|
|
**********************************************************************/
|
|
|
|
/*get image strip */
|
|
ESTRIP_DESC *ocr_get_next_image_strip();
|
|
|
|
/**********************************************************************
|
|
* ocr_setup_monitor
|
|
*
|
|
* Setup the progress monitor. Call before starting the recognize task.
|
|
**********************************************************************/
|
|
|
|
ETEXT_DESC *ocr_setup_monitor(); /*setup monitor */
|
|
|
|
/**********************************************************************
|
|
* ocr_char_space
|
|
*
|
|
* Return the number of chars that can be fitted into the buffer.
|
|
**********************************************************************/
|
|
|
|
inT32 ocr_char_space(); /*put char into shm */
|
|
|
|
/**********************************************************************
|
|
* ocr_append_char
|
|
*
|
|
* Add a character to the output. Returns OKAY if successful, HPERR
|
|
* if there was insufficient room in the buffer.
|
|
**********************************************************************/
|
|
|
|
inT16 ocr_append_char( /*put char into shm */
|
|
uinT16 char_code, /*character itself */
|
|
inT16 left, /*of char (-1) */
|
|
inT16 right, /*of char (-1) */
|
|
inT16 top, /*of char (-1) */
|
|
inT16 bottom, /*of char (-1) */
|
|
inT16 font_index, /*what font (-1) */
|
|
uinT8 confidence, /*0=perfect, 100=reject (0/100) */
|
|
uinT8 point_size, /*of char, 72=i inch, (10) */
|
|
inT8 blanks, /*no of spaces before this char (1) */
|
|
uinT8 enhancement, /*char enhancement (0) */
|
|
OCR_CHAR_DIRECTION text_dir, /*rendering direction (OCR_CDIR_RIGHT_LEFT) */
|
|
OCR_LINE_DIRECTION line_dir, /*line rendering direction (OCR_LDIR_DOWN_RIGHT) */
|
|
OCR_NEWLINE_TYPE nl_type /*type of newline (if any) (OCR_NL_NONE) */
|
|
);
|
|
|
|
/**********************************************************************
|
|
* ocr_send_text
|
|
*
|
|
* Send the text to the host and wait for the ack.
|
|
* Use this function after a sequence of ocr_append_text calls to
|
|
* actually sent the text to the master process.
|
|
* Set more to come TRUE if there is more text in this page, FALSE
|
|
* if the OCR engine is now ready to receive another image.
|
|
**********************************************************************/
|
|
|
|
inT16 ocr_send_text( /*send shm */
|
|
BOOL8 more_to_come /*any text left */
|
|
);
|
|
|
|
/**********************************************************************
|
|
* ocr_shutdown
|
|
*
|
|
* Closedown communications with the HP side and free up handles.
|
|
**********************************************************************/
|
|
|
|
inT16 ocr_shutdown(); /*closedown */
|
|
|
|
/**********************************************************************
|
|
* ocr_error
|
|
*
|
|
* Inform the HP side of an error.
|
|
* The OCR engine should do any cleanup of its own and exit aferwards.
|
|
* Uses the current state to determine how to send it and cleanup.
|
|
**********************************************************************/
|
|
|
|
void ocr_error( /*send an error code */
|
|
OCR_ERR_CODE code /*error code */
|
|
);
|
|
#endif
|