chiark / gitweb /
Pass and use possible as well as actual contexts
[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
35 typedef uint32_t Pixcol;
36 #define PSPIXCOL(priscan) priscan##32
37
38 typedef struct {
39   const char *s; /* valid until next call to ocr() */
40   int l,r; /* column numbers */
41   int match; /* match context index */
42   unsigned ctxmap; /* possible match contexts */
43 } OcrResultGlyph;
44
45
46 typedef const struct OcrCellTypeInfo *OcrCellType;
47 extern const struct OcrCellTypeInfo ocr_celltype_text;
48 extern const struct OcrCellTypeInfo ocr_celltype_number;
49 const char *ocr_celltype_name(OcrCellType ct);
50
51
52 typedef struct OcrReader OcrReader;
53 OcrReader *ocr_init(int h);
54
55 OcrResultGlyph *ocr(OcrReader *rd, OcrCellType, int w, Pixcol cols[]);
56   /* return value is array terminated by {0,-1,-1}
57    * array is valid until next call to ocr()
58    */
59
60
61 extern const char *o_resolver;
62
63 FILE *resolve_start(void);
64 void resolve_finish(void);
65
66
67 #endif /*OCR_H*/