BC_QRCoderVersion.h revision 4d3acf4ec42bf6e838f9060103aff98fbf170794
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_QRCODE_BC_QRCODERVERSION_H_ 8#define XFA_FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ 9 10#include "core/fxcrt/fx_basic.h" 11 12class CBC_CommonBitMatrix; 13class CBC_QRCoderECBlocks; 14class CBC_QRCoderErrorCorrectionLevel; 15 16class CBC_QRCoderVersion { 17 public: 18 virtual ~CBC_QRCoderVersion(); 19 static void Initialize(); 20 static void Finalize(); 21 22 int32_t GetVersionNumber(); 23 int32_t GetTotalCodeWords(); 24 int32_t GetDimensionForVersion(); 25 CBC_CommonBitMatrix* BuildFunctionPattern(int32_t& e); 26 CFX_Int32Array* GetAlignmentPatternCenters(); 27 CBC_QRCoderECBlocks* GetECBlocksForLevel( 28 CBC_QRCoderErrorCorrectionLevel* ecLevel); 29 static CBC_QRCoderVersion* GetVersionForNumber(int32_t versionNumber, 30 int32_t& e); 31 static CBC_QRCoderVersion* GetProvisionalVersionForDimension( 32 int32_t dimension, 33 int32_t& e); 34 static CBC_QRCoderVersion* DecodeVersionInformation(int32_t versionBits, 35 int32_t& e); 36 static void Destroy(); 37 38 private: 39 CBC_QRCoderVersion(); 40 CBC_QRCoderVersion(int32_t versionNumber, 41 CBC_QRCoderECBlocks* ecBlocks1, 42 CBC_QRCoderECBlocks* ecBlocks2, 43 CBC_QRCoderECBlocks* ecBlocks3, 44 CBC_QRCoderECBlocks* ecBlocks4); 45 46 static const int32_t VERSION_DECODE_INFO[34]; 47 static CFX_ArrayTemplate<CBC_QRCoderVersion*>* VERSION; 48 49 int32_t m_versionNumber; 50 int32_t m_totalCodeWords; 51 CFX_Int32Array m_alignmentPatternCenters; 52 CFX_ArrayTemplate<CBC_QRCoderECBlocks*> m_ecBlocksArray; 53}; 54 55#endif // XFA_FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ 56