1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef XFA_FXBARCODE_DATAMATRIX_BC_ERRORCORRECTION_H_
8 #define XFA_FXBARCODE_DATAMATRIX_BC_ERRORCORRECTION_H_
9 
10 class CBC_SymbolInfo;
11 
12 class CBC_ErrorCorrection {
13  public:
14   CBC_ErrorCorrection();
15   virtual ~CBC_ErrorCorrection();
16 
17   static void Initialize();
18   static void Finalize();
19   static CFX_WideString encodeECC200(CFX_WideString codewords,
20                                      CBC_SymbolInfo* symbolInfo,
21                                      int32_t& e);
22 
23  private:
24   static int32_t MODULO_VALUE;
25   static int32_t LOG[256];
26   static int32_t ALOG[256];
27 
28  private:
29   static CFX_WideString createECCBlock(CFX_WideString codewords,
30                                        int32_t numECWords,
31                                        int32_t& e);
32   static CFX_WideString createECCBlock(CFX_WideString codewords,
33                                        int32_t start,
34                                        int32_t len,
35                                        int32_t numECWords,
36                                        int32_t& e);
37 };
38 
39 #endif  // XFA_FXBARCODE_DATAMATRIX_BC_ERRORCORRECTION_H_
40