Home | History | Annotate | Download | only in datamatrix
      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 _BC_ERRORCORRECTION_H_
      8 #define _BC_ERRORCORRECTION_H_
      9 class CBC_SymbolInfo;
     10 class CBC_ErrorCorrection {
     11  public:
     12   CBC_ErrorCorrection();
     13   virtual ~CBC_ErrorCorrection();
     14   static void Initialize();
     15   static void Finalize();
     16   static CFX_WideString encodeECC200(CFX_WideString codewords,
     17                                      CBC_SymbolInfo* symbolInfo,
     18                                      int32_t& e);
     19 
     20  private:
     21   static int32_t FACTOR_SETS[];
     22   static int32_t FACTORS[][100];
     23   static int32_t MODULO_VALUE;
     24   static int32_t LOG[256];
     25   static int32_t ALOG[256];
     26 
     27  private:
     28   static CFX_WideString createECCBlock(CFX_WideString codewords,
     29                                        int32_t numECWords,
     30                                        int32_t& e);
     31   static CFX_WideString createECCBlock(CFX_WideString codewords,
     32                                        int32_t start,
     33                                        int32_t len,
     34                                        int32_t numECWords,
     35                                        int32_t& e);
     36 };
     37 #endif
     38