Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fxbarcode / oned / BC_OneDimReader.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _BC_ONEDUPCEANREADER_H_\r
8 #define _BC_ONEDUPCEANREADER_H_\r
9 class CBC_OneDReader;\r
10 class CBC_CommonBitArray;\r
11 class CBC_OneDimReader;\r
12 class CBC_OneDimReader : public CBC_OneDReader\r
13 {\r
14 private:\r
15     const static int32_t MAX_AVG_VARIANCE;\r
16     const static int32_t MAX_INDIVIDUAL_VARIANCE;\r
17 \r
18     FX_BOOL CheckStandardUPCEANChecksum(CFX_ByteString &s, int32_t &e);\r
19 public:\r
20     const static int32_t START_END_PATTERN[3];\r
21     const static int32_t MIDDLE_PATTERN[5];\r
22     const static int32_t L_PATTERNS[10][4];\r
23     const static int32_t L_AND_G_PATTERNS[20][4];\r
24     CBC_OneDimReader();\r
25     virtual ~CBC_OneDimReader();\r
26     CFX_ByteString DecodeRow(int32_t rowNumber, CBC_CommonBitArray *row, int32_t hints, int32_t &e);\r
27     CFX_ByteString DecodeRow(int32_t rowNumber, CBC_CommonBitArray *row, CFX_Int32Array *startGuardRange, int32_t hints, int32_t &e);\r
28 protected:\r
29     CFX_Int32Array *FindStartGuardPattern(CBC_CommonBitArray *row, int32_t &e);\r
30     virtual FX_BOOL CheckChecksum(CFX_ByteString &s, int32_t &e);\r
31     CFX_Int32Array *FindGuardPattern(CBC_CommonBitArray *row, int32_t rowOffset, FX_BOOL whiteFirst, CFX_Int32Array *pattern, int32_t &e);\r
32     int32_t DecodeDigit(CBC_CommonBitArray *row, CFX_Int32Array *counters, int32_t rowOffset, const int32_t* patterns, int32_t patternLength, int32_t &e);\r
33     virtual int32_t DecodeMiddle(CBC_CommonBitArray *row, CFX_Int32Array *startRange, CFX_ByteString &resultResult, int32_t &e)\r
34     {\r
35         return 0;\r
36     }\r
37     virtual CFX_Int32Array *DecodeEnd(CBC_CommonBitArray *row, int32_t endStart, int32_t &e);\r
38 };\r
39 #endif\r