Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fxbarcode / pdf417 / BC_PDF417DecodedBitStreamParser.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_DECODEDBITSTREAMPARSER_H_\r
8 #define _BC_DECODEDBITSTREAMPARSER_H_\r
9 class CBC_CommonDecoderResult;\r
10 class CBC_PDF417ResultMetadata;\r
11 class CBC_DecodedBitStreamPaser\r
12 {\r
13 public:\r
14     CBC_DecodedBitStreamPaser();\r
15     virtual ~CBC_DecodedBitStreamPaser();\r
16     static void Initialize();\r
17     static void Finalize();\r
18     static CBC_CommonDecoderResult* decode(CFX_Int32Array &codewords, CFX_ByteString ecLevel, int32_t &e);\r
19 \r
20 private:\r
21     enum Mode {\r
22         ALPHA,\r
23         LOWER,\r
24         MIXED,\r
25         PUNCT,\r
26         ALPHA_SHIFT,\r
27         PUNCT_SHIFT\r
28     };\r
29     static int32_t MAX_NUMERIC_CODEWORDS;\r
30     static int32_t PL;\r
31     static int32_t LL;\r
32     static int32_t AS;\r
33     static int32_t ML;\r
34     static int32_t AL;\r
35     static int32_t PS;\r
36     static int32_t PAL;\r
37     static FX_CHAR PUNCT_CHARS[29];\r
38     static FX_CHAR MIXED_CHARS[30];\r
39     static int32_t NUMBER_OF_SEQUENCE_CODEWORDS;\r
40     static int32_t decodeMacroBlock(CFX_Int32Array &codewords, int32_t codeIndex, CBC_PDF417ResultMetadata* resultMetadata, int32_t &e);\r
41     static int32_t textCompaction(CFX_Int32Array &codewords, int32_t codeIndex, CFX_ByteString &result);\r
42     static void decodeTextCompaction(CFX_Int32Array &textCompactionData, CFX_Int32Array &byteCompactionData, int32_t length, CFX_ByteString &result);\r
43     static int32_t byteCompaction(int32_t mode, CFX_Int32Array &codewords, int32_t codeIndex, CFX_ByteString &result);\r
44     static int32_t numericCompaction(CFX_Int32Array &codewords, int32_t codeIndex, CFX_ByteString &result, int32_t &e);\r
45     static CFX_ByteString decodeBase900toBase10(CFX_Int32Array &codewords, int32_t count, int32_t &e);\r
46 };\r
47 #endif\r