2 * ocr.c forms a mostly-self-contained bit
3 * so we put its declarations in this separate file
22 #include <sys/types.h>
31 typedef uint32_t Pixcol;
32 #define PSPIXCOL(priscan) priscan##32
35 const char *s; /* valid until next call to ocr() */
36 int l,r; /* column numbers */
37 unsigned ctxmap; /* match context index */
41 typedef const struct OcrCellTypeInfo *OcrCellType;
42 extern const struct OcrCellTypeInfo ocr_celltype_text;
43 extern const struct OcrCellTypeInfo ocr_celltype_number;
46 typedef struct OcrReader OcrReader;
47 OcrReader *ocr_init(int h);
49 OcrResultGlyph *ocr(OcrReader *rd, OcrCellType, int w, Pixcol cols[]);
50 /* return value is array terminated by {0,-1,-1}
51 * array is valid until next call to ocr()
55 /*----- debugging arrangements, rather contingent -----*/
57 #define DEBUG_FLAG_LIST \
64 #define DF(f) dbg__shift_##f,
69 #define DF(f) dbg_##f = 1 << dbg__shift_##f,
76 #define DEBUGP(f) (!!(debug_flags & dbg_##f))
78 void debug_flush(void);
80 #define eassert assert
83 const char *get_vardir(void);
85 #define DEBUG_DEFINE_DEBUGF(f) \
86 static void vdebugf(const char *fmt, va_list al) { \
88 vfprintf(debug,fmt,al); \
90 static void debugf(const char *fmt, ...) { \
91 va_list al; va_start(al,fmt); vdebugf(fmt,al); va_end(al); \