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_DATAMATRIXBITMATRIXPARSER_H_ 8 #define _BC_DATAMATRIXBITMATRIXPARSER_H_ 9 class CBC_CommonBitMatrix; 10 class CBC_DataMatrixVersion; 11 class CBC_DataMatrixBitMatrixParser { 12 public: 13 CBC_DataMatrixBitMatrixParser(); 14 virtual ~CBC_DataMatrixBitMatrixParser(); 15 CBC_DataMatrixVersion* GetVersion(); 16 CFX_ByteArray* ReadCodewords(int32_t& e); 17 FX_BOOL ReadModule(int32_t row, 18 int32_t column, 19 int32_t numRows, 20 int32_t numColumns); 21 int32_t ReadUtah(int32_t row, 22 int32_t column, 23 int32_t numRows, 24 int32_t numColumns); 25 int32_t ReadCorner1(int32_t numRows, int32_t numColumns); 26 int32_t ReadCorner2(int32_t numRows, int32_t numColumns); 27 int32_t ReadCorner3(int32_t numRows, int32_t numColumns); 28 int32_t ReadCorner4(int32_t numRows, int32_t numColumns); 29 CBC_CommonBitMatrix* ExtractDataRegion(CBC_CommonBitMatrix* bitMatrix, 30 int32_t& e); 31 virtual void Init(CBC_CommonBitMatrix* bitMatrix, int32_t& e); 32 33 private: 34 static CBC_DataMatrixVersion* ReadVersion(CBC_CommonBitMatrix* bitMatrix, 35 int32_t& e); 36 CBC_CommonBitMatrix* m_mappingBitMatrix; 37 CBC_CommonBitMatrix* m_readMappingMatrix; 38 CBC_DataMatrixVersion* m_version; 39 }; 40 #endif 41