Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / xfa / src / fxbarcode / datamatrix / BC_SymbolInfo.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_SYMBOLINFO_H_\r
8 #define _BC_SYMBOLINFO_H_\r
9 class CBC_SymbolShapeHint;\r
10 class CBC_Dimension;\r
11 class CBC_SymbolInfo;\r
12 class CBC_SymbolInfo : public CBC_SymbolShapeHint\r
13 {\r
14 public:\r
15     CBC_SymbolInfo(FX_BOOL rectangular, int32_t dataCapacity, int32_t errorCodewords,\r
16                    int32_t matrixWidth, int32_t matrixHeight, int32_t dataRegions);\r
17     virtual ~CBC_SymbolInfo();\r
18     static void Initialize();\r
19     static void Finalize();\r
20     static void overrideSymbolSet(CBC_SymbolInfo* override);\r
21     static CBC_SymbolInfo* lookup(int32_t dataCodewords, int32_t &e);\r
22     static CBC_SymbolInfo* lookup(int32_t dataCodewords, SymbolShapeHint shape, int32_t &e);\r
23     static CBC_SymbolInfo* lookup(int32_t dataCodewords, FX_BOOL allowRectangular, FX_BOOL fail, int32_t &e);\r
24     static CBC_SymbolInfo* lookup(int32_t dataCodewords, SymbolShapeHint shape, FX_BOOL fail, int32_t &e);\r
25     static CBC_SymbolInfo* lookup(int32_t dataCodewords, SymbolShapeHint shape, CBC_Dimension* minSize, CBC_Dimension* maxSize, FX_BOOL fail, int32_t &e);\r
26     int32_t getHorizontalDataRegions(int32_t &e);\r
27     int32_t getVerticalDataRegions(int32_t &e);\r
28     int32_t getSymbolDataWidth(int32_t &e);\r
29     int32_t getSymbolDataHeight(int32_t &e);\r
30     int32_t getSymbolWidth(int32_t &e);\r
31     int32_t getSymbolHeight(int32_t &e);\r
32     int32_t getCodewordCount();\r
33     int32_t getInterleavedBlockCount();\r
34     int32_t getDataLengthForInterleavedBlock(int32_t index);\r
35     int32_t getErrorLengthForInterleavedBlock(int32_t index);\r
36     CFX_WideString toString(int32_t &e);\r
37 public:\r
38     int32_t m_dataCapacity;\r
39     int32_t m_errorCodewords;\r
40     int32_t m_matrixWidth;\r
41     int32_t m_matrixHeight;\r
42     int32_t m_rsBlockData;\r
43     int32_t m_rsBlockError;\r
44     static CBC_SymbolInfo* m_PROD_SYMBOLS[30];\r
45 private:\r
46     static CBC_SymbolInfo* m_symbols[30];\r
47     FX_BOOL m_rectangular;\r
48     int32_t m_dataRegions;\r
49 private:\r
50     CBC_SymbolInfo(FX_BOOL rectangular, int32_t dataCapacity, int32_t errorCodewords, int32_t matrixWidth, int32_t matrixHeight, int32_t dataRegions,\r
51                    int32_t rsBlockData, int32_t rsBlockError);\r
52 };\r
53 #endif\r