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