chiark / gitweb /
Much expanded and improved pctb client docs
[ypp-sc-tools.db-test.git] / pctb / ocr.h
1 /*
2  * ocr.c forms a mostly-self-contained bit
3  * so we put its declarations in this separate file
4  */
5 /*
6  *  This is part of ypp-sc-tools, a set of third-party tools for assisting
7  *  players of Yohoho Puzzle Pirates.
8  * 
9  *  Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
10  * 
11  *  This program is free software: you can redistribute it and/or modify
12  *  it under the terms of the GNU General Public License as published by
13  *  the Free Software Foundation, either version 3 of the License, or
14  *  (at your option) any later version.
15  * 
16  *  This program is distributed in the hope that it will be useful,
17  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  *  GNU General Public License for more details.
20  * 
21  *  You should have received a copy of the GNU General Public License
22  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
23  * 
24  *  Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
25  *  are used without permission.  This program is not endorsed or
26  *  sponsored by Three Rings.
27  */
28
29 #ifndef OCR_H
30 #define OCR_H
31
32 #include "common.h"
33
34 #include <string.h>
35 #include <stdio.h>
36 #include <errno.h>
37 #include <assert.h>
38 #include <stdint.h>
39 #include <stdlib.h>
40 #include <unistd.h>
41 #include <inttypes.h>
42
43 #include <sys/wait.h>
44
45
46 typedef uint32_t Pixcol;
47 #define PSPIXCOL(priscan) priscan##32
48
49 typedef struct {
50   const char *s; /* valid until next call to ocr() */
51   int l,r; /* column numbers */
52   unsigned ctxmap; /* match context index */
53 } OcrResultGlyph;
54
55
56 typedef const struct OcrCellTypeInfo *OcrCellType;
57 extern const struct OcrCellTypeInfo ocr_celltype_text;
58 extern const struct OcrCellTypeInfo ocr_celltype_number;
59 const char *ocr_celltype_name(OcrCellType ct);
60
61
62 typedef struct OcrReader OcrReader;
63 OcrReader *ocr_init(int h);
64
65 OcrResultGlyph *ocr(OcrReader *rd, OcrCellType, int w, Pixcol cols[]);
66   /* return value is array terminated by {0,-1,-1}
67    * array is valid until next call to ocr()
68    */
69
70
71 #endif /*OCR_H*/