X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=pctb%2Focr.h;fp=pctb%2Focr.h;h=0000000000000000000000000000000000000000;hp=7d70b1de58a65b5600f5d8573aebab10439a1d3d;hb=c68fb80a6bbf7acbcac4b2cb2143f5fea745cd2b;hpb=b9cce976550d000f15e5a8f2b690740bdae1e468 diff --git a/pctb/ocr.h b/pctb/ocr.h deleted file mode 100644 index 7d70b1d..0000000 --- a/pctb/ocr.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * ocr.c forms a mostly-self-contained bit - * so we put its declarations in this separate file - */ -/* - * This is part of ypp-sc-tools, a set of third-party tools for assisting - * players of Yohoho Puzzle Pirates. - * - * Copyright (C) 2009 Ian Jackson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Yohoho and Puzzle Pirates are probably trademarks of Three Rings and - * are used without permission. This program is not endorsed or - * sponsored by Three Rings. - */ - -#ifndef OCR_H -#define OCR_H - -#include "common.h" - - -#define AADEPTH 2 -#define AAMAXVAL ((1<w[pixcol_p_word(y)] |= pixval << pixcol_p_shift(y); -} -static inline unsigned int pixcol_p_get(const Pixcol *pixcol, int y) { - return (pixcol->w[pixcol_p_word(y)] >> pixcol_p_shift(y)) & AAMAXVAL; -} -static inline int pixcol_cmp(const Pixcol *pixcol1, const Pixcol *pixcol2) { - return memcmp(pixcol1, pixcol2, sizeof(*pixcol1)); -} -static inline int pixcol_nonzero(const Pixcol *pixcol) { - static const Pixcol zero; - return pixcol_cmp(pixcol, &zero); -} - -#if AADEPTH==3 -# define PRPIXCOL1 "%0*" PRIo32 -# define PIXCOL_P_PER_FMT 1 -#elif AADEPTH==2 -# define PRPIXCOL1 "%0*" PRIx32 -# define PIXCOL_P_PER_FMT 2 -#else -# error need to implement PRPIXCOL1 for this AADEPTH -#endif - -# define PIXCOL_FMT_PER_WORD (PIXCOL_P_PER_WORD / PIXCOL_P_PER_FMT) - -#if PIXCOL_WORDS==2 -# define PIXCOL_PRFMT \ - PRPIXCOL1 "-" \ - PRPIXCOL1 -# define PIXCOL_PRVAL(pixcol) \ - PIXCOL_FMT_PER_WORD, (pixcol).w[1], \ - PIXCOL_FMT_PER_WORD, (pixcol).w[0] -#elif PIXCOL_WORDS==3 -# define PIXCOL_PRFMT \ - PRPIXCOL1 "-" \ - PRPIXCOL1 "-" \ - PRPIXCOL1 -# define PIXCOL_PRVAL(pixcol) \ - PIXCOL_FMT_PER_WORD, (pixcol).w[2], \ - PIXCOL_FMT_PER_WORD, (pixcol).w[1], \ - PIXCOL_FMT_PER_WORD, (pixcol).w[0] -#else -# error need to implement PIXCOL_PR{FMT,VAL} for this PIXCOL_WORDS -#endif - -typedef struct { - const char *s; /* valid until next call to ocr() */ - int l,r; /* column numbers */ - int match; /* match context index */ - unsigned ctxmap; /* possible match contexts */ -} OcrResultGlyph; - - -typedef const struct OcrCellTypeInfo *OcrCellType; -extern const struct OcrCellTypeInfo ocr_celltype_text; -extern const struct OcrCellTypeInfo ocr_celltype_number; -const char *ocr_celltype_name(OcrCellType ct); - - -typedef struct OcrReader OcrReader; -OcrReader *ocr_init(int h); -void ocr_showcharsets(void); - -OcrResultGlyph *ocr(OcrReader *rd, OcrCellType, int w, const Pixcol cols[]); - /* return value is array terminated by {0,-1,-1} - * array is valid until next call to ocr() - */ - - -extern const char *o_resolver; - -FILE *resolve_start(void); -void resolve_finish(void); - - -#endif /*OCR_H*/